Jump to content
Sign in to follow this  
zooloo75

Simple IED script not working. [TRIGGERS]

Recommended Posts

_geld = 'geld' call INV_GetItemAmount;

if(_geld >= 1000) then
{
['geld', -1000] call INV_AddInventoryItem;
ied = "Grave" createvehicle (getpos player);
iedpos = (getpos _ied);
player groupchat "You have one minute to get away from the bomb before it activates!";
sleep 60;
hint "IED Active.";
iedtrig=createTrigger["EmptyDetector",getPos player];
iedtrig setTriggerArea[10,10,0,false];
iedtrig setTriggerActivation["ANY","PRESENT",true];
iedtrig setTriggerStatements["this", "deletevehicle _ied; 'Bo_FAB_250' createvehicle _iedpos;", "deletevehicle _ied; 

'Bo_FAB_250' createvehicle _iedpos;"]; 
}

else {hint "You need $2000 to make an IED."};

I'm making an IED script for Chernarus Life, but there's one problem - The triggers don't work.

I place the "Grave" and everything else in the script works. When someone walks into the trigger area, a bomb should be created at the IED position, but it doesn't happen.

I put the code into Squint and it found no errors in the code.

Share this post


Link to post
Share on other sites

You can't use local variables within the trigger _ied, _iedpos they will need to be global without the underscore.

your also mixing global and local variable here

ied = "Grave" createvehicle (getpos player);

iedpos = (getpos _ied);

Share this post


Link to post
Share on other sites
You can't use local variables within the trigger _ied, _iedpos they will need to be global without the underscore.

your also mixing global and local variable here

ied = "Grave" createvehicle (getpos player);

iedpos = (getpos _ied);

Ah, thanks dude! Works flawlessly now!

Share this post


Link to post
Share on other sites

_geld = 'geld' call INV_GetItemAmount;

if(_geld >= 1000) then
{
deletevehicle ied;
deletevehicle iedtrig;
deletevehicle iedtrig1;
deletevehicle iedtrig2;
deletevehicle iedtrig3;
deletevehicle iedtrig4;

['geld', -1000] call INV_AddInventoryItem;
player playmove "AinvPknlMstpSlayWrflDnon_medic";
ied = "Grave" createvehicle (getpos player); 
ied setdir (random 360);
iedpos = (getpos ied);
player groupchat "You have one minute to get away from the bomb before it activates!";
sleep 60;
hint "IED Active.";

iedtrig=createTrigger["EmptyDetector",getPos ied];
iedtrig setTriggerArea[20,20,0,false];
iedtrig setTriggerActivation["CIV","PRESENT",true];
iedtrig setTriggerStatements["this", "deletevehicle ied; hint 'Your IED has been disarmed';", ""];  

iedtrig1=createTrigger["EmptyDetector",getPos ied];
iedtrig1 setTriggerArea[2,2,0,false];
iedtrig1 setTriggerActivation["GUER","PRESENT",true];
iedtrig1 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig1;", ""]; 

iedtrig2=createTrigger["EmptyDetector",getPos ied];
iedtrig2 setTriggerArea[2,2,0,false];
iedtrig2 setTriggerActivation["EAST","PRESENT",true];
iedtrig2 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig2;", ""]; 

iedtrig3=createTrigger["EmptyDetector",getPos ied];
iedtrig3 setTriggerArea[2,2,0,false];
iedtrig3 setTriggerActivation["WEST","PRESENT",true];
iedtrig3 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig3;", ""];




}

else {hint "You need $1000 to make an IED."};

Ok, the IED works, but I also implemented and EOD dog for the cops.

I believe the Dogs are civs. When a dog gets to the IED, it still blows up, but I tested it with a friend and they get the correct message 'Your IED has been disarmed'.

The IED shouldn't blow up when the dog gets near it. It's supposed to be deleted.

EDIT - NVM, it deletes the IED now.

---------- Post added at 07:57 AM ---------- Previous post was at 07:04 AM ----------

Ok, did some more testing - Dogs can remove the IED, but Civilians can too. The civs in Chernarus life are on the independent side though :\

Edited by zooloo75

Share this post


Link to post
Share on other sites

Not tested, but you can try such trigger statement to filter out non-dog civilians:

iedtrig setTriggerStatements ["this", " if (({(typeOf _x) == "[color="#FF0000"]classOfUsedDogHere[/color]"} count thislist) > 0) then {deletevehicle ied; hint 'Your IED has been disarmed'};", ""];

Share this post


Link to post
Share on other sites
Not tested, but you can try such trigger statement to filter out non-dog civilians:

iedtrig setTriggerStatements ["this", " if (({(typeOf _x) == "[color="#FF0000"]classOfUsedDogHere[/color]"} count thislist) > 0) then {deletevehicle ied; hint 'Your IED has been disarmed'};", ""];

_geld = 'geld' call INV_GetItemAmount;

if(_geld >= 1000) then
{
deletevehicle ied;
deletevehicle iedtrig;
deletevehicle iedtrig1;
deletevehicle iedtrig2;
deletevehicle iedtrig3;
deletevehicle iedtrig4;

['geld', -1000] call INV_AddInventoryItem;
player playmove "AinvPknlMstpSlayWrflDnon_medic";
ied = "Grave" createvehicle (getpos player); 
ied setdir (random 360);
iedpos = (getpos ied);
player groupchat "You have one minute to get away from the bomb before it activates!";
sleep 60;
hint "IED Active.";

iedtrig=createTrigger["EmptyDetector",getPos ied];
iedtrig setTriggerArea[20,20,0,false];
iedtrig setTriggerActivation["CIV","PRESENT",true];
iedtrig setTriggerStatements ["this", " if (({(typeOf _x) == "Pastor"} count thislist) > 0) then {deletevehicle ied; hint 'Your 
IED has been disarmed.'}; deletevehicle iedtrig;", ""];

iedtrig1=createTrigger["EmptyDetector",getPos ied];
iedtrig1 setTriggerArea[2,2,0,false];
iedtrig1 setTriggerActivation["GUER","PRESENT",true];
iedtrig1 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig1;", ""]; 

iedtrig2=createTrigger["EmptyDetector",getPos ied];
iedtrig2 setTriggerArea[2,2,0,false];
iedtrig2 setTriggerActivation["EAST","PRESENT",true];
iedtrig2 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig2;", ""]; 

iedtrig3=createTrigger["EmptyDetector",getPos ied];
iedtrig3 setTriggerArea[2,2,0,false];
iedtrig3 setTriggerActivation["WEST","PRESENT",true];
iedtrig3 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig3;", ""];




}

else {hint "You need $1000 to make an IED."};

Alright, I replaced the line with yours, but I get an error.

I pasted the script into Squint and it said, (Missing array element after comma), (Unexpected input "," in array element), (Unexpected input 'Pastor' in array element)

I tried to place an IED, and it wouldn't even run the script.

---------

EDIT

I changed some of the code around so it would work with the trigger - But now civilians don't trigger the bomb to explode, and dogs don't disarm it, but dogs will cause it to explode :\

_geld = 'geld' call INV_GetItemAmount;

if(_geld >= 1000) then
{
deletevehicle ied;
deletevehicle iedtrig;
deletevehicle iedtrig1;
deletevehicle iedtrig2;
deletevehicle iedtrig3;
deletevehicle iedtrig4;

['geld', -1000] call INV_AddInventoryItem;
player playmove "AinvPknlMstpSlayWrflDnon_medic";
ied = "Grave" createvehicle (getpos player); 
ied setdir (random 360);
iedpos = (getpos ied);
player groupchat "You have one minute to get away from the bomb before it activates!";
sleep 60;
hint "IED Active.";

iedtrig=createTrigger["EmptyDetector",getPos ied];
iedtrig setTriggerArea[20,20,0,false];
iedtrig setTriggerActivation["CIV","PRESENT",true];
iedtrig setTriggerStatements ["((typeOf _x) == 'Pastor' count thislist) > 0)", "deletevehicle ied; hint 'Your 
IED has been disarmed.'; deletevehicle iedtrig;", ""];

iedtrig1=createTrigger["EmptyDetector",getPos ied];
iedtrig1 setTriggerArea[2,2,0,false];
iedtrig1 setTriggerActivation["GUER","PRESENT",true];
iedtrig1 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig1;", ""]; 

iedtrig2=createTrigger["EmptyDetector",getPos ied];
iedtrig2 setTriggerArea[2,2,0,false];
iedtrig2 setTriggerActivation["EAST","PRESENT",true];
iedtrig2 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig2;", ""]; 

iedtrig3=createTrigger["EmptyDetector",getPos ied];
iedtrig3 setTriggerArea[2,2,0,false];
iedtrig3 setTriggerActivation["WEST","PRESENT",true];
iedtrig3 setTriggerStatements["this", "deletevehicle ied; 'R_OG7_AT' createvehicle iedpos; deletevehicle iedtrig3;", ""];




}

else {hint "You need $1000 to make an IED."};

Edited by zooloo75

Share this post


Link to post
Share on other sites

Error was caused by double quotes inside double quotes, but after yours changes there is no loger first "this" statement, also you removed part of my addition - so perhaps for that reason this it is not working properly. Hard to tell, when see only code (part of it?). Anyway - did you try with my first statements, only with corrected quotes?

iedtrig setTriggerStatements ["this", " if (({(typeOf _x) == 'Pastor'} count thislist) > 0) then {deletevehicle ied; hint 'Your 
IED has been disarmed.'}; deletevehicle iedtrig;", ""];

Share this post


Link to post
Share on other sites
Error was caused by double quotes inside double quotes, but after yours changes there is no loger first "this" statement, also you removed part of my addition - so perhaps for that reason this it is not working properly. Hard to tell, when see only code (part of it?). Anyway - did you try with my first statements, only with corrected quotes?

iedtrig setTriggerStatements ["this", " if (({(typeOf _x) == 'Pastor'} count thislist) > 0) then {deletevehicle ied; hint 'Your 
IED has been disarmed.'}; deletevehicle iedtrig;", ""];

I will test this out later, thanks for the help.

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  

×