Mungo Turkey 0 Posted March 3, 2019 Hello everyone. Apologies for being useless and having to come on here, but I'm stuck. Using VCOM AI (when units are grouped) the firefights are really good. My goal is to make the AI behave naturally to gunfire before they all 'knowsabout' you. At default it is really, really bad. My idea was to simulate the sound of gunfire carrying realistic distances (using triggers of up to 1km or more) and then have the AI react appropriately within these trigger areas when any shots are fired. I am nearly there. I don't understand SQF, but I spliced these things together from looking through the forums. Player squad is called GT. OPFOR units named a1, a2, a3, a4, a5. In the (player's) Object Init box - {_x addEventHandler['Fired',{shotIsFired = true}]} forEach (units GT); note - I would do it for all OPFOR units as well so they react the same if OPFOR fired first. In the Trigger named T1 - Activation - Any group member Activation type - Present Condition Expression - shotIsFired On Activation - [a2,a3,a4,a5] join a1; a1 reveal [GT, 1.7] This works brilliantly. They don't know exactly where I am, but they break out of ambient animations/patrol cycles instantly, huddle up (group) and take appropriate action. As they would in reality when hearing the shot. The problem is it will trigger if GT shoots outside the trigger area, they could be on the moon and it triggers! It is completely irrelevant to what settings I use in the trigger, what size or who I try to group to sync to, any of it. If anyone could help that would be great. Thanks in advance. Share this post Link to post Share on other sites
Mungo Turkey 0 Posted March 4, 2019 Close but no cigar... In the Trigger named T1 - Condition - shotIsFired and this also tried shotisfired and GT in thislist This prevented activation when shooting from outside the trigger, but then the trigger activated as soon as I walked in. This would be the case for all further triggers. If I walked in the trigger area without firing in that session it would not be activated until a shot went off, but from anywhere. Must be a way to contain the 'fired' eventhandler to a trigger area somehow. It's probably something really simple. Please put me out of my misery. Share this post Link to post Share on other sites
POLPOX 774 Posted March 4, 2019 I think you need inArea command. {_x addEventHandler['Fired',{if (_this#0 inArea T1) then {shotIsFired = true}}]} forEach (units GT); 2 1 Share this post Link to post Share on other sites
Mungo Turkey 0 Posted March 4, 2019 POLPOX thank you so much. Spot on. I was on the verge of using stones dotted around everywhere with fired near Eventhandlers! 🤡 Much appreciated, hope it helps others as well. Share this post Link to post Share on other sites
JJFierce 0 Posted November 27, 2021 Sorry for diggin up this old stuff but i confused. Im tryin to create trigger in wich if player will open fire Independent become from friends to a hostile. So i put in init of player:this addEventHandler ["Fired", { if (this inArea CheckFireTrigger) then {ShootingInVillage=true}} ]; And in trigger (CheckFireTrigger) condition:ShootingInVillage && (player in thislist) On Activation:west setFriend [resistance, 0]; resistance setFriend [west, 0]; But it doesnt work. So where i am wrong here? Share this post Link to post Share on other sites
Harzach 2516 Posted November 27, 2021 Event handlers generally pass certain parameters to their code block. this addEventHandler ["Fired", { params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"]; }]; //unit: Object - Object the event handler is assigned to //weapon: String - Fired weapon //muzzle: String - Muzzle that was used //mode: String - Current mode of the fired weapon //ammo: String - Ammo used //magazine: String - magazine name which was used //projectile: Object - Object of the projectile that was shot out //gunner: Object - gunner whose weapons are firing. So, try this addEventHandler ["Fired", { if (_unit inArea CheckFireTrigger) then {ShootingInVillage=true}} ]; There may be other issues. 1 1 Share this post Link to post Share on other sites