PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script löst mehrfach aus


R0kn1x
04.03.2013, 21:19
Hallo,

ich versuche derzeit eine Mission mit IED zu erstellen. Der Trigger löst beim 1. mal so aus wie er es soll.

Nur leider löst sie später immer wieder aus, wenn einer den Trigger erwischt. Kann mir da jemand helfen?

Hier einmal das Script:

_shellArray =
[
"ARTY_Sh_122_HE",
"ARTY_Sh_81_HE"
];

_shell = _shellArray call BIS_fnc_selectRandom;

_explosion = _shell createVehicle position IED2;

Zudem noch Zwei Fragen.

Ist es möglich, das eine IED nur dann auslöst, wenn Fahrzeuge daran vorbei fahren?

Wenn ich die Sprengung wie oben Abrufe, ist es dann möglich das z.B. ein Müllhaufen zerstört wird? Der bleibt da bei mir immer noch liegen.

Vielen Dank!

Gruß

Rok

Wolkenbeisser
05.03.2013, 08:47
Hast Du den Trigger evtl. auf "mehrfach" gestellt? Damit man hier mehr dazu sagen könnte, müsste man erst mal die Einstellungen des Triggers anschauen.

Zu Frage zwei: Vielleicht kannst Du damit in der Bedingung des Triggers etwas tun: http://community.bistudio.com/wiki/isKindOf

Den Müllhaufen würde ich einfach mit dem Befehl deleteVehicle Meinmüllhaufen löschen (wobei Meinmüllhaufen der Name des Objektes Müllhaufen ist).

Drunken Officer
05.03.2013, 19:24
deleteVehicle >name der IED< löst die IED

Drunken Officer
05.03.2013, 19:36
Ein Beispiel Ohne Auslöser
In meinem Beispiel löst die USBV nur bei "blau" aus!! Das müßtest du entfernen, wenn jeder das Teil auslösen kann.

Desweiteren habe ich ein addaction-Eintrag geschaffen der es ermöglicht, dass ding zu entschärfen.

Der Spieler hat die Möglichkeit, entweder entschärfen oder zerschiessen. Beim Beschuss explodiert sie aber.

Die Stärke ist okay. Spieler stirbt, Humvee hält es ab, Reifen sind platt und Hülle beschädigt.

Die Warnung wird pro USBV nur 1x ausgegeben!

//******** Scriptcode by Drunken Officer ******
//*************************************
in die inti von der USBV
handle = [this, 10, 5] execVM "... \*.sqf

// 10 ist der Radius in Meter wo der Spieler eine HINT Meldung bekomm
// 5 ist der Radius wo es boom macht


private ["_usbv","_boom","_alarm","_nachricht","_warnung"];
_usbv = _this select 0;
_alarm = _this select 1;
_boom = _this select 2;
_nachricht = localize "STR_usbv_sicht"; // ich arbeite mit einer STringtable für mehrsprachige Ausgabe
_warnung = 0;
// hier besteht die Möglichkeit das Ding zu entschärfen
IED_boom = _this select 0 addAction [format ["<t color='#000080'>%1</t>", localize "STR_action_IED"], "scripte\usbv_wegmachen.sqf"];

while {alive _usbv} do
{
_no = nearestObjects [_usbv,["man","car","tank","motorcycle"],_alarm]; //___ nur Autos, LKW
_no1 = _no select 0;
if (!isNull _no1 && _warnung == 0 ) then {hint parsetext format ["<br /><t align='center' color='#FF1500' size='1.5'>%1</t><br />",_nachricht]; _warnung = 1;};
if (!isNull _no1 && side _no1 == WEST && (_no1 distance _usbv <= _boom)) then
{
_granate = createVehicle ["r_80mm_he",[getPos _usbv select 0, getPos _usbv select 1],[], 0, 'FLY'];
deleteVehicle _usbv;
_warnung = 0;
};
sleep 0.1;
};
// *** IED_remove wird durch das entschärfen auf 1 gesetzt.
if (!isNil"IED_remove") exitWith {};
_granate = createVehicle ["r_80mm_he",[getPos _usbv select 0, getPos _usbv select 1],[], 0, 'FLY'];
deleteVehicle _usbv;
(_this select 0) removeAction IED_boom;


//gün #00E500
//rot #FF1500


P.S.: Ist ne Holzhacker-Methode was das scripten angeht, so lange stehe ich dies bezüglich auch noch nicht auf eigenen Beinen. Es gibt sicherlich wesentlich bessere Varianten.

R0kn1x
06.03.2013, 00:38
Danke für die Hilfe.

verstehe ich das richtig, dass wenn ich bei nearestObjects nur car schreibe, das Teil nur bei Fahrzeugen hoch geht?

Drunken Officer
06.03.2013, 06:31
Jo, so ist es.
Car ist die Oberklasse für autos, LKWs, kleiner Radpanzer.

Im Netz findest du eine Liste

R0kn1x
06.03.2013, 10:14
Gute zu wissen. Funktioniert das auch z.B. bei Fahrzeugen des GAF und BW Mods? Im Menü haben die ja meist eine andere Klasse. Ich denke da z.B. an AMT Radfahrzeuge.

Drunken Officer
07.03.2013, 04:35
So wie ich die BW-Moder kenne, sollte es funktionieren. Die haben einen sauberen Still. BW-Mods hat mit 99,99999% Wahrscheinlichkeit ihre Fahrzeuge von den entsprechenden Arma-Fahrzeugen abgeleitet und danach ihre eigene Klassen erstellt.
Der andere Name kommt aus der Config.cpp. Da wird innerhalb der Definition der Name zugewiesen. Man kann auch eine komplett eigene Fraktion erstellen.
Dies hat aber nichts mit der Klasse zu tun.

Sicherlich kann man auch komplett eigene Klassen erstellen, was aber nicht klug ist.

Eine Frage zu deinem Script.
122mm ist doch D30 Muni? Ist bissel viel für eine IED, oder?

Zu deinem Code mit löschen:
Daran denken, Auslöser auf einmal stellen

_shellArray =
[
"ARTY_Sh_122_HE",
"ARTY_Sh_81_HE"
];
_shell = _shellArray call BIS_fnc_selectRandom;
_explosion = _shell createVehicle position IED2;
sleep 0.5;
deleteVehicle IED2;

TeRp
07.03.2013, 08:38
Die BWMod-Fhz sind extra aus den jeweiligen Basisklassen (Car, Truck, APC, Tank, und was es alles sonst noch so gab) wegen solcher Sachen abgeleitet worden.
Wie das bei AMT ist, kann ich dir leider nicht sagen, denke aber frankyman wird das auch so gemacht haben.