PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auslöser


[ate]minimal
28.12.2014, 21:42
Hey Jungens

ich hätt da mal wieder a problem.

Ich hab mir selber ein script geschrieben, das eine a10 mit piloten erzeugt, welcher dann zu punkt a fliegt, dort ne bombe abwirft, weiter zu b und dort aus dem spiel entfernt wird. funktioniert soweit ganz gut bis auf das bomben abwerfen :D.

wollte das mit dem bomben abwerfen elegant lösen, weil die ki doch zu dämlich zum zielen ist, und das per auslöser erledigen.

nun zu meinem Problem. so erzeuge ich die bomben im editor Funk-Alpha:


GBU = createvehicle ["Bo_GBU12_LGB", [3677,13395,500], [],0,"FLY"]; GBU setVectorDirAndUp [[0,0,-1],[0,1,0]];
funktioniert ganz gut solang keine wolke am himmel ist :D.

jetzt wollt ich das ganze in ein komplettes script packen und denn auslöser auch selber generieren, nur wird mir dann ein fehler angezeigt es würde eine klammer fehlen.

hier mal das komplette script:

BluePilot = createGroup west;

"B_Pilot_F" createUnit [ getMarkerPos "a10m", BluePilot,"A10P = this;", 0.8, "CAPTAIN"];
///
a10 = createvehicle ["B_Plane_CAS_01_F", getMarkerPos "a10m", [],0,"Fly"];
///
a10 flyInHeight 750;
///
A10P moveindriver a10;
///
addSwitchableUnit A10P;


///Wegpunkte
wp = (group A10P) addWaypoint [[3700,13400,750],0];
wp setWaypointType "Move";
wp setWaypointSpeed "FULL";
wp setWaypointBehaviour "Aware";
wp setWaypointFormation "LINE";

wp = (group A10P) addWaypoint [[2500,25000,750],0];
wp setWaypointType "Move";
wp setWaypointSpeed "FULL";
wp setWaypointBehaviour "Aware";
wp setWaypointFormation "LINE";

///Auslöser Bomben
_trg = createTrigger ["EmptyDetector",[3700,13400]];
_trg setTriggerArea[500,500,0,false];
_trg setTriggerActivation ["west","present",false];
_trg setTriggerStatements ["this","GBU = createvehicle ["Bo_GBU12_LGB",[3677,13395,500],[],0,"none"]; GBU setVectorDirAndUp [[0,0,-1],[0,1,0]];",""];

///Auslöser Delete
_trg = createTrigger ["EmptyDetector",[2500,25000]];
_trg setTriggerArea[1000,1000,0,false];
_trg setTriggerActivation ["west","present",false];
_trg setTriggerStatements ["this", "deleteVehicle a10;doGetOut A10P;deleteVehicle A10P;",""];


kann mir da jemand helfen?????

mfg minimal

Drunken Officer
28.12.2014, 22:05
So fliegt das ding definitv auch unter Beschuss an



if (isServer) then {
private ["_pil", "_wp1", "_wp2"];
a10 = createvehicle ["B_Plane_CAS_01_F", getMarkerPos "a10m", [],0,"Fly"];
createVehicleCrew a10;
_pil = driver a10;
a10 setcombatmode "blue";
a10 allowfleeing 0;
a10 flyinheight 750;
_wp1 = (group A10) addWaypoint [[3700,13400,750],0];
_wp1 setWaypointType "Move";
_wp1 setWaypointSpeed "FULL";
_wp1 setWaypointBehaviour "Aware";

_wp2 = (group A10) addWaypoint [[2500,25000,750],0];

//du hast vorher die Variable WP überschrieben!!!

waitUntil {sleep 1; a10 distance (waypointposition _wp1) < 50 || !alive a10};
if (!alive a10) exitWith {};
_GBU = createvehicle ["Bo_GBU12_LGB", [3677,13395,500], [],0,"FLY"]; _GBU setVectorDirAndUp [[0,0,-1],[0,1,0]];
waituntil {sleep 1; a10 distance (waypointposition _wp2) < 50 || !alive a10};
if (!alive a10) exitWith {};

//warum läßt du jemaden aussteigen um sie dann zu löschen??

_pil action ["eject", vehicle (driver a10)];
deleteVehicle _pil;
deleteVehicle a10;
};

[ate]minimal
28.12.2014, 22:18
wie immer is der besoffenste am schnellsten :D

cool danke für die schnelle hilfe.
zu deiner anmerkung ich hätte die Variable WP überschrieben.....es hatt funktioniert:D

vor allem find ich es erstaunlich das es doch relativ einfach ist so was zu bewerkställigen, wenn man weiß wie :D.

hast mir vieleicht en tipp warum meine variante nicht klapt????

nicht das ich deine methode links liegen lass....ich bin nur froh das ich das versteh was ich selber schreib :D und jetzt wieder was neues was ich erst mal erlernen muss:confused:
werd dein script morgen mal einbauen. mach mich jetzt ins Bett.

in diesem sinne gutz nächtle....

Drunken Officer
28.12.2014, 22:39
script ist aber ungetestet. Aber kommt weg von Triggern. Die fressen Performance. Außerdem hätte dein trigger unter Umständen auch ausgelöst, wenn eine andere blaue Einheit im Bereich ist.

Wenn du das Script laufen lässt, lasse es als parallel laufen, da ja waitUntil verbaut worden ist. Entweder als eigene SQF oder als Spawn-Script laufen lassen.

Ist es für MP oder SP gedacht?



Dein Fehler könnte der sein: (mit RPT Eintrag kann man besser analysieren)
_trg setTriggerStatements ["this","GBU = createvehicle ['Bo_GBU12_LGB',[3677,13395,500],[],0,'none']; GBU setVectorDirAndUp [[0,0,-1],[0,1,0]];",""];

[ate]minimal
28.12.2014, 23:00
Erst für mich mal als sp um mal was zustande zu bringen...und dann später mp. Oder is das quatsch???

Also mal das none gegen fly ersetzten? ??

Drunken Officer
29.12.2014, 00:44
Also mal das none gegen fly ersetzten? ??
Nein. Da du bereits im Syntax drin bist und dieser mit " und " endet, mußt du im Syntax mit "" "" bzw. ' ' arbeiten.
Eine ' ist gleich ""
ich hatte das rot markiert.

Erstmal im SP arbeiten macht Sinn. So habe ich auch angefangen. Im MP kommt die Lokalität dazu, was im Editor manchmal zu Verwirrung führt. Im Editor bist du Server und Client zugleich. Manche Dinge würden dann nicht funktionieren oder mehrfach ausgeführt werden.

z.b. createVehicle. Läßt du das nicht nur durch den Server oder eben durch den Clienten ausführen, so würde jeder Client+Server das Ding erstellen.
Oder addAction-Einträge wirken sich z.b. Lokal aus. Setzt du eine Varibale auf true und es soll eine KI angesteuert werden, würde dies im Editor/SP funktionieren. Aber nicht auf einem Dedicatet, weil nur der client, der denn AddAction ausführt die Varibale setzt. Da mußt später mit publicVariableServer etc pp arbeiten.

Trigger sind wieder eine Besonderheit für sich.

m.M.n. macht es aber Sinn erstmal im SP zu lernen. Da lernt man die Befehl und versteht es später besser´.

[ate]minimal
30.12.2014, 21:34
Hey hoo...hab dein Script heut getestet und tada es funktioniert;). nicht gleich auf anhieb aber passt und genau so wie ich mir das vorgestellt hab :).

dein lösungs vorschlag für mein script hat auch gestimmt, keine fehlermeldung und macht boom. :)*mirselberaufdieschulterklopf*

vielen dank nochmal greetz mini