Hallo, hier sind nochmal zwei Probleme aufgetreten.
Damit nur die Soldaten und nicht deren Fahrzeuge verschwinden hab ich das etwas umgeändert:
statt:
{deleteVehicle _x} foreach thislist;
->
{_x setDamage 1} foreach thislist;
{_x setVehicleArmor 1} foreach thislist; hideBody this;
Dadurch sterben alle Einheiten, damit die Fahrzeuge wieder funktionieren, sind sie anschließend wieder repariert.
Problem: -Die Fahrzeuge brennen immernoch
-Die Leichen verschwinden nicht (hab dazu MrMurrays Script verwendet, siehe unten)
? !(local server):exit;
_W=_this select 0;
_L=[]+thislist;
_A=[];
_G=[];
_T="Man";
{ if (_T counttype [_x] == 1) then {_G=_G+[_x]} } foreach _L;
#Again
{ if (not alive _x) then {_A=_A+[_x]} } forEach _G;
_G=_G-_A;
? count _A > _W :_P=_A select 0;_A=_A-[_P] ;
(Gravedigger) action ["Hidebody",_P] ;
~10
deleteVehicle _P;
? count _A == _W and count _G == 0 :exit;
goto "Again"
Die Besonderheit an dem Skript ist, dass Soldaten bevor sie gelöscht werden, dank dieser
Zeile: (Gravedigger) action ["hidebody",_P] erst im Boden versinken.
Dazu braucht man einen Dummy, der im Skript Gravedigger benannt wurde. Dieser
macht es dann erst möglich, dass die toten Soldaten zunächst im Boden versinken, bevor
sie gelöscht werden. Diesen setzt man einfach irgendwo weit weg vom Geschehen auf
eine Insel, damit ihm nichts passiert.
"Error nicht definierte Variable im Ausdruck"
hab eine Einheit mit dem Namen "Gravedigger" eingefügt, kann aber nicht nachvollziehen, wofür man sie benötigt und weshalb das nicht funktioniert.
|