Jump to content

Recommended Posts

Hello everyone, 

Hope this script helps you in your missions. Feel free to improve my code but, please, don't re-post it on Workshop. Use this thread to share your advice and, if possible, already with your code ideas for fixing/improvement (will be very much appreciated). New features? Why not? Cheers.

 

What to expect from this script AI:

With just one unit, it's automatically able to... 

 

  1. ...act through a VBIED with its specific behaviors;
  2. ...act as a deadman trigger with its specific behaviors;
  3. ...act as a suicide bomber with its specific behaviors.

 

Demo:

 

suicidalDoctrine.sqf:

Screenshot-2.jpg

 

Features rules of VBIED method:

  • A suicide operator steers the vehicle bomb (VBIED) to a target and, at the right moment, a remote detonation trigger is pressed by the suicide.
  • All method behaviors are described on the Github readme file.


Features rules of Deadman Trigger method:

  • A suicide operator wears a suicidal belt/vest and detonates themselves by releasing a reverse-pressure trigger.
  • All method behaviors are described on the Github readme file.

 

Features rules of Classic Suicide Bomber method:

  • A suicide operator wears a suicidal belt/vest and detonates themselves by releasing a reverse-pressure trigger.
  • All method behaviors are described on the Github readme file.

 

Dependencies:

CBA mod;

ACE mod;

 

Download:

From Github: https://github.com/aldolammel/Arma-3-Suicidal-Doctrine-Script

From Steam Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=2739692983

 

Changelog:

2022-Feb-17, v1.3: news, fixes and notes.

 

Known issues:

  • In Deadman trigger method, when the suicidal is their belt/vest deactivated and, by long distances, they got a non-lethal shot, the suicidal should turn the vest detonation system on, but it's not happening.
  • Although the functionality to lock the steering wheel if the suicide isn't allowed to drive is working, the suicide still insists on being seated in the driver's position. Expected behavior: change to passager seat.

 

 

  • Like 5
  • Thanks 2

Share this post


Link to post
Share on other sites

Congrats on the release. Just a couple of small things to kinda improve your code. I strongly suggest you use the keyword private to declare your private variables. This way you'll make sure there's absolutely no naming conflict (if you haven't f**ked up your own code that is). Additionally, you may want to add some kind of tag to your variables. This could be your initials, some other meaningful (to you and possibly others) initials, some initials resembling the script or mod etc. A couple of examples (borrowing your variable names) are

private _VBIED_SuicidalMethod = 1;
private _VBIED_Death_Shout = "SuicideCry";

Of course, having a tag in private variables may not make much sense but I usually do it in my code to clarify things and have a consistent format in case I also use global and/or public variables.

 

Keep up the good work and thanks for sharing with the community.

  • Like 1

Share this post


Link to post
Share on other sites
On 2/4/2022 at 8:18 PM, ZaellixA said:

Congrats on the release. Just a couple of small things to kinda improve your code. I strongly suggest you use the keyword private to declare your private variables. This way you'll make sure there's absolutely no naming conflict (if you haven't f**ked up your own code that is). Additionally, you may want to add some kind of tag to your variables. This could be your initials, some other meaningful (to you and possibly others) initials, some initials resembling the script or mod etc. A couple of examples (borrowing your variable names) are


private _VBIED_SuicidalMethod = 1;
private _VBIED_Death_Shout = "SuicideCry";

Of course, having a tag in private variables may not make much sense but I usually do it in my code to clarify things and have a consistent format in case I also use global and/or public variables.

 

Keep up the good work and thanks for sharing with the community.

 

Hey, @ZaellixA


I'm declaring the variables. They are out of the viewport of the first screenshot.

Here they are:

aaaaaa.jpg

 

 

 

About this:

private _VBIED_SuicidalMethod = 1;
private _VBIED_Death_Shout = "SuicideCry";

_suicidalMethod cant be VBIED_SuicidalMethod 'cause is exactly here where we are setting if the method is VBIED or DeadmanTrigger. 

And regarding _deathShout, it's used in all of other (future) methods as well, so I'm not sure whether is do interesting to split it. 

 

Btw, this week the new (and improved) version is coming!

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Good to see all those privates up there 🙂.

 

Regarding the tag though, keep in mind that this is just a suggestion to provide consistency and coding style that matches the community's (which most often than not is built upon well thought and "engineered" guidelines). If you have taken your actions under consideration or this is what you've designed. don't hesitate to follow whatever is that you designed.

  • Like 1

Share this post


Link to post
Share on other sites

@thy_ On the topic of code style, I suggest keeping the line length short (try to keep it below say 100 characters) and not using tabs to align the = signs.

It looks beautiful on your screenshot but for people who don't open it full-screen on an ultra wide monitor or who have different font size or tabs configuration than you, it won't look so great. I think preview on GitHub speaks for itself 😉

XnspVl7.png

  • Like 3

Share this post


Link to post
Share on other sites

Script updated. More information in the first topic message 😉

 

  • New method: classic suicide bomber (regular pressure-trigger. system);
  • For all methods, the suicidal has 4 types of available enemy targets: attack anyone; attack any playable units; attack only players; and attack only a chosen one;
  • In the VBIED method, the editor got the option to turn off the vehicle wreck immediately after the detonation to avoid wreck collision for any reason.
  • Fixed: In the VBIED method, once inside the vehicle with welded doors, the suicidal will never ramp out.

Share this post


Link to post
Share on other sites
5 hours ago, _foley said:

@thy_ On the topic of code style, I suggest keeping the line length short (try to keep it below say 100 characters) and not using tabs to align the = signs.

It looks beautiful on your screenshot but for people who don't open it full-screen on an ultra wide monitor or who have different font size or tabs configuration than you, it won't look so great. I think preview on GitHub speaks for itself 😉

XnspVl7.png

 

Fixed. Hope now it fits better.

  • Like 1

Share this post


Link to post
Share on other sites

Script updated. First topic message updated. 😉

 

Changelog

v1.3 - Feb, 17th 2022

  • Calling the script through initPlayerLocal.sqf istead of initServer.sqf (fixing desync nearest targeting in dedicated servers);
  • VBIED with mega explosion (5x bigger than before) even if the VBIED has the same ammo of other suicide methods (a car will be much more loaded of explosives than a vest/best);
  • fixed the "suicidalEnemy" variable description (it the suicidal enemy side and not the suicidal side);
  • added a note in description.ext saying just a piece of that file is needed by script.

 

 

image.png

  • Like 3

Share this post


Link to post
Share on other sites

hi thy_

ty for this amazing script, could you make an edit to it so it doesn't need ACE?
 

Share this post


Link to post
Share on other sites

I wanted to know how to add multiple variables on this line:
_suicidal           = s1;     // ......... who will be the suicidal unit, the unit name.

i have multiple units s1, s2, s3

how to add them in that same line? Is it:

-s1; s2;
-s1, s2;
-s1,s2,
-s1;s2;

ty

Share this post


Link to post
Share on other sites

Unfortunately, I'm working on new projects and I cannot do a fork with no-ACE

 

On 7/23/2024 at 8:40 AM, Komodo-1 said:

could you make an edit to it so it doesn't need ACE?

 

It's easy, you must remove the code lines where the logic is used handcuffs (it comes from ACE features).

 

On 7/23/2024 at 9:20 AM, Komodo-1 said:

I wanted to know how to add multiple variables on this line:
how to add them in that same line? Is it:

-s1; s2;
-s1, s2;
-s1,s2,
-s1;s2;

 

It's not as easy as your first request. A way to do this is to work with classes, which can be a hard time for someone with no SQF experience 😞
This script was built for the mission to get only one suicidal threat. That's why it's not easier/faster to change it to insert many of them. 

Share this post


Link to post
Share on other sites
On 7/25/2024 at 5:28 PM, thy_ said:

Unfortunately, I'm working on new projects and I cannot do a fork with no-ACE

 

 

It's easy, you must remove the code lines where the logic is used handcuffs (it comes from ACE features).

 

 

It's not as easy as your first request. A way to do this is to work with classes, which can be a hard time for someone with no SQF experience 😞
This script was built for the mission to get only one suicidal threat. That's why it's not easier/faster to change it to insert many of them. 

hi thy, thank you for the reply. Yeah sqf scripting isn't my strong suite lol
Thank you for the scripts, amazing stuff

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

×