Einzelnen Beitrag anzeigen
Alt 21.10.2013, 21:22   #83 (permalink)
[GNC]JamesRyan
50 Beiträge
 
Benutzerbild von [GNC]JamesRyan
 
Registriert seit: 04.11.2009
Ort: Ober-Ramstadt
Beiträge: 79
[GNC]JamesRyan eine Nachricht über ICQ schicken [GNC]JamesRyan eine Nachricht über MSN schicken [GNC]JamesRyan eine Nachricht über Skype™ schicken
Standard

Grundregel: Du kannst nur einem Array ein Array übergeben. Dein Code mit _grp muss scheitern, wie auch dein Beispiel davor, weil _grp vom Typ Gruppe ist und damit nix mit einem Array zu tun hat (auch wenn du eine Gruppe in ein Array schreiben kannst).

Also eine Lösung wäre jetzt, wieder ganz formal ohne jeden Hintergrund deines Skriptes, dazu habe ich keine Zeit zum Einarbeiten sorry:

In der Tat ist das Beispiel etwas komplexer, ich sehe deine Probleme. Ich hatte bei meinem ersten Beispiel auch nur einen dynamischen Zähler generiert, der hatte natürlich noch nicht die erzeugte Gruppe gespeichert.

Nehme die Code-Teile von Vienna:
Code:
... // Parameter von Vienna

_grpArray = []; //leeres Array für die Gruppen

for "_i" from 1 to _grpanz do
 {
 
call compile format ["_grp%1",_i] = createGroup west; // hier wird der Datentyp von _grp festgeleg, gleichzeitig lassen wir aber den Bezeichner dynamisch mitlaufen.

... // der ganze andere Code

// Jetzt zum Thema Gruppe speichern:
  _grpArray set (count _grpArray, call compile format ["_grp%1",_i]);

 }
Ich hoffe das stimmt so, habe keine Möglichkeit, das eben im Spiel zu testen. Das Problem mit format ist: es liefert einen String. Ich kann aber nicht die Gruppen-ID oder Referenz in einen String speichern, nur in eine Variable, daher der Code "call compile", um den String quasi erst auszuführen, was ja _grp1, _grp2 usw. liefert. Anschließend speichern wir die aktuell erzeugte ID in das Array _grpArray, dass außerhalb definiert sein muss, sonst wäre es nur im for-Schleifenblock bekannt. Ich bin mir nur nicht sicher, ob die _grp1, _grp2 usw. im Array erhalten bleiben, da diese eigentlich nur innerhalb der for-Schleife gültig sind, aber da sie ja in ein Array geschrieben werden, müsste es klappen.

Ich hatte auch die Idee, das ganze ohne format zu machen, da es eigentlich reichen müsste, direkt
_grpArray set (count _grpArray, _grp) zu schreiben. Allerdings wird die Variable _grp ja bei jedem Durchlauf neu ersetzt, daher weiß ich nicht, ob es damit Probleme gäbe. Aber so wäre prinzipiell der Lösungsansatz
__________________
~[3.JgKp]James~
Kompaniechef | Autor SQF-Handbuch | 3.Jägerkompanie
[GNC]JamesRyan ist offline