Seltsames 39dll Problem?

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Seltsames 39dll Problem?

    Hallo Leute,

    ich arbeite gerade an meinem RPG oder besser gesagt an dem Coop-Modus. Mein "seltsames" Problem liegt an den Gegnern. Der Hoster erstellt die Gegner, Items und verwaltet sie! Nun, wenn beim Hoster ein Gegner gespawned wird, kommt der Code ins Spiel:

    GML-Quellcode

    1. global.emeny+=1; // Neue GegnerID
    2. emenyid=global.emeny; // GegnerID wird gesetzt
    3. clearbuffer();
    4. writebyte(62);
    5. writestring("wildschwein_mp"); // Name des zu erstellenden Objektes
    6. writeshort(emenyid); // Seine ID
    7. sendmessage(global.otherplayer);


    Beim Controllerobjekt bei dem anderen Spieler liegt nun dieser Code:

    GML-Quellcode

    1. case 62:
    2. emeny=instance_create(x,y,readstring());
    3. emeny.emenyid=readshort();
    4. break;


    So, soweit so gut. Ich habs getestet, läuft wunderbar, nur wird das falsche Objekt erstellt. Anstatt den Gegner wird der Singleplayercharakter erstellt. Woran könnte das liegen??? :huh: ?(
  • Man, das ist etwa das vierte mal dass ich das erkläre:

    Instance_create benötigt keinen String! also nicht den namen des Objektes sondern sein Index, hinter den variablen die der gamemaker erstellt und man im Code editor sieht stecken nichts als Zahlen, eben dieser Index, schreib mal: show_message(wildschwein_mp) und du wirst eine Box mit ner Zahl erhalten.
    Und eben diese Zahl brauchst du wenn du das Objekt erstellst.

    Also schreib statt writestring("wildschwein_mp"); das hier:
    writeshort(wildschwein_mp);

    Und zum abrufen einfach readshort()

    Und das wars.


    EDIT: ausnahmsweise war ich mal schneller :P

    EDIT2: nein, das ist ein Trick: man kann auch bei draw_text(x,y,eine Zahl) schreiben ohne fehlermeldung.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Der Object Name ist nur eine Variable die den Object Index beinhalten. Richtig wäre:

    GML-Quellcode

    1. global.emeny+=1; // Neue GegnerID
    2. emenyid=global.emeny; // GegnerID wird gesetzt
    3. clearbuffer();
    4. writebyte(62);
    5. writeshort(wildschwein_mp); // Name des zu erstellenden Objektes
    6. writeshort(emenyid); // Seine ID
    7. sendmessage(global.otherplayer);

    GML-Quellcode

    1. case 62:
    2. emeny=instance_create(x,y,readshort());
    3. emeny.emenyid=readshort();
    4. break;

    schreib mal: show_message(wildschwein_mp) und du wirst eine Box mit ner Zahl erhalten.
    Brauch show_message nicht einen string?
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Benutzer online 1

    1 Besucher