Jump to content
Sign in to follow this  
Ranwer135

terminate script does not work!?!?

Recommended Posts

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 by Ranwer

Share this post


Link to post
Share on other sites

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

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
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

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

@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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×