Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 26.11.2012, 12:58   #1 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard 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"}];
nach dem bekämpfen der Einheiten hier Fahrzeuge und Infantrie werden die Einheiten auf der Map entfernt dazu wird im EventHandler die Datei deletevehicle.sqf aufgerufen:
Code:
sleep 30; deleteVehicle _this;
das funktioniert auch ganz gut bei der Infantrie aber bei Fahrzeugen nicht, diesen bleiben brennend auf der Map. Wie bekomme ich das hin das auch die Fahrzeuge gelöscht werden nach Ihrer zerstörung ?. Im Anhang habe ich die erstellten sqf Dateien hinzugefügt.

Gruß Togo
Angehängte Dateien
Dateityp: rar scripts.rar (623 Bytes, 47x aufgerufen)
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 13:29   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

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!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 26.11.2012, 13:41   #3 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard

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ß
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 15:18   #4 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

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!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 26.11.2012, 16:05   #5 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard

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
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 16:26   #6 (permalink)
User gesperrt
5000 Beiträge
 
Registriert seit: 20.10.2009
Ort: Jetzt auch im BIF
Alter: 33
Beiträge: 9.163
Standard

Suchst du: Einheiten spawnen/ löschen script
AHTNTEPPOP ist offline   Mit Zitat antworten
Alt 26.11.2012, 16:38   #7 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard

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ß
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 16:54   #8 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard

ja , es funktioniert nicht :-(.
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 16:57   #9 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard

Einzelne Einheiten werden gelöscht.
BTR ohne oder mit Besatzung nicht.

Geändert von Togo (26.11.2012 um 17:00 Uhr).
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 17:13   #10 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Kopiere das in die Initialisierungszeile des Fahrzeuges:

Code:
temp = this spawn
 {
  waitUntil {!alive _this};
  sleep 30;
  {_x setPos [0,0]; deleteVehicle _x} forEach crew _this;
  deleteVehicle _this
 }
Vienna ist offline   Mit Zitat antworten
Alt 26.11.2012, 17:21   #11 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard

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
wie schon geschrieben setze ich die Funktion BIS_fnc_spawnGroup ein.

Gruß
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 17:56   #12 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
Vienna ist offline   Mit Zitat antworten
Alt 26.11.2012, 18:00   #13 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

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!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 26.11.2012, 19:32   #14 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Standard

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};
};
Ich habe eine kleine Beispiel Mission angefügt.
Angehängte Dateien
Dateityp: rar angriff.utes.rar (1,8 KB, 30x aufgerufen)
Togo ist offline   Mit Zitat antworten
Alt 26.11.2012, 19:54   #15 (permalink)
50 Beiträge
 
Registriert seit: 09.12.2006
Beiträge: 84
Icon7

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
Togo ist offline   Mit Zitat antworten
Alt 27.11.2012, 07:28   #16 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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};
 };
Ganz korrekt ist das auch noch nicht, weil bei den Fahrzeugen alle der Mission einbezogen sind und die Wiederholung der Skript-Routine für noch vorhandene Fahrzeuge bei jeder neuen Ost-Gruppe erfolgt.

Wenn in der Mission nicht zu viele Fahrzeuge Verwendung finden, wird das nicht von Bedeutung sein.
Vienna ist offline   Mit Zitat antworten
Antwort

Stichworte
nach dem tod löschen, postmortale resectio


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einheiten spawnen/ löschen script sandmanGER Editing & Scripting 16 07.02.2013 07:45
Arma 2 Editor Einheiten löschen ? Rikko Editing & Scripting 7 06.07.2012 20:20
Einheiten in Gruppe löschen Brubaker Editing 6 26.05.2011 17:44
Heal/Repair Script / Einheiten in einem Radius zufällig generieren lassen Noobfire Editing & Scripting 8 06.08.2010 15:22
Script-Problem: Einheiten löschen Kampfmöhre Editing & Scripting 5 31.05.2010 12:37


Kontakt - HX3.de - Archiv - Nach oben

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