39 DLL mehr als 2 Spieler???

  • GM 7
  • Hey ich habe diese frage bereits in einem andren thread gestellt aber das mir da jemand antwortet ist eher unwarscheinich, deswegen stelle ich sie nochmal hier:

    ich habs nochmal versucht und wollte es so regeln: Ein neues object wird erstellt, welches nach einem dritten spieler sucht , ihm wenn der gefunden wurde die anderen nicks sendet und den nick annimmt, jedoch wird der 3. spieler anscheinend nichteinmal erkannt obwohl er in den raum kommt (er bekommt auch nichts gesendet oder ähnliches). Hier ist mal die object information: bitte kann mir jemand helfen?

    [hide=Object Information]

    GML-Quellcode

    1. Information about object: neuer_player
    2. Sprite: <no sprite>
    3. Solid: false
    4. Visible: true
    5. Depth: 0
    6. Persistent: false
    7. Parent: <no parent>
    8. Mask: <same as sprite>
    9. Create Event:
    10. execute code:
    11. global.listen_2=tcplisten(4162,10,1);
    12. global.socket_2=-10
    13.  
    14. Step Event:
    15. execute code:
    16. global.socket_2=tcpaccept(global.listen_2,true);
    17. if(global.socket_2 < 0){}
    18. else{setnagle(global.socket_2,true);
    19. clearbuffer()
    20. writebyte(3)
    21. writestring(global.name[0])
    22. writestring(global.name[1])
    23. sendmessage(global.socket_2)}
    24. var recieve;
    25. recieve=receivemessage(global.socket_2);
    26. if (recieve>0) {
    27. switcher=readbyte();
    28. switch switcher {
    29. case 1:
    30. global.name[2]=readstring()
    31. break;
    32. }
    33. }
    Alles anzeigen
    [/hide]
    Ich will wie mein Opa im Schlaf sterben, nicht heulend und schreiend wie sein Beifahrer.





    I am a in the GM Quiz! :heul: :vogel:

    :gmlove:

    xD
  • Hmmm.. also bei deinem Problem kann ich dir nicht weiterhelfen.
    Jedoch kann ich dir sagen wie ich das ganze zu lösen versuche:

    Also ich erstelle garkein neues Objekt das nach einem 3ten Spieler sucht. Das ganze läuft bei mir untereinem strikten Host/client prinzip.

    Der Host verwaltet ein 2-Dimensionales Array. die erste nummer des Arrays ist die Spielernummer. Bei der zwetien Zahl werden alle wichtigen Variablen die es zu übertragen gilt gespeichert. Nun, ich mache es so das jeder Client sich nur mit dem Host verbindet. Der Host aber, verbindet sich mit allen Spielern die gerade Online sind. Nun wird das komplette Array mit den Statuswerten der Spieler an alle anderen verschickt. dort werden die Arrays ausgelesen und den entsprechenden Spielern bzw Objekten zugewiesen.

    Zum Joinen: Der Host fragt jedes Step ab ob ein neuer Aufruf zum Joinen ins Game empfangen wird. Wenn ja, dann prüft er ob noch ein Spieler ins Game hjoinen kann (maximal z.B: 16) wenn ja, wird der Spieler mit seiner IP Adresse in diesem riesigen Array zuhgewiesen. Und da beginnt eben das ganze versenden/empfangen des Arrays.

    Hoffe das hillft jetzt irgendwie weiter. :S
  • Hoffe das hillft jetzt irgendwie weiter


    sollte es eigentlich tun ich weiß schon was du meinst aber nicht wie genau ich es umsetzen soll. Mit zwei spielern funktioniert das genze schon prima: man sieht den anderen und die namen werden übertragen, aber der host stellt irgentwie keine verbindung zu einem dritten spieler her`? warum wei ich auch nich.

    Da hakts bei mir:

    Zum Joinen: Der Host fragt jedes Step ab ob ein neuer Aufruf zum Joinen ins Game empfangen wird. Wenn ja, dann prüft er ob noch ein Spieler ins Game hjoinen kann (maximal z.B: 16) wenn ja, wird der Spieler mit seiner IP Adresse in diesem riesigen Array zuhgewiesen. Und da beginnt eben das ganze versenden/empfangen des Arrays.

    so ungefähr mach ichs auch doch irgentwie gehts nur mit 2 Spielern.

    Jedoch kann ich dir sagen wie ich das ganze zu lösen versuche:


    Hast du´s denn schon geschafft?



    PS: wenn ich noch einen dritten spieler hinzufügenwill kann ich da die gleiche "global.socket"und global.listen nehmen oder muss ich dafür neue variablen definieren???
    Ich will wie mein Opa im Schlaf sterben, nicht heulend und schreiend wie sein Beifahrer.





    I am a in the GM Quiz! :heul: :vogel:

    :gmlove:

    xD
  • Nein noch nicht. Vom strukturaufbau sollte es Theoretishc funktionieren. In der Praxis kann ich das noch nicht sagen. Ich muss den Code gerade noch auf einige Bugs prüfen um ihn dann auszuprobieren. Aufgrund von Zeitmangel habe ich aber nicht viel Zeit für dieses Projekt.
    Mein Ziel war es jedoch eine Lag-Freie 16 Spieler Jump& Shoot engine zu erstellen. momentan arbeite ich fast 3 Wochen an der Engine.

    Bei dir funktioniert es nur mit 2 Spielern? Wie genau machst du es denn? Speicherst du alles auch in einem Array und versendetst du dieses?
    Grundsätzlich sollte es nach diesem Array-Versend-und-bei-client-zuweisen Prinzip mit 16/32/64/... Spielern funktionieren. Grundsättzlich ist dabei die Anzahl der Spieler nahezu unbegrentzt. Aber wer weiss... ich kenne mich mit der 39DLL auch nicht gerade Super aus, und den Code hab ich auch noch nicht getestet.

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

  • Hi

    bitte probiers mal aus weil ich komme echt nicht weiter bei zwei spielern funktionierts einwandfrei aber wenn ein dritter joined das bemerkt mein host anscheinend nicht ich hab mal ne gml angehängt in der ich das ganz simpel anhand von dem tutorial von ghost :39Dll: Ein simples Spiel versucht habe was aber trotzdem nicht funktioniert hat.
    könnte mir vielleicht jemand helfen den fehler in meinen unwissenden codes zu finden? Wäre euch echt dankbar :pls:
    @LEWA
    Bei dir funktioniert es nur mit 2 Spielern? Wie genau machst du es denn? Speicherst du alles auch in einem Array und versendetst du dieses?
    ja mach ich auch wenn es bisjetzt nur simple sachen wie zb eigene namen oder kurznachrichten sind. mit zwei spielern geht das auch gut aber mit mehreren gehts irgentwie nichmehr...

    EDIT: Da die gml datei:online connect test.zip

    die dlls die ich benutzt habe sind drinne

    (in einem room habe ich den creation code benutzt nur nebenbei :D)

    Wäre nett wenn mich jemand erleuchten würde ;D ;pls: xD

    EDIT2:Dämlich ScHrebzfehlerz xDDD
    Ich will wie mein Opa im Schlaf sterben, nicht heulend und schreiend wie sein Beifahrer.





    I am a in the GM Quiz! :heul: :vogel:

    :gmlove:

    xD

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von miau ()

  • Benutzer online 1

    1 Besucher