Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 21.10.2013, 14:38   #81 (permalink)
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

Deine Variante mit format ist soweit die richtige Idee, nur kannst du schlecht die Gruppe als %1 übergeben, diese ist ja ein ganz anderes Objekt, du willst ja eine fortlaufende Zahl! Mit anderen Worten:

Du erzeugst mit dem Befehl
_grp = format ["_grp%1",_i]
innerhalb einer for-Schleife mit der Variablen _i genau das:
_grp1, _grp2, _grp3 usw.

Ohne jetzt den weiteren Code zu kennen

Aber Achtung: Im Moment überschreiben wir stets die äußere Hilfsvariable _grp. Also hast du am Ende 100 mal _grp überschrieben, das muss natürlich noch z.B: in ein Array geschrieben werden, um auf alle Dinge zugreifen zu können
__________________
~[3.JgKp]James~
Kompaniechef | Autor SQF-Handbuch | 3.Jägerkompanie
[GNC]JamesRyan ist offline   Mit Zitat antworten
Alt 21.10.2013, 19:06   #82 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

Jo, das mit dem Array hatte ich auf vor, nur irgendwie scheitere ich daran.
Ich dachte ich kann dann den Array ungefähr so erzeugen
_gruppen = _grp+[format["_grp%1", (select _i)]] (das hier ist mal völlig aus dem Bauch herraus. Aber so ungefähr habe ich mir das vorgestellt.

Sodass ich später mit _gruppen select 0... 5.... usw darauf zugreifen kann.
Oder wie übergibt man die in einen Array?

Oder kann ich in der for Schleife gleich ohne Hilfsvariable arbeiten. Also direkt
format ["_grp%1",_i] = create group west
?
Drunken Officer ist offline   Mit Zitat antworten
Alt 21.10.2013, 21:22   #83 (permalink)
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   Mit Zitat antworten
Alt 22.10.2013, 07:35   #84 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

Trotzdem dickes Danke für die Hlife. Ich werde es testen.

Das mit dem CallCompile-Befehl hatte ich gelesen, wußte aber nicht wie ich dne richtig anwenden muss. Du hast mir aber schon sehr weit geholfen. Durch den Rest "wurschtel" ich mich durch
Drunken Officer ist offline   Mit Zitat antworten
Antwort

Stichworte
script erstellen, scripting


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2 Fragen zum Little Bird "MH-6J" Sol.LrMartyn Editing & Scripting 6 30.01.2013 16:42
A3, new scripting technology Xeno Community 37 03.03.2012 19:07
Lua Scripting Bücher und Einführung gesucht JoeJoe87577 Hilfe 3 22.08.2011 00:22
Diverse Fragen.... Mafmaf Editing & Scripting 52 21.11.2010 20:29
Einige Fragen gedanke. Editing & Scripting 4 31.08.2010 18:53


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118