hi leute. bin grad aus spaß an einem online Tic tac toe spiel dran.
Dass Spieler sich gegenseitig die namen schicken können haut hin, nur das was relevant ist, in dem fall die übertragung welchen zug der gegner gemacht hat scheitert aber..
Spoiler anzeigen
Alles anzeigen
das ist der ganze code vom objekt (welches 100% im raum dabei ist). ich versteh nicht warum das nicht übertragen wird es ist n string und wird auch dementsprechend behandelt.
Das senden und empfangen hab ich "hervorgehoben". Es gibt zwar noch ein senden, welches in diesem code enthalten ist aber das ist nich wichtig...
Das empfangen hat deshalb keine abfrage nach if master == true bzw false, weil da bei beiden der selbe code laufen würde. Habs auch mit probiert usw -> ging nicht.
Zur info, der folgende code funktioniert (der code ist im selben spiel für den namens empfang... kann glaub ich auch eine wichtige rolle spieln beim fehler finden... sonst wird im spiel noch nichts übertragen)
Spoiler anzeigen
Alles anzeigen
ich versteh nicht was ich da so anders gemacht hab das es nicht funktioniert.
oder muss ich zum senden und empfangen von paketen ein anderes objekt machen?
bitte um hilfe :p
EDIT!:
Dass Spieler sich gegenseitig die namen schicken können haut hin, nur das was relevant ist, in dem fall die übertragung welchen zug der gegner gemacht hat scheitert aber..
GML-Quellcode
- if (global.master == true && global.anderreihe == "spieler1")
- {
- if ((mouse_check_button_pressed(mb_left)) && mouse_x >= x && mouse_x <= x+100)
- {
- if (mouse_y > y && mouse_y <= y+100 && global.feld[0,0] == "")
- {global.feld[0,0] = "spieler1"; global.anderreihe = "spieler2"; }
- if (mouse_y > y+101 && mouse_y <= y+200 && global.feld[0,1] == "")
- {global.feld[0,1] = "spieler1"; global.anderreihe = "spieler2"; }
- if (mouse_y > y+201 && mouse_y <= y+300 && global.feld[0,2] == "")
- {global.feld[0,2] = "spieler1"; global.anderreihe = "spieler2"; }
- }
- if ((mouse_check_button_pressed(mb_left)) && mouse_x > x+100 && mouse_x <= x+200)
- {
- if (mouse_y > y && mouse_y <= y+100 && global.feld[1,0] == "")
- {global.feld[1,0] = "spieler1"; global.anderreihe = "spieler2"; }
- if (mouse_y > y+101 && mouse_y <= y+200 && global.feld[1,1] == "")
- {global.feld[1,1] = "spieler1"; global.anderreihe = "spieler2"; }
- if (mouse_y > y+201 && mouse_y <= y+300 && global.feld[1,2] == "")
- {global.feld[1,2] = "spieler1"; global.anderreihe = "spieler2"; }
- }
- if ((mouse_check_button_pressed(mb_left)) && mouse_x > x+200 && mouse_x <= x+300)
- {
- if (mouse_y > y && mouse_y <= y+100 && global.feld[2,0] == "")
- {global.feld[2,0] = "spieler1"; global.anderreihe = "spieler2"; }
- if (mouse_y > y+101 && mouse_y <= y+200 && global.feld[2,1] == "")
- {global.feld[2,1] = "spieler1"; global.anderreihe = "spieler2"; }
- if (mouse_y > y+201 && mouse_y <= y+300 && global.feld[2,2] == "")
- {global.feld[2,2] = "spieler1"; global.anderreihe = "spieler2"; }
- }
- ///////////////////////////////////////////SENDEN/////////////////////////////////
- clearbuffer()
- writebyte(1)
- writestring(global.anderreihe)
- writestring(global.feld[0,0])
- writestring(global.feld[0,1])
- writestring(global.feld[0,2])
- writestring(global.feld[1,0])
- writestring(global.feld[1,1])
- writestring(global.feld[1,2])
- writestring(global.feld[2,0])
- writestring(global.feld[2,1])
- writestring(global.feld[2,2])
- sendmessage(global.otherplayer) ///// EDIT VORHER STAND HIER sendmessage(global.tictactoe)///
- ///////////////////////////////////////////SENDEN/////////////////////////////////
- }
- if (global.master == false && global.anderreihe == "spieler2")
- {
- if ((mouse_check_button_pressed(mb_left)) && mouse_x >= x && mouse_x <= x+100)
- {
- if (mouse_y > y && mouse_y <= y+100 && global.feld[0,0] == "")
- {global.feld[0,0] = "spieler2"; global.anderreihe = "spieler1"; }
- if (mouse_y > y+101 && mouse_y <= y+200 && global.feld[0,1] == "")
- {global.feld[0,1] = "spieler2"; global.anderreihe = "spieler1"; }
- if (mouse_y > y+201 && mouse_y <= y+300 && global.feld[0,2] == "")
- {global.feld[0,2] = "spieler2"; global.anderreihe = "spieler1"; }
- }
- if ((mouse_check_button_pressed(mb_left)) && mouse_x > x+100 && mouse_x <= x+200)
- {
- if (mouse_y > y && mouse_y <= y+100 && global.feld[1,0] == "")
- {global.feld[1,0] = "spieler2"; global.anderreihe = "spieler1"; }
- if (mouse_y > y+101 && mouse_y <= y+200 && global.feld[1,1] == "")
- {global.feld[1,1] = "spieler2"; global.anderreihe = "spieler1"; }
- if (mouse_y > y+201 && mouse_y <= y+300 && global.feld[1,2] == "")
- {global.feld[1,2] = "spieler2"; global.anderreihe = "spieler1"; }
- }
- if ((mouse_check_button_pressed(mb_left)) && mouse_x > x+200 && mouse_x <= x+300)
- {
- if (mouse_y > y && mouse_y <= y+100 && global.feld[2,0] == "")
- {global.feld[2,0] = "spieler2"; global.anderreihe = "spieler1"; }
- if (mouse_y > y+101 && mouse_y <= y+200 && global.feld[2,1] == "")
- {global.feld[2,1] = "spieler2"; global.anderreihe = "spieler1"; }
- if (mouse_y > y+201 && mouse_y <= y+300 && global.feld[2,2] == "")
- {global.feld[2,2] = "spieler2"; global.anderreihe = "spieler1"; }
- }
- clearbuffer()
- writebyte(1)
- writestring(global.anderreihe)
- writestring(global.feld[0,0])
- writestring(global.feld[0,1])
- writestring(global.feld[0,2])
- writestring(global.feld[1,0])
- writestring(global.feld[1,1])
- writestring(global.feld[1,2])
- writestring(global.feld[2,0])
- writestring(global.feld[2,1])
- writestring(global.feld[2,2])
- sendmessage(global.otherplayer)
- }
- ///////////////////////////////////////////EMPFANGEN/////////////////////////////////
- var size;
- while(true)
- {
- size = receivemessage(global.otherplayer);
- if(size < 0) break;
- if(size == 0)
- {
- show_message("Dein Mitspieler hat das Spiel verlassen!");
- game_end();
- exit;
- }
- messageid = readbyte();
- switch(messageid)
- {
- case 1:
- global.anderreihe = readstring()
- global.feld[0,1] = readstring()
- global.feld[0,2] = readstring()
- global.feld[1,0] = readstring()
- global.feld[1,1] = readstring()
- global.feld[1,2] = readstring()
- global.feld[2,0] = readstring()
- global.feld[2,1] = readstring()
- global.feld[2,2] = readstring()
- break;
- };
- }
- ///////////////////////////////////////////EMPFANGEN/////////////////////////////////
das ist der ganze code vom objekt (welches 100% im raum dabei ist). ich versteh nicht warum das nicht übertragen wird es ist n string und wird auch dementsprechend behandelt.
Das senden und empfangen hab ich "hervorgehoben". Es gibt zwar noch ein senden, welches in diesem code enthalten ist aber das ist nich wichtig...
Das empfangen hat deshalb keine abfrage nach if master == true bzw false, weil da bei beiden der selbe code laufen würde. Habs auch mit probiert usw -> ging nicht.
Zur info, der folgende code funktioniert (der code ist im selben spiel für den namens empfang... kann glaub ich auch eine wichtige rolle spieln beim fehler finden... sonst wird im spiel noch nichts übertragen)
GML-Quellcode
- if global.master = true {
- if !(sp1prev == global.spieler1)
- {
- clearbuffer()
- writebyte(0)
- writestring(global.spieler1)
- sendmessage(global.otherplayer)
- sp1prev = global.spieler1
- }
- if (keyboard_check_pressed(ord("N"))) {global.spieler1 = get_string("Dein neuer Name?","Spieler1")}
- }
- if global.master = false {
- var size;
- while(true)
- {
- size = receivemessage(global.otherplayer);
- if(size < 0) break;
- if(size == 0)
- {
- show_message("Dein Mitspieler hat das Spiel verlassen!");
- game_end();
- exit;
- }
- messageid = readbyte();
- switch(messageid)
- {
- case 0:
- global.spieler1 = readstring()
- break;
- }
- };
- }
ich versteh nicht was ich da so anders gemacht hab das es nicht funktioniert.
oder muss ich zum senden und empfangen von paketen ein anderes objekt machen?
bitte um hilfe :p
EDIT!:
(sieht man beim lesen)
sendmessage(global.otherplayer) ///// EDIT VORHER STAND HIER sendmessage(global.tictactoe)///
mfg Salmi
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Salmi ()