Einzelnen Beitrag anzeigen
Alt 23.05.2011, 11:54   #1 (permalink)
Brubaker
Newbie
 
Registriert seit: 23.05.2011
Beiträge: 2
Standard Einheiten in Gruppe löschen

Hallo Leute, ich bin neu hier und grüsse euch alle. Es wäre nett wenn ihr mir bei einem Problem helfen könntet.
Vor ein paar Tagen hab ich angefangen in ARMA ein wenig zu scripten. Grund war eigentlich eine Sache die mich schon in OPF sehr gestört hat, nämlich die Sache das man mit dem Editor keinen permanent laufenden Flugplatz bzw. Kampfscenario erstellen kann.
Also hab ich mich in die Materie eingelesen und losgelegt. Ich habe nun ein Scenario erstellt das permanent Flugzeuge, Helis, Fahrzeuge und Truppen von verschiedenen Orten aus ins Schlachtfeld schickt. Sobald sie tot sind werden sie respawned. Soweit so gut. Ich habe jetzt ein Verständnisproblem.
Nach einer gewissen Zeit werden keine Truppen mehr respawned und die Schlacht schläft irgendwie ein. Ok, die Sache mit den 144 Gruppen. Ich hab das ausgetestet. Das Script das die Einheiten erstellt wird über einen Trigger gestartet. Die Einheiten werden alle mit lokalen Variabeln erstellt.
Sobald die Einheiten tot sind beginnt das Script von vorne (Schleife). Bevor neue Einheiten erstellt werden werden alle Einheiten gelöscht. Im Testscript werden beliebig viele "Einheitengruppen" gespawned wenn sie gelöscht werden bzw. nicht mehr wie 144 Leichen rumliegen. Das scheint aber nicht zu reichen. Und da ist der Kern der Sache. Ein Löschen der Gruppe (deleteGroup) ist nicht möglich (Fehlermeldung: Error Objekt, erwartet Gruppe). Da vermute ich jetzt eine Sache auf die in keiner Anleitung (ich habe 3) oder einer Webseite hingewiesen wird, dass es 2 nicht kompatible Gruppentypen gibt. Vielleicht bin ich ja auf dem Holzweg.

Ein Gruppe die so erstellt wurde:

;************************************************* *******************************

"FROMZ_marksmen_w" createUnit [SpawnE, grpdummyE1];
_TrpE9Unit0 = units grpdummyE1 select 0;

"FROMZ_marksmen_w" createUnit [SpawnE, grpdummyE2];
_TrpE9Unit1 = units grpdummyE2 select 0;

"FROMZ_at_w" createUnit [SpawnE, grpdummyE2];
_TrpE9Unit2 = units grpdummyE2 select 1;

"FROMZ_recon_w" createUnit [SpawnE, grpdummyE2];
_TrpE9Unit3 = units grpdummyE2 select 2;


[_TrpE9Unit0] join grpnull;
[_TrpE9Unit1] join grpnull;
[_TrpE9Unit2] join grpnull;
[_TrpE9Unit3] join grpnull;

_GrpOffizier9 = group _TrpE9Unit0;

[_TrpE9Unit1] join _TrpE9Unit0;
[_TrpE9Unit2] join _TrpE9Unit0;
[_TrpE9Unit3] join _TrpE9Unit0;
[_TrpE9Unit4] join _TrpE9Unit0;


;************************************************* *******************************

Ist nicht "kompatibel" mit einer Gruppe die so erstellt wurde:

;************************************************* *******************************

_Grp1 = Creategroup EAST;
_Grp1_Leader="SquadLeaderE" createUnit [getMarkerPos "SpawnE", _Grp1, "", 1, "Sergant"];
_Grp1_Unit2="SoldierEB" createUnit [getMarkerPos "SpawnE", _Grp1, "", 1, "Corporal"];
_Grp1_Unit3="SoldierEB" createUnit [getMarkerPos "SpawnE", _Grp1, "", 1, "Corporal"];
_Grp1_Unit4="SoldierEG" createUnit [getMarkerPos "SpawnE", _Grp1, "", 1, "Corporal"];
_Grp1_Unit5="SoldierEMG" createUnit [getMarkerPos "SpawnE", _Grp1, "", 1, "Corporal"];
_Grp1_Unit6="SoldierEAT" createUnit [getMarkerPos "SpawnE", _Grp1, "", 1, "Corporal"];
_Grp1_Unit7="SoldierESniper" createUnit [getMarkerPos "SpawnE", _Grp1, "", 1, "Corporal"];


;************************************************* ********************************

Die Einheit _TrpE9Unit0 gilt als Objekt nicht als Gruppe. Aus dem Grund kann ich die
Gruppe nicht mit deleteGroup löschen. Der Grund warum ich mich dafür entschieden habe
Gruppen über den Dummy zu erstellen war einfach der das die Einheiten die mit createGroup
erstellt wurden an den Waypoints nicht das gemacht haben was ich wollte.
Die waren total stur und waren selbst mit disableAI nicht zu stoppen.

Eigentlich schade, denn diese Gruppen (createGroup) sind über die Waypoints im Script einfacher
und übersichtlicher zu steuern. Dem anderen Gruppentyp hingegen kann ich gar keine Waypoints zuweisen
,muss das über den move Befehl machen. Leider muss ich dann auf das Verhalten der Gruppen z.B. "GUARD" verzichten.

Jetzt wäre es nett wenn ihr mir ein paar Fragen beantwortet. Ich bekomme das allein nicht hin.

1. Stimmt es das die "Gruppentypen" unvereinbar sind?

z.B. Einheiten der einen Gruppe kann nicht in die andere Gruppe joinen.

2. Wie kann ich die Einheiten in der Gruppe _Grp1 selektieren?
In "_unit0 = _grp1 select 0" steht nur z.B. "EAST 1-1-B". Ich müsste die Elemente des Arrays _Grp1 zählen können
dann hätte ich die Anzahl der Einheiten. Wie zählt man die Elemente eines Arrays?

Ich kann den Status der Einheiten dieser Gruppe nicht abfragen, also dammage, alive. Wie geht das?

Sorry wenn sich das alles ein bischen Noob anhört, aber ich bin es :-).

Wäre nett wenn ihr mir helft.

Gruß Michael
Brubaker ist offline   Mit Zitat antworten