Multiplayerprobelm

  • GM 7

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

  • Multiplayerprobelm

    Ich mach gerade mein erstes Multiplayer spiel. (nur für lan) ich hab aber noch ein paar probleme beim variablen austauschen.... Man kann schon mit panzern rumfahren, und des wird gesendet.
    aber dann hab ich gemacht, dass die kanone des panzers immer zur maus schaut, aber da weis ich net, wie ich des senden soll. so hab ichs gemacht:

    GML-Quellcode

    1. {
    2. if (!global.master) exit;
    3. image_angle=point_direction(x,y,mouse_x,mouse_y);
    4. mplay_message_send(0,5,direction);
    5. direction=point_direction(x,y,mouse_x,mouse_y);
    6. mplay_message_send(0,5,direction);
    7. }

    des bei der direction , in die der panzer fährt wird schon zum anderen spieler gesendet. nur bei der mouse-direction,
    in die die kanone schaut,wird des noch net zum anderen spieler gesendet.....
    für diese direction von der kanone, mit der messid 5, hab ich als variable direction genommen.....

    GML-Quellcode

    1. if (messid == 5) kanone1.direction = val;

    kann mir da einer helfen??
  • ich kenn mich jetztnich mit den mplay-Funktionen aus, aber für mich macht das wenig Sinn:
    if (!global.master) exit;
    image_angle=point_direction(x,y,mouse_x,mouse_y);
    mplay_message_send(0,5,direction);
    direction=point_direction(x,y,mouse_x,mouse_y);
    mplay_message_send(0,5,direction);
    Du sendest zweimal die direction... vor allem einmal den Wert vorher und einmal den Wert nach dem Ändern der direction.
    Probier das mal so:

    GML-Quellcode

    1. {
    2. if (!global.master) exit;
    3. image_angle=point_direction(x,y,mouse_x,mouse_y);
    4. mplay_message_send(0,5,image_angle);
    5. direction=point_direction(x,y,mouse_x,mouse_y);
    6. mplay_message_send(0,5,direction);
    7. }


    -Tobi

    PS: wie gesagt ich kenn mich jetzt nicht so direkt damit aus... aber eig kommt mir das so logischer vor.
  • ja genau des brauchte ich!
    ich wusste net was ich für die richtung der kanone für ne variable nehmen sollte.
    also des mit image_angle wollte ich wissen! danke.
    __________________________________________________
    und was soll ich schreiben, um zu senden, dass ein panzer ein objekt (kugel) erschaffen hat?
    also ich weis net welche send-variable ich da brauche, wie zum beispiel (0,5,direction) oder so halt, ob ich direction, speed, image_angle, oder was auch immer nehmen soll.......
    gibts da vielleicht sowas wie send..... (0,6,create) oder was kann ich da schreibe, für ne send-variable?
  • mplay_message_send(player, MESSAGE-ID, value)

    Es ist sowas von egal, welche ID du zuweist, denn du weist sie zu, deine Entscheidung, da du definierst was die ID bedeutet:
    Wenn du die Message erhälst fängst du ja mit "messid" die id ab, die du erhalten hast, mit der erhaltenen id kannst du nun anfangen, was du willst, das liegt in deiner Hand.

    Leg dir ein Tutorial oder sowas zu und versuch bitte auch, Examples zu verstehen anstatt sie nur zu kopieren.
    "das war meine letzte flamewar PM an dich ."
  • sorry, ich hab die frage falsch gestellt. ich message-id is kein problem, ich wollte die value für ein creat-event wissen. also:

    mplay_message_send(player, messid, VALUE)

    des mit der richtung also direction kann ich schon, oder die messid für geschwindigkeit, also speed.

    nur welche value kann ich nehmen, um dem anderen spieler zu senden, dass man irgendein objekt created hat....
  • Du könntest jetzt mal global, wenn ein objekt erstellt werden soll, die Messageid 0 verwenden und als Value das objekt das erstellt werden soll. Bei der Abfrage fragst du dann ob Messageid=0 und erstellst dann das Objekt Value.

    © 2008 by Teamgrill Productions
  • Eben, du verwendest einfach eine message-id, die noch nicht gebraucht wird, das könnte IRGENDEINE sein, von mir aus 0, oder 10, oder 10023...
    "das war meine letzte flamewar PM an dich ."
  • ok, also ich bin jetzt so weit:
    ich hab jetzt das im linksklick-event vom spieler:
    (die messid ist 40, aber ich weis nicht welche value ich nehmen soll)

    GML-Quellcode

    1. {
    2. if (!global.master) exit;
    3. instance_create(x,y,bullet1);
    4. mplay_message_send(0,40,?????????); //was für eine value brauche ich, um zu senden, des der spieler eine kugel created hat?
    5. }

    kann mir des einer sagen?
  • Wie ich schon sagte. Es ist egal welche Value du nimmst, du musst es nachher nur richtig abfragen. Am einfachsten ist es, wenn du bei Value aber einfach bullet1 reinschreibst und dann beim anderen spieler einfach bei der Messageid immer

    GML-Quellcode

    1. instance_create(x,y,mplay_message_value())

    ausführst.

    © 2008 by Teamgrill Productions

  • {

    if (!global.master) exit;

    instance_create(x,y,bullet1);

    mplay_message_send(0,40,?????????); //was für eine value brauche ich, um zu senden, des der spieler eine kugel created hat?

    }


    Man, überleg doch mal!

    Zb die Objekt-ID(nicht die Instanz-id!), oder auch die Position und Geschwindigkeit.

    GML-Quellcode

    1. mplay_message_send(0,40,obj_kugel);


    oder

    GML-Quellcode

    1. mplay_message_send(0,40,x);
    2. mplay_message_send(0,41,y);
    3. mplay_message_send(0,42,speed);
    4. mplay_message_send(0,43,direction);


    Überleg dir doch einfach, was gebraucht wird, damit die anderen Spieler genügend Informationen über die erstellte Kugel erhalten!
    Mach dir am besten ne Skizze mit den Daten, die übertragen werden müssen..
    "das war meine letzte flamewar PM an dich ."
  • aso ok, des wollt ich wissen.
    ich geb dann mal alle möglichen infos für den anderen spieler ein.
    ich dachte halt erst, dass ich sowas machen muss, wie:

    mplay_message_send(0,40,instance_create); ......
    naja, danke!
    ....ich erledige des thema dann mal....