Mojnsen.
Ich habe eine Problem (es aller Wahrscheinlichkeit nach mal wieder eine falsche Anwendung vom Call Compile Befehl)
Ich habe eine Barrikade (reihe_1 bis reihe_13). Diese werden entzündet.
Bis dahin funktioniert alles. Die Feuer entstehen an der richtigen Stellen.
Allerdings kann man diese Objekte in ArmA 3 nicht einfach so löschen.
Mein Problem besteht darain, dass ich mal wieder keine Variablen zuweisen kann.
Hier mein Code
Code:
// Wird direkt am Objekt ausgeführt. WaitUntil Scleife spart Trigger
if (!isServer) exitWith {};
waitUntil {sleep 2; (west countSide (nearestObjects [(getPos reihe_7), ["Man", "Car", "tank"], 15]) > 0 ) };
private ["_feuer", "_feuerarray", "_emitterArray", "_emitter"];
_emitterArray = [];
_feuerarray = [];
for "_i" from 1 to 13 do
{
_feuerstelle = createVehicle ["test_EmptyObjectForFireBIG", position (call compile format ["reihe_%1", _i]), [], 0, "can_collide"]; //erstellt das Feuer an der richtigen Barrikade
call compile format [" _feuer%1 = _feuerstelle", _i]; //jetzt sollte eigentlich die Varibale _feuer1 erstellt werden und mit Feuerstelle gleichgesetzt werden
if (isNil "_feuer1") then {player sideChat "Feuer1 gibt es nicht" } else { player groupChat "es gibt feuer"}; //gibt aktuell aus, es gibt Feuer1 nicht
sleep 1;
_feuerarray = _feuerarray + [call compile format [" _feuer%1", _i] ];
hint format ["Feuer: \n %1", _feuerarray ];
sleep 1;
call compile format ["_emitter%1 = _feuer%2 getVariable 'effects' ", _i, _i];
_emitterArray = _emitterArray + [call compile format ["_emitter%1", _i] ];
hint format ["Emitter: \n %1", _emitterArray];
sleep 1;
};
sleep 4;
player sideChat "Gelöscht";
for "_i" from 0 to 13 do { _feuerstelle = missionNamespace getVariable ("emitter" + str _i); deleteVehicle _feuerstelle }; //sollte eigentlich alle Feuer
{deleteVehicle _x} forEach _feuerarray;
sleep 1;
hint str _emitterArray;
Warum der Umweg mit diesen Getveriablen "effects":
Delete Fire Effect - Page 2
Oder ich habe es komplett falsch verstanden.