Einzelnen Beitrag anzeigen
Alt 09.09.2008, 15:03   #3 (permalink)
Megger
Erfahrener Benutzer
 

Standard

Mhhh es funktioniert jetzt, habe es nochmal komplett umgeschrieben.

Aber ich versuche es nochmal zu erklären.
Also ich habe eine Kampfscript Klasse, die wird ausgelöst, wenn Einheiten "in ein fremdes Land einmaschieren" und den Auftrag "angreifen" haben.
Sobald dies passiert holt sich die Klasse alles was benötigt wird aus der Datenbank und speichert es in ein Array, dass Array sieht so aus wie in meinem ersten Post, dadurch bekomme ich ein Array für den Angreifer(attackUnits) und für den Verteidiger (defendUnits).

Bevor der eigentliche Kampf nun startet, werden diese beiden Arrays nochmal kopiert (attackUnitsCopy und defendUnitsCopy), dies mache ich deswegen, weil meine Kämpfe rundenbasiert laufen und jeder Spieler mit voller Stärke zuschlägt und danach erst die Verluste erleidet, sodass ich die angreifenden Einheiten(egal ob von Angreifer oder Verteidiger) aus dem normalen Array nehme, die verteidigenden Einheiten(egal ob von Angreifer oder Verteididger) kommen allerdings aus der Kopie und dort werden sie modifiziert.

Am Ende der Runde wird die Copy in das Original transferiert und wenn weniger als 11 Runden vergangen sind und noch Einheiten vorhanden sind, dann geht es in die nächste Runde. Das Problem bei dem oben gezeigten Script ist, dass es manchmal vorkam, dass zum beispiel 5 Soldaten gegen 0 Soldaten antraten und sowas durfte ja nicht passieren.

Habe es aber jetzt überarbeitet und kann nun auch unterscheiden, wer gewonnen und wer verloren hat, außerdem kann ich wieder auf den KB zugreifen, durch eine einheitliche ID usw.

Hoffe es ist etwas klarer geworden, wenn nicht dann weiß ich auch nicht mehr weiter

Edit:
Theoretisch könnte man das ganze auch einfach so umbiegen, dass man das 'attacked' im Array erweitert auf 'isAttacked' und 'hasAttacked', so kann man per Zufall eine Einheitengruppe von allen auswählen und geht nicht davon aus, dass entweder der Angreifer beginnt oder der Verteidiger. Das ganze kann man solange machen, bis alle einmal attackiert haben, oder alle attackiert wurden oder keine Einheiten mehr vorhanden sind(sei es jetzt nun nur auf einer Seite oder auf beiden Seiten).
Versteht ihr was ich meine? Was haltet ihr davon?

Geändert von Megger (09.09.2008 um 17:01 Uhr).
Megger ist offline   Mit Zitat antworten An Facebook senden