LAN Modus Prob....

  • LAN Modus Prob....

    Hallo ich habe in meinem Game ein problem mit dem LAN Modus. Ich stelle die GM6 datei online wo die grafiken ersetzt und nur LAN Modus drin ist.
    Also das problem ist das der Hoster immer beide autos steuert und sich beim joiner nichts Tut. Ich habe leider nicht viel ahnung vom Online/LAN Modus im GM also wäre sehr lieb wenn mir einer helfen könnte und das was er geändert hat am besten noch kommentiert wäre nett.

    Download
    Dieser Beitrag wurde 1993 mal editiert, zum letzten Mal von tricktickler: Morgen, 25:60

    Frag doch OnkelGoogle
  • GML-Quellcode

    1. if (!global.master) exit;

    das hasste bei beiden Autos in den ganzen tastenevent drinne

    Ich würde dir empfehlen die ganzen Steuerungselemente in den Stepevent zu schreiben, was einem eine viel größere Übersicht verschafft... dann brauchste obrigen Code auch nur an einmalig auszuführen
  • das wäre z.B. dann wie? kannste das zweimal zeigen also einmal für hoch und einmal für links?

    edit:
    für den Joiner wäre das dann

    GML-Quellcode

    1. //...
    2. xy = self.x && self.y
    3. {
    4. if (global.master) exit;
    5. xy = mplay_data_read(1);
    6. }
    7. if (!global.master) exit;
    8. {
    9. if keyboard_check_direct(vk_left)
    10. {
    11. {
    12. if speed>4
    13. dir+=8
    14. else
    15. dir+=speed*2
    16. if dir>360
    17. dir-=360
    18. image_index=1
    19. mplay_data_write(2,xy);
    20. }
    21. }
    22. if keyboard_check_direct(vk_up)
    23. {
    24. {
    25. if speed<global.tunespeede motion_add(dir,1)
    26. if keyboard_check_direct(vk_lshift) && keyboard_check_direct(vk_up)
    27. {
    28. if global.nitrokauf = 1
    29. {
    30. global.tunespeede +=1.25
    31. alarm[3] = 90
    32. }
    33. }
    34. mplay_data_write(2,xy);
    35. }
    36. if keyboard_check_direct(vk_right)
    37. {
    38. {
    39. if speed>4
    40. dir-=8
    41. else
    42. dir-=speed*2
    43. if dir<0 dir+=360
    44. image_index=2
    45. mplay_data_write(2,xy);
    46. }
    47. }
    48. if keyboard_check_direct(vk_down)
    49. {
    50. {
    51. if speed<3 motion_add(dir-180,2)
    52. mplay_data_write(2,xy);
    53. }
    54. }
    55. }
    Alles anzeigen


    is das mit

    GML-Quellcode

    1. mplay_data_read
    richtig? ich glaub nicht... wie muss es denn richtig sein?
    Dieser Beitrag wurde 1993 mal editiert, zum letzten Mal von tricktickler: Morgen, 25:60

    Frag doch OnkelGoogle

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tricktickler ()

  • öhm... du hast da jetzt beides im script drinne:
    "if (global.master) exit;" und "if (!global.master) exit;"
    das heißt sowohl als Master, als auch als Joiner wird der script vorzeitig abgebrochen.
    und was soll das sein:

    GML-Quellcode

    1. if (!global.master) exit;
    2. {
    3. //bla
    4. }

    wenn man kein master ist wird der script abgebrochen... und was soll dann der rest in geschweiften klammern dahinter machen?

    und finktioniert das mit dem xy überhaupt das du da eifnach mal 2 Variablen reinsteckst? Habs nicht getestet, aber kommt mir recht merkwürdig vor... und wo, vorallem wie, kriegste die x und y werte da wieder raus und positionierst das auto dementsprechend? Scheinbar nirgens...
  • mit dem positionieren war ja unteranderm meine frage hättste meinen post bos zum ende durchgelesen.

    außerdem:

    GML-Quellcode

    1. xy = self.x && self.y // XY sin dann X variable und Y
    2. {
    3. if (global.master) exit;
    4. xy = mplay_data_read(1); // wann man kein master ist wird position von master gelesen
    5. }
    6. if (!global.master) exit; //wenn man master ist wird script ausgeführt
    7. {
    8. //bla
    9. }
    Alles anzeigen



    edit: hmm hab wohl if (!global.master) und if (global.master) verwechselt. trotzdem wollte TrunX anscheinend auf was anderes heraus...
    Dieser Beitrag wurde 1993 mal editiert, zum letzten Mal von tricktickler: Morgen, 25:60

    Frag doch OnkelGoogle

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von tricktickler ()

  • Also erstma wie du das allgemein aufbauen solltest:
    Beim Auto des Masters/Hosters:
    Prüfste zuerst ob man Master ist (bitte ohne "exit" ;) )
    Wenn ja kann mann das ganz normal steuern und die Daten werden abgesendet (x und y koordianten einzeln in verschiedene slots speichern.
    Wenn mann kein Master ist dann werden die x und y koordinaten jeweils ausgelesen und dementsprechend gesetz.
    Beim anderen Auto machste dann selbe nur umgekehrt...
    also wenn man kein Master ist kann man das steuern etc.

    EDIT:

    GML-Quellcode

    1. xy = self.x && self.y // XY sin dann X variable und Y


    Wo haste das den gelernt? man könnte das höhstens so machen das man die beiden werte in einer variable als string aneinander hängt, was das auslesen aber nur unnötig kompliziert machen würde



    GML-Quellcode

    1. if (!global.master) exit; //wenn man master ist wird script ausgeführt
    2. {
    3. //bla
    4. }


    du weißt schon was der Befehl "exit" bewirkt?
  • ja TrunX ließ bitte EINMAL meinen post richtig du hast alle meine posts in diesem thread bis jetz nicht durchgelesn ich hab ja geschrieben das ich die verwechselt hab. Ich hatte es ja zuerst so wie du es gesagt hast aba dann hab ich es dem creating multiplayer games tutorial entnommen.
    Dieser Beitrag wurde 1993 mal editiert, zum letzten Mal von tricktickler: Morgen, 25:60

    Frag doch OnkelGoogle