PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur Lokalen Variable


Hercules-HH
06.04.2009, 12:53
Ich hab ein Skript gemacht und verstehe nicht, warum die Lokale Variable an einer Stelle nicht funktioniert.

_Inf1a = Infsdef1a
_Inf1b = Infsdef1b
_Inf1c = Infsdef1c
_Inf1d = Infsdef1d
_Inf1e = Infsdef1e
_Inf1f = Infsdef1f

_Mark1s = "Msdef1"
_Mark1a = "Madef1"
_Mark1b = "Mbdef1"
_Mark1g = "Mgdef1"
_Mark1d = "Mddef1"
_Mark1e = "Medef1"
_Mark1o = "Modef1"

Das Funktioniert so Perfekt:

#Start
~1.5
? !(getMarkerPos _Mark1s distance Scanner < _abst) : goto "Ainfs1";
#Abinfs1a
? (!(alive _Inf1a)) : goto "Abinfs1b";
_Mark1s setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Abinfs1b
? (!(alive _Inf1b)) : goto "Abinfs1c";
_Mark1s setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Abinfs1c
? (!(alive _Inf1c)) : goto "Abinfs1d";
_Mark1s setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Abinfs1d
? (!(alive _Inf1d)) : goto "Abinfs1e";
_Mark1s setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Abinfs1e
? (!(alive _Inf1e)) : goto "Abinfs1f";
_Mark1s setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Abinfs1f
if(alive _Inf1f)then{_Mark1s setMarkerpos getPos Infsdef1f}else{deleteMarker _Mark1s};
goto "Abinfs2";
....es geht noch weiter

Doch nun sollte ja Inf1a, Inf1b usw. alle Infsdef1a, Infsdef1b usw.
ersetzten, was dann aber nicht funktioniert:

#Start
~1.5
? !(getMarkerPos _Mark1s distance Scanner < _abst) : goto "Ainfs1";
#Abinfs1a
? (!(alive _Inf1a)) : goto "Abinfs1b";
_Mark1s setMarkerpos getPos _Inf1a; goto "Abinfs2";
#Abinfs1b
? (!(alive _Inf1b)) : goto "Abinfs1c";
_Mark1s setMarkerpos getPos _Inf1b; goto "Abinfs2";
#Abinfs1c
? (!(alive _Inf1c)) : goto "Abinfs1d";
_Mark1s setMarkerpos getPos _Inf1c; goto "Abinfs2";
#Abinfs1d
? (!(alive _Inf1d)) : goto "Abinfs1e";
_Mark1s setMarkerpos getPos _Inf1d; goto "Abinfs2";
#Abinfs1e
? (!(alive _Inf1e)) : goto "Abinfs1f";
_Mark1s setMarkerpos getPos _Inf1e; goto "Abinfs2";
#Abinfs1f
if(alive _Inf1f)then{_Mark1s setMarkerpos getPos _Inf1f}else{deleteMarker _Mark1s};
goto "Abinfs2";

Nun geht es nicht mehr, was ich leider nicht nachvollziehen kann.
Sobald ich das wieder Rückgängig mache geht alles wieder.

[GNC]Lord-MDB
06.04.2009, 14:05
woher bekommt denn das Script diesen Wert _abst her ?

Zenshin
06.04.2009, 14:09
_Inf1a = Infsdef1a
_Inf1b = Infsdef1b
_Inf1c = Infsdef1c
_Inf1d = Infsdef1d
_Inf1e = Infsdef1e
_Inf1f = Infsdef1f

_Mark1s = "Msdef1"
_Mark1a = "Madef1"
_Mark1b = "Mbdef1"
_Mark1g = "Mgdef1"
_Mark1d = "Mddef1"
_Mark1e = "Medef1"
_Mark1o = "Modef1"


Du hast hier sämtliche ";" am Ende der Zeile vergessen... das wird wohl das Problem sein, dadurch findet keine Zuweisung statt....

[GNC]Lord-MDB
06.04.2009, 14:12
nein der hat die in SQS geschreiben da ist das egal ob da ne ; am ende ist das ist nur bei SQF wichtig

Zenshin
06.04.2009, 14:18
Kann es denn sein, daß das Script den Bereich der Variablenzuweisung gar nicht durchläuft weil es direkt über den Einsprungpunkt "#Start" geht ?

Hercules-HH
06.04.2009, 14:45
_abst = 15000

Hab ich hier nur vergessen zu kopieren. Weil der Skript so lang ist, hab ich nur ein Auschnitt gemacht.

Auch mit dem Zeichen ; geht das nicht.

Kann es sein, dass es nicht geht, wenn mn zuviele lokale Variabl macht. Das mal zehn (natürlich mit anderen Namen):

_Inf1a = Infsdef1a
_Inf1b = Infsdef1b
_Inf1c = Infsdef1c
_Inf1d = Infsdef1d
_Inf1e = Infsdef1e
_Inf1f = Infsdef1f

_In1a = Infsdef1a
_In1b = Infsdef1b
_In1c = Infsdef1c
_In1d = Infsdef1d
_In1e = Infsdef1e
_In1f = Infsdef1f

Sonst kann ich mir das nicht erklären. Weil ich noch weitere Datein erstellen möchte, die die gleiche Funktion haben, dachte ich mir, dass ich so arbeit sparen könnte.

Es ist eine Endlosschleife

[GNC]Lord-MDB
06.04.2009, 14:51
stell ma das ganze rein ich kann da so nicht sehen wie das ablaufen soll.

Kann es sein, dass es nicht geht, wenn mn zuviele lokale Variabl macht. Das mal zehn (natürlich mit anderen Namen):

nö,weis nicht wo die Grenze liegt,die ist aber höher als 50 auf jeden Fall

Zenshin
06.04.2009, 14:51
Du musst halt sicherstellen das dieser Variablenzuweisungsblock auch wirklich durchlaufen wird, sonst kann er natürlich nicht wissen welche Einheit durch welche Variable angesprochen werden soll...

Hercules-HH
06.04.2009, 15:36
_abst = 15000

_Inf1a = Infsdef1a
_Inf1b = Infsdef1b
_Inf1c = Infsdef1c
_Inf1d = Infsdef1d
_Inf1e = Infsdef1e
_Inf1f = Infsdef1f

_In1a = Infsdef1a
_In1b = Infsdef1b
_In1c = Infsdef1c
_In1d = Infsdef1d
_In1e = Infsdef1e
_In1f = Infsdef1f

_Inf2a = Infsdef2a
_Inf2b = Infsdef2b
_Inf2c = Infsdef2c
_Inf2d = Infsdef2d
_Inf2e = Infsdef2e
_Inf2f = Infsdef2f

_Inf3a = Infsdef3a
_Inf3b = Infsdef3b
_Inf3c = Infsdef3c
_Inf3d = Infsdef3d
_Inf3e = Infsdef3e
_Inf3f = Infsdef3f

_Inf4a = Infsdef4a
_Inf4b = Infsdef4b
_Inf4c = Infsdef4c
_Inf4d = Infsdef4d
_Inf4e = Infsdef4e
_Inf4f = Infsdef4f

_Inf5a = Infsdef5a
_Inf5b = Infsdef5b
_Inf5c = Infsdef5c
_Inf5d = Infsdef5d
_Inf5e = Infsdef5e
_Inf5f = Infsdef5f

_Inf6a = Infsdef6a
_Inf6b = Infsdef6b
_Inf6c = Infsdef6c
_Inf6d = Infsdef6d
_Inf6e = Infsdef6e
_Inf6f = Infsdef6f

_Inf7a = Infsdef7a
_Inf7b = Infsdef7b
_Inf7c = Infsdef7c
_Inf7d = Infsdef7d
_Inf7e = Infsdef7e
_Inf7f = Infsdef7f

_Inf8a = Infsdef8a
_Inf8b = Infsdef8b
_Inf8c = Infsdef8c
_Inf8d = Infsdef8d
_Inf8e = Infsdef8e
_Inf8f = Infsdef8f

_Inf9a = Infsdef9a
_Inf9b = Infsdef9b
_Inf9c = Infsdef9c
_Inf9d = Infsdef9d
_Inf9e = Infsdef9e
_Inf9f = Infsdef9f

_Inf10a = Infsdef10a
_Inf10b = Infsdef10b
_Inf10c = Infsdef10c
_Inf10d = Infsdef10d
_Inf10e = Infsdef10e
_Inf10f = Infsdef10f

_Mark1s = "Msdef1"
_Mark1a = "Madef1"
_Mark1b = "Mbdef1"
_Mark1g = "Mgdef1"
_Mark1d = "Mddef1"
_Mark1e = "Medef1"
_Mark1o = "Modef1"

_Mark2s = "Msdef2"
_Mark2a = "Madef2"
_Mark2b = "Mbdef2"
_Mark2g = "Mgdef2"
_Mark2d = "Mddef2"
_Mark2e = "Medef2"
_Mark2o = "Modef2"

_Mark3s = "Msdef3"
_Mark3a = "Madef3"
_Mark3b = "Mbdef3"
_Mark3g = "Mgdef3"
_Mark3d = "Mddef3"
_Mark3e = "Medef3"
_Mark3o = "Modef3"

_Mark4s = "Msdef4"
_Mark4a = "Madef4"
_Mark4b = "Mbdef4"
_Mark4g = "Mgdef4"
_Mark4d = "Mddef4"
_Mark4e = "Medef4"
_Mark4o = "Modef4"

_Mark5s = "Msdef5"
_Mark5a = "Madef5"
_Mark5b = "Mbdef5"
_Mark5g = "Mgdef5"
_Mark5d = "Mddef5"
_Mark5e = "Medef5"
_Mark5o = "Modef5"

_Mark6s = "Msdef6"
_Mark6a = "Madef6"
_Mark6b = "Mbdef6"
_Mark6g = "Mgdef6"
_Mark6d = "Mddef6"
_Mark6e = "Medef6"
_Mark6o = "Modef6"

_Mark7s = "Msdef7"
_Mark7a = "Madef7"
_Mark7b = "Mbdef7"
_Mark7g = "Mgdef7"
_Mark7d = "Mddef7"
_Mark7e = "Medef7"
_Mark7o = "Modef7"

_Mark8s = "Msdef8"
_Mark8a = "Madef8"
_Mark8b = "Mbdef8"
_Mark8g = "Mgdef8"
_Mark8d = "Mddef8"
_Mark8e = "Medef8"
_Mark8o = "Modef8"

_Mark9s = "Msdef9"
_Mark9a = "Madef9"
_Mark9b = "Mbdef9"
_Mark9g = "Mgdef9"
_Mark9d = "Mddef9"
_Mark9e = "Medef9"
_Mark9o = "Modef9"

_Mark10s = "Msdef10"
_Mark10a = "Madef10"
_Mark10b = "Mbdef10"
_Mark10g = "Mgdef10"
_Mark10d = "Mddef10"
_Mark10e = "Medef10"
_Mark10o = "Modef10"

#Start
~1.5
? !(getMarkerPos _Mark1s distance Scanner < _abst) : goto "Ainfs1";
#Abinfs1a
? (!(alive _Inf1a)) : goto "Abinfs1b";
_Mark1s setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Abinfs1b
? (!(alive _Inf1b)) : goto "Abinfs1c";
_Mark1s setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Abinfs1c
? (!(alive _Inf1c)) : goto "Abinfs1d";
_Mark1s setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Abinfs1d
? (!(alive _Inf1d)) : goto "Abinfs1e";
_Mark1s setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Abinfs1e
? (!(alive _Inf1e)) : goto "Abinfs1f";
_Mark1s setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Abinfs1f
if(alive _Inf1f)then{_Mark1s setMarkerpos getPos Infsdef1f}else{deleteMarker _Mark1s};
goto "Abinfs2";
#Ainfs1
? !(getMarkerPos _Mark1a distance Scanner < _abst) : goto "Binfs1";
#Ainfs1a
? (!(alive _Inf1a)) : goto "Ainfs1b";
_Mark1a setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Ainfs1b
? (!(alive _Inf1b)) : goto "Ainfs1c";
_Mark1a setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Ainfs1c
? (!(alive _Inf1c)) : goto "Ainfs1d";
_Mark1a setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Ainfs1d
? (!(alive _Inf1d)) : goto "Ainfs1e";
_Mark1a setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Ainfs1e
? (!(alive _Inf1e)) : goto "Ainfs1f";
_Mark1a setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Ainfs1f
if(alive _Inf1f)then{_Mark1a setMarkerpos getPos _Inf1f}else{deleteMarker _Mark1a};
goto "Abinfs2";
#Binfs1
? !(getMarkerPos _Mark1b distance Scanner < _abst) : goto "Ginfs1";
#Binfs1a
? (!(alive _Inf1a)) : goto "Binfs1b";
_Mark1b setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Binfs1b
? (!(alive _Inf1b)) : goto "Binfs1c";
_Mark1b setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Binfs1c
? (!(alive _Inf1c)) : goto "Binfs1d";
_Mark1b setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Binfs1d
? (!(alive _Inf1d)) : goto "Binfs1e";
_Mark1b setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Binfs1e
? (!(alive _Inf1e)) : goto "Binfs1f";
_Mark1b setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Binfs1f
if(alive _Inf1f)then{_Mark1b setMarkerpos getPos Infsdef1f}else{deleteMarker _Mark1b};
goto "Abinfs2";
#Ginfs1
? !(getMarkerPos _Mark1g distance Scanner < _abst) : goto "Dinfs1";
#Ginfs1a
? (!(alive _Inf1a)) : goto "Ginfs1b";
_Mark1g setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Ginfs1b
? (!(alive _Inf1b)) : goto "Ginfs1c";
_Mark1g setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Ginfs1c
? (!(alive _Inf1c)) : goto "Ginfs1d";
_Mark1g setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Ginfs1d
? (!(alive _Inf1d)) : goto "Ginfs1e";
_Mark1g setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Ginfs1e
? (!(alive _Inf1e)) : goto "Ginfs1f";
_Mark1g setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Ginfs1f
if(alive _Inf1f)then{_Mark1g setMarkerpos getPos Infsdef1f}else{deleteMarker _Mark1g};
goto "Abinfs2";
#Dinfs1
? !(getMarkerPos _Mark1d distance Scanner < _abst) : goto "Einfs1";
#Dinfs1a
? (!(alive _Inf1a)) : goto "Dinfs1b";
_Mark1d setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Dinfs1b
? (!(alive _Inf1b)) : goto "Dinfs1c";
_Mark1d setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Dinfs1c
? (!(alive _Inf1c)) : goto "Dinfs1d";
_Mark1d setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Dinfs1d
? (!(alive _Inf1d)) : goto "Dinfs1e";
_Mark1d setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Dinfs1e
? (!(alive _Inf1e)) : goto "Dinfs1f";
_Mark1d setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Dinfs1f
if(alive _Inf1f)then{_Mark1d setMarkerpos getPos Infsdef1f}else{deleteMarker _Mark1d};
goto "Abinfs2";
#Einfs1
? !(getMarkerPos _Mark1e distance Scanner < _abst) : goto "Oinfs1";
#Einfs1a
? (!(alive _Inf1a)) : goto "Einfs1b";
_Mark1e setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Einfs1b
? (!(alive _Inf1b)) : goto "Einfs1c";
_Mark1e setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Einfs1c
? (!(alive _Inf1c)) : goto "Einfs1d";
_Mark1e setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Einfs1d
? (!(alive _Inf1d)) : goto "Einfs1e";
_Mark1e setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Einfs1e
? (!(alive _Inf1e)) : goto "Einfs1f";
_Mark1e setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Einfs1f
if(alive _Inf1f)then{_Mark1e setMarkerpos getPos _Inf1f}else{deleteMarker _Mark1e};
goto "Abinfs2";
#Oinfs1
? !(getMarkerPos _Mark1o distance Scanner < _abst) : goto "Abinfs2";
#Oinfs1a
? (!(alive _Inf1a)) : goto "Oinfs1b";
_Mark1o setMarkerpos getPos Infsdef1a; goto "Abinfs2";
#Oinfs1b
? (!(alive _Inf1b)) : goto "Oinfs1c";
_Mark1o setMarkerpos getPos Infsdef1b; goto "Abinfs2";
#Oinfs1c
? (!(alive _Inf1c)) : goto "Oinfs1d";
_Mark1o setMarkerpos getPos Infsdef1c; goto "Abinfs2";
#Oinfs1d
? (!(alive _Inf1d)) : goto "Oinfs1e";
_Mark1o setMarkerpos getPos Infsdef1d; goto "Abinfs2";
#Oinfs1e
? (!(alive _Inf1e)) : goto "Oinfs1f";
_Mark1o setMarkerpos getPos Infsdef1e; goto "Abinfs2";
#Oinfs1f
if(alive _Inf1f)then{_Mark1o setMarkerpos getPos _Inf1f}else{deleteMarker _Mark1o};
#Abinfs2
? !(getMarkerPos _Mark2s distance Scanner < _abst) : goto "Ainfs2";
#Abinfs2a
? (!(alive _Inf2a)) : goto "Abinfs2b";
_Mark2s setMarkerpos getPos Infsdef2a; goto "Abinfs3";
#Abinfs2b
? (!(alive _Inf2b)) : goto "Abinfs2c";
_Mark2s setMarkerpos getPos Infsdef2b; goto "Abinfs3";
#Abinfs2c
? (!(alive _Inf2c)) : goto "Abinfs2d";
_Mark2s setMarkerpos getPos Infsdef2c; goto "Abinfs3";
#Abinfs2d
? (!(alive _Inf2d)) : goto "Abinfs2e";
_Mark2s setMarkerpos getPos Infsdef2d; goto "Abinfs3";
#Abinfs2e
? (!(alive _Inf2e)) : goto "Abinfs2f";
_Mark2s setMarkerpos getPos Infsdef2e; goto "Abinfs3";
#Abinfs2f
if(alive _Inf2f)then{_Mark2s setMarkerpos getPos _Inf2f}else{deleteMarker _Mark2s};
goto "Abinfs3";
#Ainfs2
? !(getMarkerPos _Mark2a distance Scanner < _abst) : goto "Binfs2";
#Ainfs2a
? (!(alive _Inf2a)) : goto "Ainfs2b";
_Mark2a setMarkerpos getPos Infsdef2a; goto "Abinfs3";
#Ainfs2b
? (!(alive _Inf2b)) : goto "Ainfs2c";
_Mark2a setMarkerpos getPos Infsdef2b; goto "Abinfs3";
#Ainfs2c
? (!(alive _Inf2c)) : goto "Ainfs2d";
_Mark2a setMarkerpos getPos Infsdef2c; goto "Abinfs3";
#Ainfs2d
? (!(alive _Inf2d)) : goto "Ainfs2e";
_Mark2a setMarkerpos getPos Infsdef2d; goto "Abinfs3";
#Ainfs2e
? (!(alive _Inf2e)) : goto "Ainfs2f";
_Mark2a setMarkerpos getPos Infsdef2e; goto "Abinfs3";
#Ainfs2f
if(alive _Inf2f)then{_Mark2a setMarkerpos getPos _Inf2f}else{deleteMarker _Mark2a};
goto "Abinfs3";
#Binfs2
? !(getMarkerPos _Mark2b distance Scanner < _abst) : goto "Ginfs2";
#Binfs2a
? (!(alive Infsdef2a)) : goto "Binfs2b";
_Mark2b setMarkerpos getPos Infsdef2a; goto "Abinfs3";
#Binfs2b
? (!(alive Infsdef2b)) : goto "Binfs2c";
_Mark2b setMarkerpos getPos Infsdef2b; goto "Abinfs3";
#Binfs2c
? (!(alive Infsdef2c)) : goto "Binfs2d";
_Mark2b setMarkerpos getPos Infsdef2c; goto "Abinfs3";
#Binfs2d
? (!(alive Infsdef2d)) : goto "Binfs2e";
_Mark2b setMarkerpos getPos Infsdef2d; goto "Abinfs3";
#Binfs2e
? (!(alive Infsdef2e)) : goto "Binfs2f";
_Mark2b setMarkerpos getPos Infsdef2e; goto "Abinfs3";
#Binfs2f
if(alive Infsdef2f)then{_Mark2b setMarkerpos getPos Infsdef2f}else{deleteMarker _Mark2b};
goto "Abinfs3";
#Ginfs2
? !(getMarkerPos _Mark2g distance Scanner < _abst) : goto "Dinfs2";
#Ginfs2a
? (!(alive Infsdef2a)) : goto "Ginfs2b";
_Mark2g setMarkerpos getPos Infsdef2a; goto "Abinfs3";
#Ginfs2b
? (!(alive Infsdef2b)) : goto "Ginfs2c";
_Mark2g setMarkerpos getPos Infsdef2b; goto "Abinfs3";
#Ginfs2c
? (!(alive Infsdef2c)) : goto "Ginfs2d";
_Mark2g setMarkerpos getPos Infsdef2c; goto "Abinfs3";
#Ginfs2d
? (!(alive Infsdef2d)) : goto "Ginfs2e";
_Mark2g setMarkerpos getPos Infsdef2d; goto "Abinfs3";
#Ginfs2e
? (!(alive Infsdef2e)) : goto "Ginfs2f";
_Mark2g setMarkerpos getPos Infsdef2e; goto "Abinfs3";
#Ginfs2f
if(alive Infsdef2f)then{_Mark2g setMarkerpos getPos Infsdef2f}else{deleteMarker _Mark2g};
goto "Abinfs3";
#Dinfs2
? !(getMarkerPos _Mark2d distance Scanner < _abst) : goto "Einfs2";
#Dinfs2a
? (!(alive Infsdef2a)) : goto "Dinfs2b";
_Mark2d setMarkerpos getPos Infsdef2a; goto "Abinfs3";
#Dinfs2b
? (!(alive Infsdef2b)) : goto "Dinfs2c";
_Mark2d setMarkerpos getPos Infsdef2b; goto "Abinfs3";
#Dinfs2c
? (!(alive Infsdef2c)) : goto "Dinfs2d";
_Mark2d setMarkerpos getPos Infsdef2c; goto "Abinfs3";
#Dinfs2d
? (!(alive Infsdef2d)) : goto "Dinfs2e";
_Mark2d setMarkerpos getPos Infsdef2d; goto "Abinfs3";
#Dinfs2e
? (!(alive Infsdef2e)) : goto "Dinfs2f";
_Mark2d setMarkerpos getPos Infsdef2e; goto "Abinfs3";
#Dinfs2f
if(alive Infsdef2f)then{_Mark2d setMarkerpos getPos Infsdef2f}else{deleteMarker _Mark2d};
goto "Abinfs3";
#Einfs2
? !(getMarkerPos _Mark2e distance Scanner < _abst) : goto "Oinfs2";
#Einfs2a
? (!(alive Infsdef2a)) : goto "Einfs2b";
_Mark2e setMarkerpos getPos Infsdef2a; goto "Abinfs3";
#Einfs2b
? (!(alive Infsdef2b)) : goto "Einfs2c";
_Mark2e setMarkerpos getPos Infsdef2b; goto "Abinfs3";
#Einfs2c
? (!(alive Infsdef2c)) : goto "Einfs2d";
_Mark2e setMarkerpos getPos Infsdef2c; goto "Abinfs3";
#Einfs2d
? (!(alive Infsdef2d)) : goto "Einfs2e";
_Mark2e setMarkerpos getPos Infsdef2d; goto "Abinfs3";
#Einfs2e
? (!(alive Infsdef2e)) : goto "Einfs2f";
_Mark2e setMarkerpos getPos Infsdef2e; goto "Abinfs3";
#Einfs2f
if(alive Infsdef2f)then{_Mark2e setMarkerpos getPos Infsdef2f}else{deleteMarker _Mark2e};
goto "Abinfs3";
#Oinfs2
? !(getMarkerPos _Mark2o distance Scanner < _abst) : goto "Abinfs3";
#Oinfs2a
? (!(alive Infsdef2a)) : goto "Oinfs2b";
_Mark2o setMarkerpos getPos Infsdef2a; goto "Abinfs3";
#Oinfs2b
? (!(alive Infsdef2b)) : goto "Oinfs2c";
_Mark2o setMarkerpos getPos Infsdef2b; goto "Abinfs3";
#Oinfs2c
? (!(alive Infsdef2c)) : goto "Oinfs2d";
_Mark2o setMarkerpos getPos Infsdef2c; goto "Abinfs3";
#Oinfs2d
? (!(alive Infsdef2d)) : goto "Oinfs2e";
_Mark2o setMarkerpos getPos Infsdef2d; goto "Abinfs3";
#Oinfs2e
? (!(alive Infsdef2e)) : goto "Oinfs2f";
_Mark2o setMarkerpos getPos Infsdef2e; goto "Abinfs3";
#Oinfs2f
if(alive Infsdef2f)then{_Mark2o setMarkerpos getPos Infsdef2f}else{deleteMarker _Mark2o};
...
usw. AB,A,B,G,D,E,O - je bis Nummer 10
wenn es kürzer wäre, würde es dann so Enden:

#Oinfs2f
if(alive Infsdef2f)then{_Mark2o setMarkerpos getPos Infsdef2f}else{deleteMarker _Mark2o};
#Abinfs3
goto "Start"
Hintergrund (kompliziert): Wird eine Gruppe erschaffen, dann wird auch ein Marker erstellt, der die Gruppe markieren soll. Doch je nachdem wo die Gruppe patroliert oder gar Spielbar ist, wird ein andere Marker erstellt. Maximal zehn Gruppen, die der Spieler kaufen kann und zuweist. (ist ja eigentlich egal)

Das jetzt soll nur den Marker, wenn es ihn gibt, zur Gruppe beamen (Verfolgen).
Das ganze geht auch ohne Probleme, aber halt nur nicht, wenn die vaible nochmal den Namen ersetzt.

Hercules-HH
06.04.2009, 15:55
Wie von Geisterhand geht das jetzt wieder. grrrrr
Danke trotzdem. Kann mir so was nicht erklären. Hab tat sächlich nur aus Verzweiflung das gleiche gemacht und siehe da: es geht. Verrückt.

Sind so viele lokale Variable eigentlich sehr Recourcen belastend oder ist das egal? Name ist doch fast das gleiche.

Und noch was: könnte man nicht einfach auf das erste Gruppen-Mitglied den Marker setzten. Ich meine wenn er stirbt, ist der nächste der Erste.
Doch wie soll das gehen mit dem Befehl:

(Units group Grp1 select 0)

Langer
06.04.2009, 16:42
häng den marker an den Leader, gibt immer einen... ausser alle einer Gruppe tot...
spart haufen schreibkram..

Mfg
Langer

Vienna
06.04.2009, 17:28
Wozu verwendest du lokale Variable, wenn die Objekte globale Namen haben? Auch kommt es darauf an, wie die globalen Namen verwendet werden.

Wenn die globalen Namen noch keinen Objekten zugewiesen sind, oder den globalen Namen werden später andere Objekte zugewiesen, dann wird das in den lokalen Variablen nicht geändert, wenn das Skript vor der Zuweisung oder Änderung aufgerufen wurde.

Hercules-HH
06.04.2009, 17:49
Langer:häng den marker an den Leader, gibt immer einen... ausser alle einer Gruppe tot...
spart haufen schreibkram..Ja nu: Ich weiß nicht genau wie man das macht. Leider
Hab z.B. so ne Gruppe erstellt:

Infs1 = Creategroup EAST;
_Leader="SoldierEG" createUnit [position Base1, Infs1, "Infs1a=this", 0.75, "Colonel"];
_Unit2="SoldierESaboteurMarksman" createUnit [position Base1, Infs1, "Infs1b=this", 0.75, "Major"];
_Unit3="SoldierEAT" createUnit [position Base1, Infs1, "Infs1c=this", 0.75, "Captain"];
_Unit4="SoldierEG" createUnit [position Base1, Infs1, "Infs1d=this", 0.75, "Lieutenant"];
_Unit5="SoldierEMG" createUnit [position Base1, Infs1, "Infs1e=this", 0.75, "Sergeant"];
_Unit6="SoldierEAT" createUnit [position Base1, Infs1, "Infs1f=this", 0.75, "Corporal"];
_Unit7="SoldierEG" createUnit [position Base1, Infs1, "", 0.75, "Private"];
_Unit8="SoldierEMedic" createUnit [position Base1, Infs1, "", 0.75, "Private"];
_Unit9="SoldierEMedic" createUnit [position Base1, Infs1, "", 0.75, "Private"];


Infs1 heißt jetzt die Gruppe. Doch wie spreche ich jetzt den Leader an?

Hercules-HH
06.04.2009, 18:01
Ok ich habs

Leader Infs1

"Marker" setMarkerPos getPos Leader Infs1

Hercules-HH
06.04.2009, 18:06
Vienna: Wozu verwendest du lokale Variable, wenn die Objekte globale Namen haben?

Ich wollte nur nicht so oft den Namen kopieren. :)

Aber jetzt sieht das schon bisschen anders aus.

Vienna: Wenn die globalen Namen noch keinen Objekten zugewiesen sind, oder den globalen Namen werden später andere Objekte zugewiesen, dann wird das in den lokalen Variablen nicht geändert, wenn das Skript vor der Zuweisung oder Änderung aufgerufen wurde.

Sehr nutzlicher Tipp. Erspart mir bestimmt so einiges...

Danke