Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 16.10.2012, 19:48   #1 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Icon5 Einheiten/ Objekte während der Mission entfernen

Hallo, und zwar möchte ich bestimmte Einheiten in einem Bereich entfernen, da sie für die Mission nicht mehr relevant sind. Dabei sollen die nicht getötet werden, sonst liegen da soviele Leichen rum..

Ich hab da an einen Auslöser gedacht, der alle "Lebewesen" innerhalb des Kreises verschwinden lässt. Natürlich kommt man aber ums Scripten nicht herum, weshalb ich eure Hilfe brauche. Wie kann ich das anstellen??

Hintergrund:

US-Soldaten befreien in Cherno n paar Geiseln, danach machen sich die Soldaten auf in die nächste Stadt. Die Geiseln brauch ich ja nicht mehr, deswegen können sie verschwinden.

Oder habt ihr einen anderen Vorschlag?
sandmanGER ist offline  
Alt 16.10.2012, 21:01   #2 (permalink)
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 02.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
Standard

Willkommen hier im Forum,

das Ganze laesst sich auf verschiedene Arten realisieren. Die Beginnerfreundlichste ist Variante ist wahrscheinlich mit 2-3 Ausloesern und dem Befehl Deletevehicle zu arbeiten.

Ich habe dir mal ein Beispiel gebaut und am ende dieses Beitrages angehangen.
Bei weiteren Fragen melde Dich einfach nochmal.

gruß
hoschi
Angehängte Dateien
Dateityp: rar delete_all_civs.Chernarus.rar (1,3 KB, 139x aufgerufen)
__________________


Moerderhoschi ist offline  
Alt 16.10.2012, 23:55   #3 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

Erst mal vielen Dank für deine schnelle Hilfe! Dein Beispiel hat mir sehr geholfen.

Ein kleines Problem gibts dennoch, die Fahrzeuge verschwinden zwar, allerdings nicht die Insassen. Die verbleiben halt auf der Map.

Hab in einem Tutorial den Befehl: deleteCollection tank1 gefunden, hab den dann eingebaut.

{deleteCollection _x} foreach thislist;

Allerdings scheint das nicht zu funktionieren. Könntest du mir da eben helfen.

PS: Wie müsste das Script eigentlich aussehen, wenn nur Menschen und keine Fahrzeuge verschwinden müssten? Das wäre dann ne passende Geisterstadt. Ich habe dazu nichts passendes im Manual gefunden.
sandmanGER ist offline  
Alt 17.10.2012, 18:11   #4 (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

Lösche zuvor alle Insassen: {deleteVehicle _x} forEach crew Tank1;

Anschließend dann das Fahrzeug: deleteVehicle Tank1;
Vienna ist offline  
Alt 17.10.2012, 18:38   #5 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

okay hat sich geklärt, hab einfach zwei Auslöser benutzt die zeitversetzt losgehen.

Bleibt aber immer noch die Frage, wie ich die Personen in und um den Fahrzeugen löschen kann OHNE die Fahrzeuge zu löschen, möglichst auf globale Weise, also ohne jeder Einheit n Namen zu verpassen.
sandmanGER ist offline  
Alt 17.10.2012, 18:57   #6 (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 den Fahrzeugen ist ja in meinem vorherigen Post schon beschrieben. Um das Fahrzeug herum geht unter Verwendung von http://community.bistudio.com/wiki/nearestObjects
Vienna ist offline  
Alt 17.10.2012, 19:11   #7 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

Dein post bezieht sich auf meinen anderen Thread.
sandmanGER ist offline  
Alt 17.10.2012, 19:20   #8 (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

Im Post #4 hier ist beschrieben wie die Insassen eines Fahrzeuges zu löschen sind. Außerhalb siehe den Link aus vorherigem Post.
Vienna ist offline  
Alt 23.10.2012, 16:04   #9 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

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.
sandmanGER ist offline  
Alt 23.10.2012, 21:16   #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

Es gibt Probleme, wenn ein Objekt 100% zerstört wurde und man es wieder herstellen will.

HideBody als Befehl oder Aktion scheint nicht zu funktionieren.

Wie du die Soldaten im Fahrzeug löschen sollst, habe ich in einem Post oben schon beschrieben.
Vienna ist offline  
Alt 24.10.2012, 17:27   #11 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

{deleteVehicle _x} forEach crew Tank1;
.. funktioniert nicht

{deleteVehicle _x} foreach crew (thislist select 0);
..auch nicht

{_x setDamage 1} foreach crew (thislist select 0);
das hingegen schon.


ist aber erstmal egal... ich lösch einfach erst das fahrzeug und dann 5 Sekunden später alle noch vorhandenen Einheiten.

Ich komm aber nicht mit dem anderen Problem weiter.

Wie sieht das script aus welches alle soldaten, die sich außerhalb der Fahrzeuge befinden, tötet?


AllUnits1 = nearestObjects [Fahrzeug1, Vehicles, 40];
{_x setDamage 1} foreach units AllUnits1;



Wie muss ich dann "nearestiobject" einbauen? *Wichtig: Fahrzeug1 soll ein Array sein, soll also mehrere Autos enthalten, die sich in einem Auslöser befinden.
sandmanGER ist offline  
Alt 24.10.2012, 21:12   #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

Wie ich gesehen habe gibt es ein Problem in einem Fahrzeug einen Soldaten zu löschen.

Das geht dann nur in Verbindung mit folgendem Auslöser (den du wo im Abseits aufstellst):

Name: Entfernen
Radius: 50
Aktivierung: Jeder Mehrfach
Bedingung: this
Zeitverzögerung: 3x 1 Sekunde einstellen
Bei Akt: {deleteVehicle _x} forEach thislist

Die Crew löscht du nicht, sondern du versetzt sie zu diesem Auslöser:
{_x setPos position Entfernen} forEach crew Tank1

Dadurch werden die Insassen in den Auslöserbereich versetzt und dort gelöscht.
Vienna ist offline  
Alt 25.10.2012, 16:30   #13 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

wie kann ich statt

Tank1

-> thislist
benutzen?

Will halt sämtliche Fahrzeuge (im Triggerradius) "entleeren".
Jetzt wirst du wahrscheinlich wieder das nearestObject Beispiel ansprechen, aber wie muss ich das integrieren?

Siehe meinen vorherigen Post.
sandmanGER ist offline  
Alt 26.10.2012, 01:42   #14 (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

Mit thislist ist das problematisch, sondern du verwendest list AuslöserName

Du erstellst folgenden Auslöser für einen bestimmten Bereich:
Aktivierung: Jeder Einmal
Vorhanden
Name z.B. A1

Aufruf nun über anderen Auslöser:
{ {_x setPos position Entfernen} forEach crew _x } forEach list A1

Es werden auch alle Soldaten aus diesem Bereich entfernt, welche nicht in einem Fahrzeug sind!
Vienna ist offline  
Alt 26.10.2012, 07:09   #15 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 29.07.2008
Ort: Wien
Alter: 48
Beiträge: 189
Ghost_Aut eine Nachricht über MSN schicken
Standard

Hallo, ich denke mit dem addEventHandler ginge es einfacher!

Diesen code, in die Init der Einheit eintragen!
Code:
this addEventHandler ["killed", {handle = [_this select 0] execVM "clean.sqf"}]
Ein sqf script erstellen, mit dem Namen clean.sqf
Code:
if (! isServer) exitWith {};
 
_unit = _this select 0;
 
//Vehicle
if (not (_unit isKindOf "Man")) then
{
{deleteVehicle _x} forEach crew _unit;
sleep 60;
deletevehicle _unit;
};
 
//Soldiers 
if (_unit isKindOf "Man") then
{
if(not ((vehicle _unit) isKindOf "Man")) then {_unit setpos (position vehicle _unit)} ;
sleep 10;
hideBody _unit;
sleep 4;
deletevehicle _unit;
};
LG. Ghost
__________________
Ghost_AUT
Ghost_Aut ist offline  
Alt 26.10.2012, 10:02   #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

Man müsste den eventHandler in jeder KI initialisieren.

Aber was noch wesentlicher ist, der Befehl deleteVehicle funktioniert nicht bei Einheiten in Fahrzeugen. hideBody gar nicht.

Nimm man deleteVehicle vehicle _x, dann wird anstelle eines der Soldaten das Fahrzeug gelöscht.

Darum die Lösung mit dem Rausversetzen der Soldaten aus den Fahrzeugen und dann löschen. Die Action mit "eject" geht auch nicht.

Vermutlich sind das wieder einmal Bugs.
Vienna ist offline  
Alt 26.10.2012, 18:26   #17 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

okay. sie verlassen das Fahrzeug.

Angenommen im Auslöser befinden sich Fußsoldaten und Fahrzeuge in denen Soldaten sitzen. Wie kann ich es machen, das nur die Fußsoldaten gelöscht werden. DieFahrzeuge sollen unbeschädigt bleiben. Notfalls kann auch die Crew sterben Hauptsache das Fahrzeug bleibt halt ganz.

Wichtig, man sollte das halt im Auslöser / per Script hinbekommen. Nicht jeder Einheit nen Namen verpassen usw.
sandmanGER ist offline  
Alt 27.10.2012, 00:05   #18 (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ür einen Auslöserbereich nach Post #14:

{ if {_x isKindOf "Man"} then {deleteVehicle _x} } forEach list A1;

Das sollte nur die Soldaten im außerhalb von Fahrzeugen in den Bereich löschen.
Vienna ist offline  
Alt 27.10.2012, 14:36   #19 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

Mache da wohl was falsch:

Error if: type code, erwartet bool
sandmanGER ist offline  
Alt 27.10.2012, 15:40   #20 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
Standard

Code:
{ if (_x isKindOf "Man") then {deleteVehicle _x} } forEach list A1;
__________________
Buliwyf ist offline  
 

Stichworte
arma editor, auslöser, deletevehicle, hilfe, modding


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
Patch 1.60! Xeno Community 69 11.01.2012 13:41
1.60 rc Dieter66 Community 47 22.12.2011 16:49
Einheiten in Gruppe löschen Brubaker Editing 6 26.05.2011 18:44
Addons aus Mission entfernen Neuling Technische Fragen & Probleme 2 19.12.2010 18:39
Heal/Repair Script / Einheiten in einem Radius zufällig generieren lassen Noobfire Editing & Scripting 8 06.08.2010 16:22


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 117 118 119