HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Löschen von Toten Einheiten! (https://hx3.de/editing-scripting-167/loeschen-toten-einheiten-18175/)

Obstlt. Iron 16.11.2009 20:28

Löschen von Toten Einheiten!
 
Löschen von Toten Einheiten!


Hi zusammen habe ein Problem mit dem Löschen von Toten Einheiten in einem Auslösebereich.:stupid:


{deleteVehicle _x} forEach list Zone1 (Löscht nur Lebende Einheiten?)


Löschscript Mr-Murray


Auslöser:
Aktivierung: OSTEN
Einfach
Vorhanden
Achse a/b: 2000 (den Bereich festlegen!)
bei Aktivierung: [2] exec "Scripts\Bodydelete.sqs"


? !(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"


Habe ich da Irgendwo einen Fehler?


Bei mir funzt das Einfach nicht.




Gruss Iron

TeRp 16.11.2009 21:17

Na ja, einfacher geht's per Eventhandler.
Einfach in die Init-Zeile von den zu löschenden Einheiten:

Code:

this addEventHandler ["killed",{_hdl = (_this select 0) execVM "deleteVehicle.sqf"}];
Und dann in der Datei deleteVehicle.sqf:
Code:

sleep 30; deleteVehicle _this;
Die Triggerlösung würde ich eigentlich garnicht einsetzen, die ist für eine solche einfache Sache viel zu umständlich.
Die Eventhander sind zuverlässiger und brauchen keinen Trigger, der alle paar Millisekunden die Bedingung überprüft und einen eingeschränkten Auslöseradius hat, sondern lösen nur im Falle des Ablebens (selbstständig) aus. Außerdem kann man ihn ja auch per Script gespawnten Einheiten relativ leicht hizufügen.

Das Script ist auch noch in .sqs-Syntax, in .sqf geht sowas viel schöner :)

Gruß TeRp

Duke49th 16.11.2009 22:56

Das ja mal ne coole Lösung.:daumen:
Hör ich zum ersten Mal in der Form.

Hatte es auch mal mit MrMurrays Script probiert. Ging ebenfalls nicht bei mir.

Wobei BIS das ja mittlerweile auch als Modul oder als einstellbaren Parameter in der init hätte einbauen können.:rolleyes:

Obstlt. Iron 17.11.2009 18:26

Löschen von Toten Einheiten!
 
Hi TeRp,

danke für deine Anregung werde es gleich mal probieren.:daumen:

Gruss Iron

Mr-Murray 17.11.2009 22:39

Bitte auch mal erwähnen, dass dies für A1 war ;)

TeRp 17.11.2009 22:59

Zitat:

Zitat von Mr-Murray (Beitrag 279769)
Bitte auch mal erwähnen, dass dies für A1 war ;)

Den killed-Eventhandler gibt es aber schon seit OFP. ;)

Duke49th 18.11.2009 05:15

Er meint das das Script für A1 war.;)

Obstlt. Iron 18.11.2009 17:04

Zitat:

Zitat von Mr-Murray (Beitrag 279769)
Bitte auch mal erwähnen, dass dies für A1 war ;)

Sollte keine Kritik an Mr-Murray sein, ich dachte eher dass ich irgendwo einen Fehler im Script habe.

Warte schon gespannt auf den Guide für ARMA II

Hoffe nur Mr-Murray werkelt dran, ich glaube nicht nur ich sondern auch ne menge Missionsbastler warten darauf.:nachdenklich:


Gruß Iron

TeRp 18.11.2009 18:20

Zitat:

Zitat von Duke49th (Beitrag 279780)
Er meint das das Script für A1 war.;)

Na ja, in ArmA (1) war sqf auch schon das präferierte Format, daher bezog' ich Murray's Aussage eher auf den Eventhandler. :)

Mr-Murray 18.11.2009 19:54

Eventhandler, Skript... ist das nicht alles das Gleiche :ugly:

Eiere seit 3 Tagen ununterbrochen in der Wiki rum und suche den Kram
zusammen. Ich glaube ich tippe noch bis 2015 :komisch:

spl4tt 21.08.2011 12:06

Hi,
hat sich da eigentlich etwas getan themenbezüglich?
Für eine grössere Mission wärs ganz vorteilhaft tote Einheiten verschwinden zu lassen um Performance zu sparen. Ausser:

{ this addEventHandler ["killed",{ nil = _this select 0 execVM "deleteBody.sqf"; }]; } forEach allUnits;

und dann als .sqf:

sleep 60;
deleteVehicle _this;

http://hx3.de/editing-scripting-167/bodydelete-17373/ <-- thread

hab ich nix weiter gefunden, leider funzt das Beispiel (bei mir) nicht.
Das Garbage-Collector-Modul ist auch wenig hilfreich.
Das Problem liegt leider darin, das ich Einheiten per DAC-spawnen lasse. und so ist es für mich unmöglich einen "delete"-Befehl in die init einer Einheit einzufügen. Hat da jemand vielleicht einen tip oder noch besser eine Lösung parat??

Xeno 21.08.2011 12:30

*deleted*

Xeno

spl4tt 21.08.2011 13:54

Hallo Xeno,

zu 2.
Ja, richtig. Hab das zuerst nicht gefunden, bin dann aber in der DAC_Config_Creator drüber gestolpert.

Dank Dir

Anm: weiss einer warum der Undead-Mod mit der DAC-Script Version nur fehlerhaft funktioniert (Zombies greifen nicht an) aber mit der Addon Version alles einwandfrei läuft?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr.

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 119