Hilfe!!!!! Onlinegames... aber wie???

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

  • Hilfe!!!!! Onlinegames... aber wie???

    Hey
    Ich habe so einige fragen über Games die man Onlinegaming und vielicht (hofentlich :evil: ) könnt ihr mir weiter helfen! :D
    Da wäre z.b.:

    1. Wenn ich eine Verbindung mit jemandem habe, in ein neues Level komme und 2 Spieler drin hab (2 Figuren die sich bewegen können)... dann werden die bevor man sie bewegt links oben in der Ecke angezeigt... kp warum... wenn ich sie dann zum ersten mal beweg funzt es!

    (noch was anderes (((hat nix mit dem oberem zu tuen^^...))) )

    2. Wenn ich eine Figur bewegen will dann (hab ich zumindestens so im einzel spieler modus...) dann soll die sich in ein anderes Objekt verwandeln und wenn die Animation von diesem Objekt vertig ist geht der ca. 40 Pixel nach oben und dann verwandelt der sich wieder in das die normale Figur... wie krieg ich das denn hin das das auch Online funzt??? ?(

    thx schon mal im Vorraus!!!!! ;) :D :P ....
    __________________________
    HEELLLP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :no:
  • ich kann es zwar verstehen, das "neulinge" in den mplsy funktionen besonders viel probleme haben, aber zieh dir eifach mal die online tuts vom gamemaker.nl rein, so lernst dus richtig und bestimmt auch schneller als hier im forum. außerdem ein tip: lese die (deutsche) hilfe ein paar mal durch, oder wenigstens den multiplayer teil, das ist immernoc am effektivsten ^^
    viel glück beim spiel

    gruß
    der kopierjunge
  • Soa...
    Ich habe mir die Tuts nu durchgelesen und bin (fast ) nicht schlauer... :ops:
    ...hmmm... ich verstehe es nicht so ganz :heul: :hit: :peitsch: ...

    Ich habe mir einige Tuturials durchgelesen und nicht rausgefunden wie ich in einer Sesion (oder so) (auch Online! ) ein Objekt in ein anderes verwandle und das so, dass die mitspieler das auch mitkriegen... :nut: ... das vertehe ich nicht

    Falls jemand einen Tuturial gefunden hat in dem das steht... könnt ihr mir das verlinken.. :ops: ..
  • da gibts nicht viel
    du musst:
    1. eine verbindung aufbauen
    2. eine session (ein spiel) erstellen oder dich in eine einklinken

    1. Besipiel: mplay_init_tcpip(mplay_ipaddress());
    baut eine verbindung auf deinem eigenen pc auf, z.B. zum testen
    2a. Beispiel createn: mplay_session_create('Game',playnumb,global.name);
    Erstellt ein Spiel mit Namen 'Game', playnumb ist die maximale spielerzahl (bei 0 können unbegrenzt spieler rein)
    global.name musst du vorher abfragen
    2b. Beispiel joinen: if (mplay_session_find()=1) {mplay_session_join(0,global.name);}
    Klinkt sich in ein Spiel ein, besser gesagt, in das erste gefundene.

    und wie man daten austauscht?
    a) mplay_data_write(ind,val) und mplay_data_read(ind)
    b) messages: mplay_message_send(player,id,val), mplay_message_receive(player), ...

    a) sollte insoweit klar sein (für ein spiel mit festgelegter spieleranzahl sehr praktisch ^^)
    b) Bespiel:
    senden: mplay_message_send(0,1,'Hallo, das ist eine Nachricht');
    empfangen: if (mplay_message_receive(0)) {show_message(mplay_message_value());}
  • ... :evil: :P

    Also... vieleicht hab ich etwas falsch vormoliert... (am besten ich machs nochmal xD)

    ... das mit den Räumen und den Sesions hab ich schon laange kapiert.. ich bin schon ne ecke weiter! :happy: Ich habe schon einen mehrspielerraum und auch was sonst so dazu gehört! Ich will jetzt aber... sagen wir ,,Objekt A,, in ,,Objekte B,, verwandeln ( Change the instance) wenn ich ,,Enter,, drücke... :nut: :ops: . Das Funzt ja auch... aber eben nur an einem Computer. Wenn ich aber das gleich Online Probiere dann.. will das nicht so wie ich will xD :dozey: :nut: ... weist du jetzt was ich mein???

    ;) :hurk:
  • du sendest ne message, z.B.:

    GML-Quellcode

    1. mplay_message_send(0,#GML#,'instance_change(blabla);')

    #GML# ist die message id, die du für direkte GML ausführung benutzt (z.B. kannst du 10 nehmen)
    in diesem fall wird ein string ("instance_change(blabla)") übertragen
    das ganze kannst du mit dem hier abrufen:

    GML-Quellcode

    1. if (mplay_message_receive(blabla)) {
    2. if (mplay_message_id()=#GML#} {
    3. execute_string(mplay_message_value());}}

    so funktionierts ^^
  • Hey!... :evil2:
    ...ich habe das game wesegen ich diese Internetfrage gestartet hab erst mal ruhen lassen weil es nied so ganz wollte wie ich!.. ^^ :zzz: ... so jetzt hab ich ne neue frage...:

    Ich habe ein game das auf einem Pc Funzt ( :gmlove: ). Jetzt will ich das mit ner Netzwerk verbindung machen! Den anfang hab ich schon (Mit hosten und Joinen) !... zur erleuterung... das game das Game besteht fast nur aus diesen ,,Variables,, dingern. Wenn ich A drücke dann macht der z.b.: global.geld1P -50 .... und setzt global.Persohn1P +1 ... oder so... (ich weis nied wie ich das anders beschreiben soll... :ops: !... Ich habe auch ein Objekt gemacht das diese ,,global.geld1P,, und ,,global.Persohn1P,, Malt. ... mit Draw... und Draw a Text: ,, 'Persohnen: ' + string(global.arbeiter1P) ,, .... :ops: .... so.... jetzt hab ich die frage wie kann ich:
    1.
    Das so machen das die anderen typen (aufm dem Server) das mitkriegen das ich jetzt A drück ((( Ich denke mir mal da gibts auch so einen ,,CODESCHNIPSEL,, gibt xD....))) :deal:

    und

    2.
    Muss ich eigentlich immer das ,,!global.master,, und ,,global.master ,, schreiben? Könnte ich jetzt auch ,,?global.master,, schrieben?

    Naja ich hoffe ihr könnt mir weiter helfen! :hurk: :deal: :evil2:
    Danke wie immer im Vorraus und bis denn (WERD MICH SICHER WIEDER MELDEN!^^)
  • es gibt da 2 methoden:
    1. du schreibst die variable auf einen bestimmten platz:

    GML-Quellcode

    1. mplay_data_write(); mplay_data_read();

    das suchst du in der gm-hilfe, ziemlich einfach
    2. das ist die schwierigere variante:

    GML-Quellcode

    1. mplay_message_send();

    damit sagst du dem anderen, dass du die variable geändert hast

    das ganze ist bescheuert zu erklären, lese dir die hilfe zu dem thema einfach n paar mal durch

    EDIT: huch, thema mitsamt meinem beitrag verschoben xD
    EDIT2: Häh?!? Was? Wo? Wie? Warum hast du HIER nicht geantwortet? Ich hab dir doch gesagt, wie das ganze geht? Und warum hast du nicht geantwortet?

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

  • ...hmm...

    Das bringt mich nicht so würglich weiter. Ich henge einfach mal ne Datei dran vieleicht hilft EUCH das weiter MIR weiter zu helfen :top: . .... Ich erklärs noch mal :ops: ... Also... ich habe folgende objekte...

    1. ,,Right,, (Da steht der einfach nur auf der stelle und guckt nach rechts)
    2. ,,Right_walk,, (Da geht (((wie der name schoin sagt))) nach rechts)
    3. ,,Left,, (Da steht der einfch nur auf der stelle und guckt nach links)
    4. ,,Left_walk,, (das gleiche nur nach links!)

    ...so... jetzt meine frage wie kann ich das machen das wenn ich(der host typ) nach rechts drück der von ,,Right,, in ,,Right_walk,, changed und dann soch noch mit nem speed von ca. 4-5 nach rechts leuft???

    Wenn ich (der Host typi) aber die rechte test loslasse der wieder von ,,Right_walk,, in ,,Right,, changed und der speed=0 ist?

    ...ich hoffe jetzt wist ihr was ich meine...
    ich habe euch mal ne zusammen gewürfelte datei im anhang dagelassen... (das ist das was ich mein!)... :nut: :top: ((((NOCH WAS! ^^ ICH MEINE NICHT WIE ICH NE VERBINDUNG AUFBAUE!!!))))

    THX IM VORRAU!


    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    Nochwas....

    Ich habe das jetzt soweit geschaft... allerdings habe ich noch 1-2 probleme mit den sripts:...

    GML-Quellcode

    1. 1. //////////////////////////// CONNET SRIPT /////////////////////////////////////////////////////////////////////////////////////////////////////////
    2. {
    3. str = get_string('Bitte die IP adresse des Hostes eingeben (für ein lokales Spiel wird keine IP gebraucht!).','');
    4. if (mplay_init_tcpip(str))
    5. room_goto(auswahl)
    6. else
    7. show_message('Verbindung fehlgeschlagen!')
    8. }
    9. 2.///////////////////////////// JOIN SRIPT /////////////////////////////////////////////////////////////////////////////////////////////////////////
    10. {
    11. if (mplay_session_find() > 0)
    12. {
    13. if (mplay_session_join(0,''))
    14. {
    15. global.master = false;
    16. if (mplay_connect_status() = 0)
    17. {
    18. mplay_session_create('Name',0,get_string('Dein Name:',''));
    19. }
    20. room_goto_next();
    21. }
    22. else
    23. show_message('Failed to join a session.')
    24. }
    25. else
    26. show_message('No session available to join.')
    27. }
    28. 3.///////////////////////////// CREAT SRIPT ////////////////////////////////////////////////////////////////////////////////////////////////////////
    29. password=get_string("Password:","");
    30. switch(password)
    31. {
    32. case "123123123":
    33. {
    34. if (mplay_init_tcpip(mplay_ipaddress()))
    35. {
    36. mplay_session_create('Name',0,get_string('Dein Name:',''));
    37. global.master = true;
    38. if (mplay_connect_status() = 0) {room_goto(wait);}
    39. }
    40. else {show_message('Server Erstellung Fehlgeschlegen!');}
    41. } break;
    42. default: show_message('Falsches Passwort! Das Spiel wird jetzt beendet!'); game_end(); break;
    43. }
    44. so.. dann habe ich noch 1-2 felher in dennen hier...
    45. ////////////////// Player1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    46. var _dir;
    47. _dir = 0;
    48. if (keyboard_check(vk_left)) {_dir += 1;}
    49. if (keyboard_check(vk_right)) {_dir -= 1;}
    50. hspeed = 0;
    51. if (_dir = 1) // Wenn nach Links
    52. {
    53. sprite_index = Walk_Left;
    54. hspeed = -4;
    55. last = 'left';
    56. }
    57. if (_dir = -1) // Wenn nach Rechts
    58. {
    59. sprite_index = Walk_Right;
    60. hspeed = 4;
    61. last = 'right';
    62. }
    63. if (_dir = 0) && (last = 'left') {sprite_index = Stay_Left;}
    64. if (_dir = 0) && (last = 'right') {sprite_index = Stay_Right;}
    65. // Der M-Player Kram
    66. if (mplay_connect_status() = 2) // Wenn verbunden
    67. {
    68. if (mplay_session_status() = 1) // Wenn Host
    69. {
    70. mplay_data_write(10,x); // x übertragen
    71. mplay_data_write(11,y); // y übertragen
    72. }
    73. else
    74. {
    75. mplay_data_write(20,x); // x übertragen
    76. mplay_data_write(21,y); // y übertragen
    77. }
    78. if (mplay_message_receive(0))
    79. {
    80. _id = mplay_message_id(); // Message ID, zum auseinanderhalten
    81. _player = mplay_message_player(); // Player ID, zum Nachrichten verschicken
    82. _name = mplay_message_name(); // Name des Spielers
    83. _val = mplay_message_value(); // Was in der Nachricht enthalten ist
    84. if (_id = 1) // wenn ID = 1, d.h. (hier) deine "WALK" Befehle
    85. {
    86. var _index;
    87. _index = 0;
    88. repeat (instance_number(other_player))
    89. {
    90. if (_val = 'Walk Right')
    91. {
    92. with (instance_find(other_player,_index))
    93. {
    94. if (player._name = playername)
    95. {
    96. sprite_index = Walk_Right2;
    97. hspeed = 5;
    98. last = 'right';
    99. }
    100. }
    101. }
    102. if (_val = 'Walk Left')
    103. {
    104. with (instance_find(other_player,_index))
    105. {
    106. if (player._name = playername)
    107. {
    108. sprite_index = Walk_Left2;
    109. hspeed = -5;
    110. last = 'left';
    111. }
    112. }
    113. }
    114. if (_val = 'Stop')
    115. {
    116. with (instance_find(other_player,_index))
    117. {
    118. if (player._name = playername)
    119. {
    120. if (last = 'left') {sprite_index = Stay_Left2;}
    121. if (last = 'right') {sprite_index = Stay_Right2;}
    122. hspeed = 0;
    123. }
    124. }
    125. }
    126. _index += 1;
    127. }
    128. }
    129. if (_id = 2) // wenn ID = 2, d.h. (hier) wenn spieler einsteigt/aussteigt
    130. {
    131. if (_val = 'new')
    132. {
    133. var _obj;
    134. _obj = instance_create(0,0,other_player);
    135. _obj.playername = _name;
    136. mplay_message_send(0,2,'new');
    137. }
    138. }
    139. }
    140. }
    141. ////////////////// Player2////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    142. if (mplay_connect_status() = 2) // Wenn verbunden
    143. {
    144. if (mplay_session_status() = 1) // Wenn Host
    145. {
    146. mplay_data_read(20); // x lesen
    147. mplay_data_read(21); // y lesen
    148. }
    149. else
    150. {
    151. mplay_data_read(10); // x lesen
    152. mplay_data_read(11); // y lesen
    153. }
    154. }
    Alles anzeigen


    FALLS IHR NEN FEHLER FINDED SAGT MIR BESCHEIT!.... :top: :hurk: :kiss:

    THX SCHON MAL!^_^....



    P.S. SEHR VIELES VON DIESEN SRIPTEN IST VON COPYBOY!_!_!_!_!
    P.S.S. NOACH MAL EIN GROOßES DANKE AN COPYBOY!_!_!_!_!_! :kiss:
    p.p.s.: (by WIN) mal gml-tags eingefügt.. kosten ja nix

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von -=-XDevil-=- ()