PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bestimmte Objekte auswählen


delvo_boss
10.05.2015, 17:48
Hallo,

ich will ein paar Popuptargets per Action wieder hochklappen lassen, mithilfe von
_object animate["terc", 1]
Nun sind es schon ziemlich viele Objekte und ich möchte nicht jedes Ziel einzeln benennen. Ich bin ein ziemlicher Noob in Sache scripten in Arma 3 und habe keinen Plan wie ich das machen kann. Ich habe anfangs an einen Array gedacht, allerdings muss ich da ja auch jedes Objekt einzeln benennen...
Kann mir da jemand bitte helfen?

Grüße

Tobi

[ate]minimal
10.05.2015, 21:29
Versuchs ma damit nearestobjekts.


https://community.bistudio.com/wiki/nearestObjects

Buliwyf
10.05.2015, 21:52
...ööööhm... ich hab kaum was mit diesen PopUp Scheiben zu tun gehabt, aber bislang haben die sich immer wieder von selbst aufgestellt. Oder gibts da Spezielle?

Eden
11.05.2015, 11:05
Du kannst ein Array benutzen ohne jedes Objekt einzeln benennen zu müssen. Pack einfach folgendes in die init Zeile von jedem PopUpTarget:
arrayname = arrayname + [this]; Das fügt dann das Objekt in das Array "arrayname" ein. Dann kannst du mit foreach die Objekte wieder aufstellen oder halt abfragen starten oder was auch immer du machen willst.

delvo_boss
11.05.2015, 15:33
...ööööhm... ich hab kaum was mit diesen PopUp Scheiben zu tun gehabt, aber bislang haben die sich immer wieder von selbst aufgestellt. Oder gibts da Spezielle?

Okay, sry da hab ich mich leider etwas unklar ausgedrückt:
Ich habe das Hochklappen mit
nopop=true
deaktiviert. Ich will sie erst wieder hochgeklappt haben, wenn ein Trigger aktiviert wurde.

Du kannst ein Array benutzen ohne jedes Objekt einzeln benennen zu müssen. Pack einfach folgendes in die init Zeile von jedem PopUpTarget:
Code:
arrayname = arrayname + [this];
Das fügt dann das Objekt in das Array "arrayname" ein. Dann kannst du mit foreach die Objekte wieder aufstellen oder halt abfragen starten oder was auch immer du machen willst.

Okay, das probier ich mal aus.

minimal] Versuchs ma damit nearestobjekts.


https://community.bistudio.com/wiki/nearestObjects

Und wie benutz ich das dann mit den Objekten?


targets = [];
{
if (str _x find ": t_" > -1) then {
targets animate["terc", 1]
};
} forEach nearestObjects [player, [], 100];


Funktioniert irgendwie nicht.

[ate]minimal
11.05.2015, 16:28
Bin grad nicht am pc kann dir aber später en genaueres beispiel schicken. Meine script kenntnise sind auch nicht so bombe.
Lies dir denn link durch dann klapt das schon.😊

Test = nearestObjects [player, ["Car","Tank"], 200];

Anstatt player kannst irgend ein okjekt oder eine position nehmen.

"Car","tank" sind klassen namen. Trag dort die bezeichnung von deinem klappziel ein. da werden dann alles was denn namen hatt gezählt oder gespeichert.

200 ist der radius um das objekt oder position.

Dann must nachher nur noch mit foreach ne zeile aufschreiben die test abarbeitet. Recht simpel eigentlich, wenn auch nicht zu 100% erklärt 😊.

[ate]minimal
11.05.2015, 18:48
Hab mal was über die debbug console probiert und funkt!!!

Mast is das objekt was das Zentrum vorgibt.

wenn du es ausführst werden alle ziele aufeinmal um gekippt.
wenn du denn wert auf 0 stellst stehen se wieder senkrecht.

ObjektListe= nearestObjects [Mast,["Target_PopUp4_Moving_F"],50]; { _x animate["terc", 1]} foreach ObjektListe;

hoff ich konnt dir helfen

Drunken Officer
11.05.2015, 20:55
Du könntest auch alle Objekte die den Typ haben auslesen und den Array aufpumpen.

if (isServer) then
{

private ["_no"];
aufgepumpterarray = [];
_no = nearestObjects [Abfragemittelpunkt, ["Target_PopUp4_Moving_F"], 1950];

{
if (typeof _x == "Target_PopUp4_Moving_F") then
{
aufgepumpterarray = aufgepumpterarray + [_x];
};
} forEach _no;
}


Dann mit
for "_i" from 0 to (count aufgepumpterarray ) -1 do {
call compile format ["Scheibe%1 = _i", _i] }
Benennen

[ate]minimal
11.05.2015, 21:19
@drunken

Mal nur interrese halber, was für en sinn steckt dahinter????

Drunken Officer
11.05.2015, 22:25
Damit kann man die Scheiben direkt ansprechen. Natürlich kann man auch mit einer Zufallsabfrage die Scheiben ansprechen