Mein!
Mein Blueprint kommt später bin grade unterwegs.
Ich habe folgendes Problem ich habe eine Spiel gebaut das eine Art Kartenpuzzel ist. Das ist erstmals nur ein Prototyp und werde es später nochmal komplett neu machen da ich ja ständig was neues lerne.
Im Singleplayer hat die ganze Logik auch funktioniert.
Beim umstellen auf einen Multiplayer hab ich so meine Probleme bekommen.
Ich habe eine Funktion mit der ich 5 Karten in der Hand Spawnen lasse und neun Felder wo die Karten platziert werden. Dazu eine Funktion das die Karten, wenn sie nicht auf einem Feld landen zurück auf die Hand gehen. Das alles hatte ich im GameMode. Da ich jetzt auf Multiplayer umgestellt habe, hab ich gemerkt das dies im GameMode nicht mehr geht. Also habe ich die Funktionen in meinen Player Controller verschoben weil ich dort bereits Variablen hatte die ich zum erstellen der Karten und des Feldes habe.
Nun habe ich ja nur 2 Spieler. Diese 2 Spieler speichere ich in einem Array und habe meine Hand Spawn Funktion so umgeschrieben das die Karten für die beiden Spieler spawnen.
Die Karten spawnen direkt am Spielstart also durch "Begin Play".
Das alles passiert nur auf dem Server. Das Problem ist jetzt das beim Spielstart 2 Spieler joinen und dadurch der PlayerController auch 2 mal erzeugt wird und die Funktion zum Spawnen der Hand 2 mal erfolgt. So hat halt jeder Spieler 10 Karten.
Wie schaffe ich das der Client der Spieler den anderen Controller nicht starten lässt? Der PlayerController des jewals anderen wird ja in dem eigenen Clienten nicht gebraucht...
Jemand eine Idee?
Meine erste Idee war es durch einen Vergleich zu überprüfen ob der aktive Player Controller der selbe ist wie an Stelle eins des Arrays und dann die Karten für Player 1 zu spawnen und wenn es nicht der selbe ist für Player 2. Dadurch ist mir dann erst aufgefallen das der PlayerController von beiden in beiden Instanzen des Spiels aktiv ist.