39dll string übertragung funktioniert nicht immer

  • GM 8

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

  • 39dll string übertragung funktioniert nicht immer

    Hallo gm-d Mitglieder!
    Ich habe ein Problem bei der übertragung (zwischen Server und Client) von einem String mit der 39dll.
    Ich habe einen Room mit verschiedenen Objekten gebaut, die Objete aus diesem Raum sollen zum Client übertragen werden, sodass der Client mit diesen Daten einen eigenen Room aufbauen kann der genau gleich ist wie der vom Server.
    Das auslesen der Koordinaten der Objekte im Server funktioniert perfekt (Die Koordinaten der Objekte werden mit Kommas hintereinander in einen String pro Objektsorte gepackt), ich habe Messageboxen vor die übertragung eingebaut, die testen was übertragen wird. Diese Messageboxen zeigen auch immer das richtige an, aber wenn die Daten dann vom Client empfangen werden kommen manchmal irgendwelche komischen Zeichen raus(Also keine Buchstaben oder Zahlen).

    Hier der Code zum Senden vom Server:
    Spoiler anzeigen

    GML-Quellcode

    1. //Send Room
    2. //+Unwichtig
    3. var player, value, str;
    4. value = readbyte()
    5. player = global.players[value]
    6. //-Unwichtig
    7. scr_read_room()//Hier werden die Objekte ausgelesen und pro Objektsorte in einen String gepackt
    8. //Bis hier hin funktioniert alles perfekt!
    9. clearbuffer()
    10. writebyte(14)
    11. writeshort(room_width)
    12. writeshort(room_height)
    13. writestring(Server.r_wall,1)//Das sind die Variablen wo die strings gespeichert werden
    14. writestring(Server.r_spawn,1)//Es sind 8 Objekte die übertragen werden sollen
    15. writestring(Server.r_spiegel,1)
    16. writestring(Server.r_glas,1)
    17. writestring(Server.r_plattform,1)
    18. writestring(Server.r_item,1)
    19. writestring(Server.r_waffe,1)
    20. writestring(Server.r_eis,1)
    21. with(Client)
    22. {
    23. if id=other.id
    24. sendmessage(tcp)
    25. }
    Alles anzeigen



    Dann der Code beim Client zum epfangen:
    Spoiler anzeigen

    GML-Quellcode

    1. //Create Room
    2. var R_wall,R_spawn, R_spiegel, R_glas, R_plattform, R_item, R_waffe, R_eis;
    3. obj_Kamera.Room_width = readshort()
    4. obj_Kamera.Room_height = readshort()
    5. R_wall = readstring()
    6. R_spawn = readstring()
    7. R_spiegel = readstring()
    8. R_glas = readstring()
    9. R_plattform = readstring()
    10. R_item = readstring()
    11. R_waffe = readstring()
    12. R_eis = readstring()
    13. //Hier wird der room gebaut und darin sind die Messageboxen die die empfangenen Daten ausgeben
    14. scr_write_room(R_wall,R_spawn,R_spiegel,R_glas,R_plattform,R_item,R_waffe,R_eis)
    Alles anzeigen




    So und vor dem Abschicken sind die strings noch Zahlen, und manchmal beim empfangen sind die Strings gefüllt mit komischen zeichen.
    Und das ist das Problem und dem entsprechend fehlt dnn manchmal eine Objekt sorte im Room.

    Wieso ist das so? Liegt es vielleicht daran dass ich zuviele strings versende der dass die strings zu lang sind, an was liegt es brauche dringend hilfe!
    Twitter: @BytingGames