Das Problem bei den EIngeborenen ist, dass sie ihre ID ändern, nachdem sie erstellt wurden (lässt sich wunderbar im Debugmodus beobachten). Es nutzt also nichts die ID zu speichern, mit der sie starten (Das hatte ich Anfangs auch versucht
,auch zum prüfen, ob noch Angreifer da sind. Allerdings tauchte dann immer das Problem auf, dass die ID´s nicht existierten, obwohl mich genau diese Einheiten gerade beschossen haben auf einer ansonsten vollkommen leeren Insel). Notwendig wäre es die ID zu haben, mit der die Unit zu dem Zeitpunkt unterwegs ist, zu dem sie gelöscht werden soll.
Das Ändern der IDs geschieht, da die aggressiven Eingeborenen eigentlich aus 4 verschiedenen Einheiten bestehen. Solange man außer Sicht ist behalten sie ihre Ursprungsid. Sobald der Spieler entdeckt wird wird aus dem aggressiven Eingeborenen jedoch ein Bogenschütze. Sprich die erstellte Unit löscht sich selbst und erstellt automatisch eine neue, welche natürlich auch eine neue ID hat. Auch wenn die Unit in den Nahkampf geht wird sie ersetzt. Wodurch sich die ID wieder ändert. Genauso bei der Flucht.
Deshalb muss ich auch nur für die aggressiven Eingeborenen gleich eine Radikalkur bei 4 verschiedenen Units machen, da ich ja nicht weiß, in welchem Modus sich der Eingeborene gerade befindet, sprich welche Einheit gerade existiert. Der User sieht jedoch immer nur eine Unit und merkt gar nicht, dass er es eigentlich mit bis zu 4 verschiedenen Units zu tun hat.
Beim Boot wende ich übrigens genau die von die beschriebene Methode an. (Schließlich muss auch dieses bei einem Rückzug wieder gelöscht werden) Da funktioniert das auch wunderbar, da ein Boot seine ID behält.
Krieger und aggressive Eingeborene weisen hier somit eine (äußerst unangenehme) Besonderheit auf. Andere Units wären kein Problem.
Würde ich also Löwen oder Raptoren nehmen würde das mit dem ID merken funktionieren. Nur kann ich schlecht argumentieren, dass die mit dem Boot gekommen sind :lol: