Moin in die Runde ..
Ich verzweifel bald. Ich bekomme folgende Mission einfach nicht zum Laufen. Sie wird lediglich angekündigt, dann passiert nichts und nach dem abgelaufenen Zeitfenster wird sie wieder nur angekündigt.
Habe ich irgendwo n Syntaxfehler, den ich nicht (mehr) sehe oder ist irgendwas einfach völlig falsch?
C
// ******************************************************************************************
// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com *
// ******************************************************************************************
// @file Name: mission_CivilWar2.sqf
// @file Author: JoSchaap, AgentRev, GriffinZS, RickB, soulkobk
// @file WS Edit: GriffinZS
if (!isServer) exitwith {};
#include "moneyMissionDefines.sqf";
private ["_positions", "_camonet", "_hostage", "_hostage1", "_obj2", "_hostage2", "_hostage3"];
_setupVars =
{
_missionType = "Civil War";
_locationsArray = CWARSpawnMarkers;
};
_setupObjects =
{
_missionPos = markerPos _missionLocation;
_camonet = createVehicle ["CamoNet_Sand_open_lxWS", [_missionPos select 0, _missionPos select 1], [], 0, "CAN COLLIDE"];
_camonet allowdamage false;
_camonet setDir random 360;
_camonet setVariable ["R3F_LOG_disabled", false];
_missionPos = getPosATL _camonet;
_hostage = createVehicle ["C_Djella_02_lxWS", _missionPos, [], 0, "CAN COLLIDE"];
_hostage setPosATL [_missionPos select 0, _missionPos select 1, _missionPos select 2];
waitUntil {alive _hostage};
[_hostage, "Acts_AidlPsitMstpSsurWnonDnon_loop"] call switchMoveGlobal;
_hostage disableAI "anim";
removeHeadgear _hostage;
removeBackpack _hostage;
removeGoggles _hostage;
_hostage forceAddUniform "U_lxWS_C_Djella_01";
_hostage addHeadgear "lxWS_H_cloth_5_B";
_hostage addGoggles "G_Blindfold_01_black_F";
_hostage1 = createVehicle ["C_Djella_03_lxWS", _missionPos,[], 10,"None"];
_hostage1 setPosATL [(_missionPos select 0) - 2, (_missionPos select 1) + 2, _missionPos select 2];
waitUntil {alive _hostage1};
[_hostage1, "Acts_AidlPsitMstpSsurWnonDnon_loop"] call switchMoveGlobal;
_hostage1 disableAI "anim";
removeHeadgear _hostage1;
removeBackpack _hostage1;
removeGoggles _hostage1;
_hostage1 forceAddUniform ""U_lxWS_C_Djella_05";
_hostage1 addHeadgear "lxWS_H_turban_04_green";
_hostage1 addGoggles "G_Blindfold_01_white_F";
_obj2 = createVehicle ["Box_Syndicate_WpsLaunch_F", _missionPos,[], 10,"None"];
_obj2 setPosATL [(_missionPos select 0) + 2, (_missionPos select 1) + 2, _missionPos select 2];
[_obj2, "Box_Syndicate_WpsLaunch_F"] call randomCrateLoadOut;
_obj2 setVariable ["cmoney", 5000, true];
_hostage2 = createVehicle ["C_Djella_01_lxWS", _missionPos,[], 10,"None"];
_hostage2 setPosATL [(_missionPos select 0) - 2, (_missionPos select 1) - 2, _missionPos select 2];
waitUntil {alive _hostage2};
[_hostage2, "Acts_AidlPsitMstpSsurWnonDnon_loop"] call switchMoveGlobal;
_hostage2 disableAI "anim";
removeHeadgear _hostage2;
removeBackpack _hostage2;
removeGoggles _hostage2;
_hostage2 forceAddUniform "U_lxWS_Tak_03_C";
_hostage2 addHeadgear "lxWS_H_cloth_5_C";
_hostage3 = createVehicle ["C_Djella_05_lxWS", _missionPos,[], 10,"None"];
_hostage3 setPosATL [(_missionPos select 0) + 2, (_missionPos select 1) - 2, _missionPos select 2];
waitUntil {alive _hostage3};
[_hostage3, "Acts_AidlPsitMstpSsurWnonDnon_loop"] call switchMoveGlobal;
_hostage3 disableAI "anim";
removeHeadgear _hostage3;
removeBackpack _hostage3;
removeGoggles _hostage3;
_hostage3 forceAddUniform "U_lxWS_Tak_03_A";
_hostage3 addHeadgear "H_HeadBandage_bloody_F";
_aiGroup = createGroup CIVILIAN;
[_aiGroup,_missionPos,10,20] spawn createcustomGroup;
_aiGroup setCombatMode "RED";
_aiGroup setBehaviour "COMBAT";
_missionPicture = "pictures\civilwar.paa";
_missionHintText = format ["The SRS has set captive <t color='%1'>innocent citizens</t>!<br/> They are going to kill them very soon.<br/>Go there, eliminate all SRS units and keep the citizens alive!", moneyMissionColor];
};
_waitUntilMarkerPos = nil;
_waitUntilExec = nil;
_waitUntilCondition = {!alive _hostage && !alive _hostage1 && !alive _hostage2 && !alive _hostage3};
_failedExec =
{
// Mission failed
{ deleteVehicle _x } forEach [_camonet, _hostage1, _obj2, _hostage2, _hostage3, _hostage];
_failedHintMessage = format ["The innocent civilians are dead. Damnit!"];
};
_successExec =
{
// Mission completed
{ deleteVehicle _x } forEach [_hostage1, _hostage2, _hostage3, _hostage];
{ _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_camonet, _obj2];
_successHintMessage = format ["Excellent job! The innocent citizens survived!"];
};
_this call moneyMissionProcessor;
Display More
Missionsidee ist:
- 4 gefangene Zivilisten
- feindliche Einheiten müssen eliminiert werden
- kein Zivis darf dabei umkommen
Soweit so simpel. Folgende mögliche Fehlerquellen wurden mehrfach gechecked:
- createcustomGroup vorhanden und läuft auch bei anderen Missionen
- die Animation funktioniert auch bei einer Mission mit nur einer Geisel (Hostage Rescue). Hatte da zuerst 4 verschiedene Animationen, das aber vorerst auf eine reduziert
- Missionsmarker sind gesetzt und eingetragen
Bei 2 Sachen bin ich mir unsicher:
Code
_obj2 = createVehicle ["Box_Syndicate_WpsLaunch_F", _missionPos,[], 10,"None"];
_obj2 setPosATL [(_missionPos select 0) + 2, (_missionPos select 1) + 2, _missionPos select 2];
[_obj2, "Box_Syndicate_WpsLaunch_F"] call randomCrateLoadOut;
_obj2 setVariable ["cmoney", 5000, true];
Muss die Box überhaupt n zweites Mal aufgerufen werden? Ich meine, es ist zwar unnötig, aber würde das verhindern, dass die Mission überhaupt erst erscheint?
Und, vielleicht das Wichtigste?
Code
_waitUntilCondition = {!alive _hostage && !alive _hostage1 && !alive _hostage2 && !alive _hostage3};
Ich möchte es ja so haben, das keine Geisel sterben darf. Ist der Befehel dann rchtig? oder müsste es OR heißen?