26.11.2012, 13:58 | #1 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Einheiten nach Tod/Zerstörung löschen
Hallo zusammen,
habe folgendes Problem: ich habe eine Trainingsmission erstellt wo ich per Funkauslöser gegnerische Einheiten Spawnen lasse und bekämpfe. Bei erstellen der Einheiten wird per Script, den Einheiten in die Init Zeile folgender Code eingefügt: Code:
_x addEventHandler ["killed",{handle = (_this select 0) execVM "scripts\deletevehicle.sqf"}]; Code:
sleep 30; deleteVehicle _this; Gruß Togo |
26.11.2012, 14:29 | #2 (permalink) |
Fahrzeuge können nur gelöscht werden wenn keine Bersatzung mehr im Fahrzeug sitzt. Du musst also in dem Script fragen ob es sich um eine Unit oder ein Vehicle handelt (_this != vehicle _this), falls es ein Vehicle ist dafür sorgen das die crew aus dem Fahrzeug geworfen wird (und evtl. auch gleich löschen) und dann das Fahrzeug löschen.
Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
26.11.2012, 14:41 | #3 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hi Psychobastard,
danke für deine schnelle Antwort, ich habe es gelesen das ein Fahrzeug leer sein muss bevor es gelöscht werden kann, hier hatte ich es probiert mit: { deleteVehicle _x } foreach _crew1; deleteVehicle crew1; das funktioniert auch, aber hierzu muss jedem Fahrzeug einen Namen geben, hier weiss ich aber nicht wie ich das in dem Script lösen soll. Gruß |
26.11.2012, 16:18 | #4 (permalink) |
Du kannst dein Fahrzeug mit _this select 0 in deinem Script abfragen.
_vehicle = _this select 0; {_x moveOut _vehicle; deleteVehicle _x;} forEach crew _vehicle; deleteVehicle _vehicle; Wenn ich nicht mehr auf Arbeit bin und wieder an meinem eigenen Rechner sitze, kann ich auch noch etwas ausführlicheres raus suchen.
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
26.11.2012, 17:05 | #5 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hallo Psychobastard und Vienna,
vorweg, ich bin kein Script Profi ;-) , baue meine Missionen Schritt für Schritt auf und speichere mir viele Scripte und Verfahren in Beispiel Missionen damit ich diese bei anderen Missionen verwenden kann. Leider funktionierendie letzten Tipps auch nicht, schaue mir gerade ein Respawn Script an, vieleicht finde ich ja da was passendes. Aber es kann doch eigendlich nicht so schwer sein. Wenn ich Einheiten einen Namen gebe im Editor funktioniert das ganze ja hiermit: { deleteVehicle _x } foreach _crew1; deleteVehicle crew1; erstelle ich aber Einheiten mit der BIS_fnc_spawnGroup geht es nicht, kann mann hier den erstellten Einheiten keine Namen geben ? Gruss |
26.11.2012, 17:26 | #6 (permalink) |
User gesperrt
Registriert seit: 20.10.2009
Ort: Jetzt auch im BIF
Alter: 40
Beiträge: 9.163
|
Suchst du: Einheiten spawnen/ löschen script
|
26.11.2012, 17:38 | #7 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hi AHTNTEPPOP,
ein spawn script habe ich ja schon ;-) , siehe Anhang. Die Einheiten werden ja auch gelöscht. Halt eben nicht Fahrzeuge die ich Zerstört habe. Die möchte ich natürlich auch nach ihrer Zerstörung entfernen. Gruß |
26.11.2012, 18:21 | #11 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hi Vienna,
vielen Dank für deine Mühe, aber wo setze ich den Code hier ein ? Code:
// Löschscript deletevehicle.sqf aufgerufen ! { if (side _x == east) then { _x addEventHandler ["killed",{handle = (_this select 0) execVM "scripts\deletevehicle.sqf"}]; }; } foreach allUnits; // Ende Löschscript Gruß |
26.11.2012, 18:56 | #12 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Füge diese Zeilen unten an das Skript an:
Code:
// Löschsroutine Vehicle { _x spawn { waitUntil {!alive _this}; sleep 30; {_x setPos [0,0]; deleteVehicle _x} forEach crew _this; deleteVehicle _this } } foreach vehicles; // Löschsroutine Vehicle |
26.11.2012, 19:00 | #13 (permalink) |
Woher kommen denn deine Fahrzeuge?
Stehen die schon vorher auf der Map oder wie spawnst du die?
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
26.11.2012, 20:32 | #14 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hi,
die Fahrzeuge und die Infantrie werden per -Alpha- Funk Befehl gespawnt . Hier das Script: Code:
_markers = ["spawnpoint1", "spawnpoint1", "spawnpoint1"]; for "_i" from 0 to 2 do { _pos = markerPos (_markers select _i); _grp1 = [_pos, EAST, ["TK_Soldier_MG_EP1", "RU_Soldier_HAT", "RU_Soldier_LAT","T55_TK_EP1"]] call BIS_fnc_spawnGroup; _wp1 = _grp1 addWaypoint [(getMarkerPos "wegpunkt"), 0]; _wp1 setWaypointType "SAD"; _wp1 setWaypointType "MOVE"; _wp1 setWaypointStatements ["true", ""]; // Löschscript { if (side _x == east) then { _x addEventHandler ["killed",{handle = (_this select 0) execVM "scripts\deletevehicle.sqf"}]; }; } foreach allUnits; // Ende Löschscript waitUntil {{alive _x} count units _grp1 == 0}; }; |
26.11.2012, 20:54 | #15 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hi Vienna,
Geil, es funktioniert !!! Ich habe dein Script in die deletecehicle.sqf eingebunden und ausprobiert, dort wurden aber nur die Fahrzeuge gelöscht. Habe zusätzlich unter dem Script folgendes hinzugefügt: sleep 10; deleteVehicle _this; Und nun passt alles Einheiten und auch Fahrzeuge werden gelöscht !! Vielen Dank für deine (eure) Hilfe !!!! Einfach Weltklasse :-) Gruß Togo |
27.11.2012, 08:28 | #16 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
In der deletecehicle.sqf darf man die Skript-Routine nicht einbauen. Da wird es bei jedem toten Ost-Soldaten neuerlich aufgerufen und lädt die Routine mehrmals.
Verwende für die Gruppenerstellung folgendes Skript. Es verwendet keinen EventHandler, somit kannst du das Skript deletecehicle.sqf löschen. Code:
_markers = ["spawnpoint1", "spawnpoint1", "spawnpoint1"]; for "_i" from 0 to 2 do { _pos = markerPos (_markers select _i); _grp1 = [_pos, EAST, ["TK_Soldier_MG_EP1", "RU_Soldier_HAT", "RU_Soldier_LAT","T55_TK_EP1"]] call BIS_fnc_spawnGroup; _wp1 = _grp1 addWaypoint [(getMarkerPos "wegpunkt"), 0]; _wp1 setWaypointType "SAD"; _wp1 setWaypointType "MOVE"; _wp1 setWaypointStatements ["true", ""]; // Löschsroutine Units Gruppe _grp1 { _x spawn { waitUntil {!alive _this}; sleep 30; deleteVehicle _this } } foreach units _grp1; // Löschroutine Units Gruppe _grp1 Ende // Löschsroutine Vehicle { _x spawn { waitUntil {!alive _this}; sleep 30; {_x setPos [0,0]; deleteVehicle _x} forEach crew _this; deleteVehicle _this } } foreach vehicles; // Löschroutine Vehicle Ende waitUntil {count units _grp1 == 0}; }; Wenn in der Mission nicht zu viele Fahrzeuge Verwendung finden, wird das nicht von Bedeutung sein. |
Stichworte |
nach dem tod löschen, postmortale resectio |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Einheiten spawnen/ löschen script | sandmanGER | Editing & Scripting | 16 | 07.02.2013 08:45 |
Arma 2 Editor Einheiten löschen ? | Rikko | Editing & Scripting | 7 | 06.07.2012 21:20 |
Einheiten in Gruppe löschen | Brubaker | Editing | 6 | 26.05.2011 18:44 |
Heal/Repair Script / Einheiten in einem Radius zufällig generieren lassen | Noobfire | Editing & Scripting | 8 | 06.08.2010 16:22 |
Script-Problem: Einheiten löschen | Kampfmöhre | Editing & Scripting | 5 | 31.05.2010 13:37 |