Ranwer135 308 Posted April 7, 2015 (edited) Hi guys, In my CSGO-fan-made mission for arma 3, I'm trying to get my guy to diffuse the bomb planted by a player (which both work) However, when I call a Terminate command such as: _diffuseA = [] execVM "Bomb\A\plant_script.sqf"; Terminate _diffuseA; It won't terminate ... WTF ... :391: As I said above, as soon as I diffuse the bomb with that command in the diffuse_plant.sqf script, it doesn't terminate plant_script.sqf The whole script works fine, its just that when the terminate command doesnt work, first Counter-Terrorists won and then all the sudden a huge explosion where I've scripted suddenly rubbed out that and announced Terrorists won. :confused: It would be great if anyone could help solve this ASAP, its like the terminate command just doesn't do anything at all anymore :( Here is my plant_script.sqf: player addMPEventHandler ["MPKilled", {_this = execVM "Bomb\T_Terminate.sqf"}];T1 removeAction action1; T1 removeAction action2; _explosion = _this select 1; player switchMove "AinvPknlMstpSlayWrflDnon_medic"; hint "Planting Bomb.."; sleep 7.42; player switchMove ""; actionA1 = Area_A addAction ["Diffuse Bomb", "_this execVM 'Bomb\A\diffuse_script.sqf'", 1, 0, true, false, "", "player == CT1; _this distance _target < 2"]; actionB1 = Area_B addAction ["Diffuse Bomb", "_this execVM 'Bomb\B\diffuse_script.sqf'", 1, 0, true, false, "", "player == CT1; _this distance _target < 2"]; player say3D "C4_Plant"; sleep 0.3; playSound "Bomb_Planted"; [str("Bomb Has Been Planted!")] spawn BIS_fnc_infoText; sleep 2; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; sleep 1; Area_A say3D "C4_Armed"; sleep 1.4; //Insert bomb explosion player sideChat "test"; playSound "T_Win"; playMusic "T_WinM"; 0=[[["Terrorists Win!","align = 'center' size = '1.0'"]]] spawn BIS_fnc_typeText2; [str("T : %1", _nT + 1), str("CT : %1", _nCT)] spawn BIS_fnc_infoText; T1 respawnVehicle ["5"]; T2 respawnVehicle ["5"]; T3 respawnVehicle ["5"]; T4 respawnVehicle ["5"]; T5 respawnVehicle ["5"]; CT1 respawnVehicle ["5"]; CT2 respawnVehicle ["5"]; CT3 respawnVehicle ["5"]; CT4 respawnVehicle ["5"]; CT5 respawnVehicle ["5"]; [] execVM "start.sqf"; And my diffuse_script.sqf: player addMPEventHandler ["MPKilled", {_this = execVM "Bomb\CT_Terminate.sqf"}];CT1 removeAction _action; hint "Diffusing Bomb.."; player switchMove "AinvPknlMstpSlayWrflDnon_medic"; sleep 7.42; player switchMove ""; player switchMove "AinvPknlMstpSlayWrflDnon_medic"; sleep 7.42; player switchMove ""; sleep 0.3; hint "Diffused Bomb!"; player say3D "C4_Disarm"; [str("Bomb Has Been Diffused!")] spawn BIS_fnc_infoText; playSound "Bomb_Defused"; _diffuseA = [] execVM "Bomb\A\plant_script.sqf"; Terminate _diffuseA; CT1 removeAction actionA1; CT2 removeAction actionA2; CT3 removeAction actionA3; CT4 removeAction actionA4; CT5 removeAction actionA5; CT1 removeAction actionB1; CT2 removeAction actionB2; CT3 removeAction actionB3; CT4 removeAction actionB4; CT5 removeAction actionB5; sleep 2; playSound "CT_Win"; playMusic "CT_WinM"; 0=[[["Counter-Terrorists Win!","align = 'center' size = '1.0'"]]] spawn BIS_fnc_typeText2; [str("T : %1", _nT), str("CT : %1", _nCT + 1)] spawn BIS_fnc_infoText; T1 respawnVehicle ["5"]; T2 respawnVehicle ["5"]; T3 respawnVehicle ["5"]; T4 respawnVehicle ["5"]; T5 respawnVehicle ["5"]; CT1 respawnVehicle ["5"]; CT2 respawnVehicle ["5"]; CT3 respawnVehicle ["5"]; CT4 respawnVehicle ["5"]; CT5 respawnVehicle ["5"]; [] execVM "start.sqf"; Kind Regards, Rawner135 / Ranwer NOTE: Also, on the first line ive added MPEvent Handlers that handle the player if hes killed, these are the scripts for them: T_Terminate.sqf: _TKilledA = [] execVM "Bomb\A\plant_script.sqf";terminate _TKilledA; _TKilledB = [] execVM "Bomb\B\plant_script.sqf"; terminate _TKilledB; CT_Terminate.sqf: _CTKilledA = [] execVM "Bomb\A\diffuse_script.sqf";terminate _CTKilledA; _CTKilledB = [] execVM "Bomb\B\diffuse_script.sqf"; terminate _CTKilledB; actionA1 = CT1 addAction ["Diffuse A", "Bomb\A\diffuse_script.sqf"]; actionA2 = CT2 addAction ["Diffuse A", "Bomb\A\diffuse_script.sqf"]; actionA3 = CT3 addAction ["Diffuse A", "Bomb\A\diffuse_script.sqf"]; actionA4 = CT4 addAction ["Diffuse A", "Bomb\A\diffuse_script.sqf"]; actionA5 = CT5 addAction ["Diffuse A", "Bomb\A\diffuse_script.sqf"]; actionB1 = CT1 addAction ["Diffuse B", "Bomb\B\diffuse_script.sqf"]; actionB2 = CT2 addAction ["Diffuse B", "Bomb\B\diffuse_script.sqf"]; actionB3 = CT3 addAction ["Diffuse B", "Bomb\B\diffuse_script.sqf"]; actionB4 = CT4 addAction ["Diffuse B", "Bomb\B\diffuse_script.sqf"]; actionB5 = CT5 addAction ["Diffuse B", "Bomb\B\diffuse_script.sqf"]; Edited April 7, 2015 by Ranwer Share this post Link to post Share on other sites
killzone_kid 1326 Posted April 7, 2015 You probably think that if you launch another copy of the script with execVM you can somehow obtain reference to previous copy launched before. Well, it doest work like this, you need to store reference for each script in global variable and use it to terminate script later. Share this post Link to post Share on other sites
Idomass 11 Posted April 7, 2015 i think it will be batter if we will mix our missions if you want just contact me steam Share this post Link to post Share on other sites
Ranwer135 308 Posted April 7, 2015 You probably think that if you launch another copy of the script with execVM you can somehow obtain reference to previous copy launched before. Well, it doest work like this, you need to store reference for each script in global variable and use it to terminate script later. Oh I see! Oh darn, didnt expect to make a mistake like that, thank u for pointing that out, Killzone_Kid. :) @eldar, Ive just been thinking, what if on Steam you could continue making your mission, but if your having probs, i dont mind u using some scripts of mine. :) (as long as u mention who made what script, youll be fine) Even if u like, we both could add eachother as mission makers in both our gamemodes :D My steam is: Rawner135 I might not be online from tomorrow to Thursday morning, because I am getting my heart checked out by the heart doctors. (Had a heart scare couple of weeks ago, so their just doing a checkup on it plus giving me a mini heart monitor for 24-48 hrs) Kind Regards, Rawner135 (Steam) / Ranwer (BI Forums) Share this post Link to post Share on other sites
dreadedentity 278 Posted April 7, 2015 sleep 2; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.9; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.8; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.7; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.6; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.5; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.4; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.3; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.2; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1.1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 1; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.9; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.8; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.7; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.6; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.5; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.4; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.3; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.2; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; Area_A say3D "C4_Beep"; sleep 0.1; sleep 2; for "_i" from 1.9 to 0 step -0.1 do { for "_o" from 0 to 3 do { Area_A say3D "C4_Beep"; sleep _i; }; }; Loops are pretty nice. Condensed your 164 lines to 9. T1 respawnVehicle ["5"]; T2 respawnVehicle ["5"]; T3 respawnVehicle ["5"]; T4 respawnVehicle ["5"]; T5 respawnVehicle ["5"]; CT1 respawnVehicle ["5"]; CT2 respawnVehicle ["5"]; CT3 respawnVehicle ["5"]; CT4 respawnVehicle ["5"]; CT5 respawnVehicle ["5"]; { _x respawnVehicle ["5"]; }forEach [T1,T2,T3,T4,T5,CT1,CT2,CT3,CT4,CT5]; 12 lines condensed here down to 3 Share this post Link to post Share on other sites
Ranwer135 308 Posted April 7, 2015 @DreadedEntity Thanks for helping out, you guys are the best :D Also, as with the terminate function, the action1 its terminating is an addaction leading to the plant_script.sqf. If the addAction is the issue, then I could remove the action1 = from my addaction and do in another .sqf: action1 = {this} execVM "plant_script.sqf"; Kind Regards, Rawner135 / Ranwer Share this post Link to post Share on other sites