Jump to content
johnnyboy

JBOY Dog [v1.5 - updated 12/21/2018]

Recommended Posts

Your can try the dog out in my new mission:  Last Tango in Tanoa 2: Razing Cane.  If you like JBOY Dog please rate this mission on Steam to motivate me to continue improving the Dog Scripts and creating more Dog-based missions.

 

Now updated to Version 1.5 on December 21, 2018.  Download link below is now for v1.5. 

Note:  This is NOT MP compatible.  I have no immediate plans of making it MP compatible.  (Maybe this bold note will prevent this question being posted 100 more times...:grinning:)

 

Version 1.4 Video (AI controlled sentry dogs):

Here's my JBOY Dog script. Initial version released.

Here's V1.1. video showing new features (New dialog menu from Soolie, Dog packs roaming and attacking).

Version 1.2 Tracking scent trail and Swimming

Version 1.5 Video (Doggy Cam!)

Download

Download the zip file and unzip it into your missions directory.  You can then try it in the Editor.

Missions Featuring JBOY Dog (play and rate these on steam if you like JBOY dog!)

Features:

  • NEW:  AI patrols can now use dogs to sense and attack enemies (v1.4)
  • Dogs obey these commands:
    • Heel - Dogs follow handler closely
    • Move there - Point to a position and dog moves there
    • Attack - Point to a man or animal, and dog will attack it
    • Detain - Point to a man, and dog will approach and threaten man.  Man plays surrender animation while detained.
    • Stay - Stop the dog
    • Sit - Dog will sit
    • Fetch - Dog will retrieve small animals (rabbits, chickens, snakes)
    • Get in Vehicle - Dog boards vehicle (currently only Offroads, APEX jeep, zodiac and hummingbird supported...more to follow)
    • Get out/Disembark
    • Track - Dog senses scent trails and follows the trail.  Trails end at water or when quarry boards vehicle.
    • SITREP - Dog barks.  Useful when you lose sight of dog in dense jungle
    • Dismiss - Dog no longer controlled by handler
  • All dog commands can be issued by player or by scripted AI units.
  • Voice commands use either custom voice commands by me (Johnnyboy), or any in-game language (English, French, Chinese, Persian)
  • Voice commands may be quiet, normal or loud depending on combat mode (stealth, safe, combat)
  • Handlers use hand signals also when commanding dogs
  • Roving dog packs that hunt/attack animals and men when they are near.
  • Vanilla dogs can't swim...JBOY dogs swim (while following handler in heel mode)
  • Vanilla dogs die with one shot...JBOY dogs can take 2 or more hits.
  • Vanilla dogs don't bleed...JBOY dogs have blood textures
  • Vanilla dogs don't bark or growl...JBOY dogs do bark and growl
  • Vanilla AI will not fire on dogs...JBOY dogs will be fired upon by AI if attacked by dogs
  • Dogs boarding vehicles will lock cargo position in vehicle so AI boarding will not clip with dog
  • Player can Heal dog
  • Dog will detect enemies and point them out (stop, growl, and look in enemy direction)
  • Ability to have a Doggy Cam display in player's HUD.  Optional.  Can be turned on/off via action menu.

Planned Enhancements (I hope):

  • Make it MP compatible.  May be now...needs MP Testing!  Any volunteers?
  • Detect - Bomb sniiffing, drug sniffing, etc.
  • Scout - Dog runs ahead and stops and points at enemy it detects
  • Fetch any small object -  Get my pistol boy!  Get the Tactical Bacon!
  • Improve AI firing on dogs.
  • Unconcious mode for wounded dog, so you can heal your best friend.
  • Make a kick-ass mission with Boomer at my side!  Done!  Twice!

Known Issues:

 
  • Dogs clip through many objects and buildings.  Not sure there is anything I can do about that.  Currently best to use dogs in non-urban environment.
  • When dog rides in front seat of vehicle, and player is driver in first-person mode, dog looks like he is outside vehicle.  This is an Arma issue.  Looks ok in 3rd person view though.

Credits:

  • Soolie for beautiful Dialog menu to replace clumsy action menu
  • AZ Coder for Doggy Cam script
  • Larrow for his awesome utility for finding voice files in config.
  • SuperTruite for his amazing particle effects utility
  • KillzoneKid for help on forums and his awesome blog
  • Cosmic10R for his DIK code based menu (very slick, but opting for addon free Dialog menu for now...maybe someday offer option for either)
  • AZ Coder for some dog pack behaviour snippets and a few sound fx.  Love the menacing growl I use for detaining perps!
  • Persian MO for MP-proofing JBOY Chicken
  • Nomisum:  I borrowed some code snippets and ideas for using arrow helper objects as a scent trail to track.  Thanks man!

  • Grumpy Old Dude:  For help with the smashed grass trail.

  • Thanks to these guys for Testing and Feedback:
    • Cosmic MP Testing of JBOY Chicken
    • AZ Coder for implementing JBOY Dogs in Shadow Fall

Version 1.5 Change Log

Spoiler
  • Added option to have Doggy Cam display (PIP) (Thanks to AZCoder!)
  • Stopped continuous pain yelping for AI controlled dogs and dog pack dogs.  It makes sense for player controlled dogs, because that cues player to heal the dog.  But it is annoying for dog packs and AI controlled dogs.
  • Made dog pack dogs and AI controlled dogs easier to kill.

Version 1.4 Change Log

Spoiler
  • Added saveLoad eventhandler to init.sqf so menu restored when player loads from saved game
  • Added red paw icon to display on dog when SITREP command issued.
  • Allow naming dog if default Boomer dog is not used
  • Added some advanced hints (you will need to include the .hpp in your description.ext as shown in example mission description.ext).
  • Improved AI control of dogs.  Dogs follow AI in Heel mode through waypoints.  When dogs detect enemies, the AI Handlers goes into combat mode and commands dog to attack.  After all known enemeies killed, AI Handler resumes  following waypoints and commands dog back into Heel mode. This is great for sentries walking a base perimeter for example.

 

Version 1.3 Change Log

 
  • Player can heal dog
  • Dog no longer takes fall damage or collision damage (solves problem of dog taking damage on steep terrain)
  • Dog detects any near enemy (current version only detected the unit being tracked by dog).  This is now a huge plus while patrolling:  Your dog stops, growls, and looks in direction of enemy.  Great for avoiding being ambushed in dense jungle or villages.
  •  If handler killed, another player in group can take control of dog.
  • Dog mourns when handler killed.
  • Cleaned up init.sqf (moved script compiling and some global var initialization to separate script, so only need one line to call this from init.sqf)
  • Move JBOY dog sound config to include file to clean up Description.ext
  • Dog Command Menu has been professionally localized to:
    •     Italian (thanks to @zagor64bz)
    •     German (thanks to @Undeceived)
    •     Spanish (thanks to Johnnyboy's bi-lingual sister)
  • Dog Command Menu has been "Google Translate Localized" (i.e., localized badly) to:
    •     French
    •     Portuguese
    •     Russian cyrillic alphabet
    •     Czech
    •     Polish

 

Version 1.2 Change Log:

 

Spoiler

 

  • Tracking
    • Dogs pick up a scent trail and follow it.
    • Scent trails end when tracked units cross water or get in vehicles.  Trails begin again when tracked unit exits water or vehicles.
    • Via barking, whining and growling, dogs indicate to player if they have found a scent trail, if trail has ended, or if enemy is near.
  • Swimming
    • Dogs follow handler in Heel mode and swim (fixes arma problem where vanilla dogs walk underwater on seabed)
  • SITREP command:  Dog barks once when given this command.  This helps know where your dog is in the dense jungle.

 

 

 

Version 1.1 Change Log:

 
 
  • New clean dialog menu thanks to Soolie!  Replaced clumsy actions menu with menu dialog accessed via T key.
  • Feral Dog Packs:  Feral dog packs roam, and attack whoever they encounter, then roam again.  Can be spawned by a trigger when player enters an area.  Kudos to AZ Coder for some logic and ideas.
  • Improved AI targeting and fighting dogs.  Not perfect though.  Very difficult since AI doesn't recognize dogs as enemy.
  • Made MP compatibility changes to JBOY Dog that Persion MO recommended to fix JBOY Chicken.  JBOY Dog not MP tested though...any volunteers?
  • Dogs now attack and fetch snakes.
  • Updated JBOY dog to include latest version of JBOY Chicken.
  • Fixed bug where multiple hand signals given during attack.
  • Dogs now stop after attacking person (instead of running off).
  • Many small improvements/tweaks.
  • A few more cool dog sound fx thanks to AZ Coder.
  • Dog command menu is localized professionally to German, Italian and Spanish.   It is also localized poorly via Google Translate to Russian, Czech, Portuguese, French, and Polish.  Need volunteers to localize for these languages!

Credits:

  • Larrow for his awesome utility for finding voice files in config.
  • SuperTruite for his amazing particle effects utility
  • KillzoneKid for help on forums and his awesome blog
  • Soolie for beautiful Dialog menu to replace clumsy action menu
  • Cosmic10R for his DIK code based menu (very slick, but opting for addon free Dialog menu for now...maybe someday offer option for either)
  • AZ Coder for some dog pack behaviour snippets and a few sound fx.  Love the menacing growl I use for detaining perps!
  • Persian MO for MP-proofing JBOY Chicken
  • Nomisum:  I borrowed some code snippets and ideas for using arrow helper objects as a scent trail to track.  Thanks man!

  • Grumpy Old Dude:  For help with the smashed grass trail.

  • Thanks to these guys for Testing and Feedback:
    • Cosmic MP Testing of JBOY Chicken
    • AZ Coder for implementing JBOY Dogs in Shadow Fall
    • @Kronons for Dedicated Server Integration and testing (thanks mate!)
    • Mercenary11 for bug reports
    • @accuracythruvolume for MP and Dedicated Server testing and feedback
    • @zagor64bz implemented the dog in his cool mission and gave lots of good testing feedback.
  • Menu Localization
    • Thanks @Undeceived for translating menu to German
    • Thanks @zagor64bz for translating menu to Italian
    • Thanks JohnnyBoys's sister for Spanish translation.
  • Like 34
  • Thanks 2

Share this post


Link to post
Share on other sites

How to add JBOY Dog to your own mission

 

 


1. Create and save a mission via the Eden editor (or open an existing mission).

2. Download the dog sample mission from the top post.

3. Copy the JBOY and JBOY_DOG folders from the sample mission folder to your mission folder.

4. If your mission does not have a description.ext file already, then copy this file into your mission directory

5. If your mission does have a description.ext file already, then merge the contents from the sample description.ext into your mission's description.ext.  The parts you want are all the CfgSounds entries, the #includes under class RscTitles, and the two includes above #RscTitles.

6. If your mission does not have an init.sqf, then create an empty one.

7. Open your mission init.sqf and the sample dog mission init.sqf in an editor.  From the sample init.sqf copy all the lines from the beginning of the file to the line below (including line below into your mission), and put them in your init.sqf.

_n=[] spawn {sleep 2; dog1 setVariable ["vCommand", 'sit', true]}; // Issue first command to dog (sit, heel, stay, etc. Sleep to allow dog to be initialized first.

 

8. Start your mission.

 

The above steps will create a dog near a player.  That dog can now be commanded via bringing up a menu using the T command.

 

There is more code in the init.sqf showing examples of how to create dog packs, how to assign dogs to AI units, how to start a scent trail to be dropped by units (that can later be tracked by a dog, and calls to create some chickens and rabbits to run JBOY Turbo Chicken on.).  You can experiment with those after you get the basic player controlled dog working (which should be easy if you follow the above steps).
 

How to add more vehicles that JBOY Dog can ride in is explained in this post:

 

 

How to implement JBOY Dog using Feral Dog Packs only (question asked by Zagor).

 

If you want use only the roaming/attacking dog packs in a mission, do the following:

 

1. In editor create an empty mission on the island of your choice and save it.

2. From JBOY Dog sample mission linked above copy the init.sqf, description.ext files and the two directories JBOY and JBOY_Dog into your new mission folder.

3. Edit the top of the description.ext to be specific to your mission .

4. Edit the init.sqf file and delete all code BELOW these lines (but keep these lines in the init.sqf):


// **************************************************************************
// Create game logic used by JBOY_AIFightsDogs.sqf to force AI to fire weapons.
// **************************************************************************
JBOYDogLogicCenter = createCenter sideLogic;
JBOYDogLogicGroup = createGroup JBOYDogLogicCenter;
JBOYDogGameLogic = JBOYDogLogicGroup createUnit ["Logic", [0,0,0], [], 0, "NONE"];

5. In the Eden Editor, create a trigger where you want a dog pack to roam, and put this code in OnActivation.  You can see an example of this in my sample mission.  I set size to be 500x500, so pack is spawned when player enters that area.

Condition: this && player in thislist

OnActivation:


dmy=[] spawn 
{
    _pos = getpos dogPack1Trigger; 
    _followerDogTypes = ["Fin_blackwhite_F","Fin_ocherwhite_F","Fin_tricolour_F","Alsatian_Black_F","Alsatian_Sandblack_F"];   
    _pack = [_pos, 7, "Alsatian_Sand_F", _followerDogTypes, 75] call JBOY_dogPackCreate; 
}; 

The parameters for call JBOY_dogPackCreate shown above are:

  • "_packPOS" - position where to spawn dog pack.  In this example it is the trigger position.
  • "_dogCount" - How many dogs in pack
  • "_dogLeaderType" - Specific type of dog you want to be the leader
  • "_dogFollowerTypes" - List of dog types that will be randomly selected for the other dogs in pack
  • "_attackPreyRadius" - Distance from pack leader within pack will sense a man, and go into attack mode.

Zagor also wants to respawn a pack when all dogs in pack are killed.  This is currently not part of my scripts.  But you could handle this by naming the pack.  So instead of _pack in the trigger code above, give them a global name like Pack1 instead.  Then script a trigger to monitor when the pack is dead with a condition like this:

 

({alive _x} (Pack1 getVariable "vPackMembers")) == 0

 

And in the OnActivation box, duplicate the same code as shown above to respawn a pack.

 

You will have to figure out the dog pack respawn details yourself, as I don't plan to work on that for awhile.

 

BTW, you can create multiple dog packs.

  • Like 2

Share this post


Link to post
Share on other sites

Awesome. Man... badly needed... glad ure taking up the challenge on this !!

  • Like 1

Share this post


Link to post
Share on other sites

Awesome. Man... badly needed... glad ure taking up the challenge on this !!

Thanks brother.  I had half of it done over 2 years ago and shelved it to do a mission for MANW contest.  Then Bohemia broke animal movement for over a year or so.  But I'm glad to be back on it now.

  • Like 1

Share this post


Link to post
Share on other sites

Looks like it has awesome potential. Any plans for AI to use them, even if it's rather basic? (not a request if you're not planning to do so, merely a question) I'm thinking dog patrols would be awesome for some of the single player stuff I make, but I have no idea how complicated it would be to get the AI to use them.

Also, if you're in need of any extra sounds, I can dig deep into my library of random game sound effects and see if I have any doggy sounds. Just PM me if you have a need, but it will take me some time to go through everything I have to look for any sounds just FYI (literally millions of files I have that are not sorted much and have file names that do no indicate in the slightest what the sound is).

  • Like 1

Share this post


Link to post
Share on other sites

Not a mod?  Awesome!  Was considering tackling this, but I'm glad someone more capable has.  Great work.

  • Like 1

Share this post


Link to post
Share on other sites

Looks like it has awesome potential. Any plans for AI to use them, even if it's rather basic? (not a request if you're not planning to do so, merely a question) I'm thinking dog patrols would be awesome for some of the single player stuff I make, but I have no idea how complicated it would be to get the AI to use them.

Also, if you're in need of any extra sounds, I can dig deep into my library of random game sound effects and see if I have any doggy sounds. Just PM me if you have a need, but it will take me some time to go through everything I have to look for any sounds just FYI (literally millions of files I have that are not sorted much and have file names that do no indicate in the slightest what the sound is).

Thanks Mynock.  AI can definitely be scripted to use all commands player can.  In the demo, there's a few sentries with waypoints, dogs assigned to them executing the "heel" command.  BTW the music in the beginning of the vid matches your ID photo!  Thanks for the sound file offer, I'll think about it.

 

 

Not a mod?  Awesome!  Was considering tackling this, but I'm glad someone more capable has.  Great work.

Thanks Phronk, much appreciated.

  • Like 1

Share this post


Link to post
Share on other sites

Guess I should have watched the video before asking, doh! Awesome news. Looking forward to this!

Share this post


Link to post
Share on other sites

I have dog script on me too, but appriciated that you are making this public. Great work mate!

 

 

Here is little snippet for sniffing out mines and explosives

_dog = ... your dog agent;

action

player addAction [
    "<t color='#ff0000'>Sniff bomb</t>", 
    { 
        params ["_target", "_caller", "_id", "_args"];
        _dog = _args select 0;
        { (side _caller) revealMine _x; } forEach (nearestObjects [_dog, ["MineBase"], 12]);
        _dog say3D "bark";
    }, 
    [_dog], 1.5, true, true, "", true, 15, false
];

Hope it will be in some use to you johnnyboy

 

Radius is set to 12m (40feet). Did some research on dogs :D

  • Like 1

Share this post


Link to post
Share on other sites

I have dog script on me too, but appriciated that you are making this public. Great work mate!

'''''''

 

Here is little snippet for sniffing out mines and explosives.

Hope it will be in some use to you johnnyboy

 

Radius is set to 12m (40feet). Did some research on dogs :D

Thanks much M1ke.  Your snippet will definitely help me out when I get to bomb sniffing. Cheers! :cheers:

Share this post


Link to post
Share on other sites

See original post.  You can now download the sample mission and try it out in the editor.  Documentation coming soon.  :) :) :)

  • Like 1

Share this post


Link to post
Share on other sites

A lot of resources there in demo.

 

If interested, I can help you develop (share my code) and add more features if you want. PM me, or send message on steam.

 

I like your way of creating custom content (mostly voice acting) :D

  • Like 1

Share this post


Link to post
Share on other sites

Can't wait to test it out Johnny boy!!

Will report back what I find..great vid btw.

  • Like 1

Share this post


Link to post
Share on other sites

A lot of resources there in demo.

 

If interested, I can help you develop (share my code) and add more features if you want. PM me, or send message on steam.

 

I like your way of creating custom content (mostly voice acting) :D

Thanks for the offer M1ke.  I'll PM you.

 

Can't wait to test it out Johnny boy!!

Will report back what I find..great vid btw.

I look forward to the report cosmic!  Any feedback is welcome.

Share this post


Link to post
Share on other sites

That is a great test mission man... a lot of detail there...

 

the concept Works very well... i wish Bis would put some time into those anims... the dogs could be so cool and technically they fit the military theme well...

 

in any case... great job man... gonna try to add it to a Ravage mission for that Fallout feel and its perfect for a Project Haleks keeps hinting at...

 

Have you thought of putting it into a menu and pulling it out of the action menu...

the bis number menu is perfect for that ... i dug into the code a bit and it would be a fairly easy transition i think

you can use CBA keybinding to call the menu. in any case... i may poke around with that a bit if you don't mind.. 

i use it in a couple of personal mods...

 

but again ... awesome work... 

  • Like 1

Share this post


Link to post
Share on other sites

That is a great test mission man... a lot of detail there...

 

the concept Works very well... i wish Bis would put some time into those anims... the dogs could be so cool and technically they fit the military theme well...

 

in any case... great job man... gonna try to add it to a Ravage mission for that Fallout feel and its perfect for a Project Haleks keeps hinting at...

 

Have you thought of putting it into a menu and pulling it out of the action menu...

the bis number menu is perfect for that ... i dug into the code a bit and it would be a fairly easy transition i think

you can use CBA keybinding to call the menu. in any case... i may poke around with that a bit if you don't mind.. 

i use it in a couple of personal mods...

 

but again ... awesome work... 

Thanks much.  I hate the action menu myself, so any help in that regard would be welcome.  If I saw a functioning example of the number menu you mention I would convert it.  Any headstart I could get on that would be a great help.  I'm unfamiliar with "bis number menu"...will google it.

 

I'm trying to improve the AI firing on the dogs (I attach hidden target objects to the dogs), so I was testing in the sample mission at the end.  And had some intense moments when all the dogs turn on the player.  I think dog pack attacks are going to work really well for survival type missions like you say.

 

And I too wish we had better animations to choose from.  They buried barking in the long Stop and Idle animations, so you can't isolate the particular barking/biting anim when you want it.

Share this post


Link to post
Share on other sites

you can see it in the top left here

 

20161029170522_1_zpss3zsyylm.jpg

 

Ill dig a bit and see if i can get a sample working and send it through to you...

  • Like 1

Share this post


Link to post
Share on other sites

you can see it Ill dig a bit and see if i can get a sample working and send it through to you...

Looks cool.  Looking forward to the sample.

Share this post


Link to post
Share on other sites

Looks cool.  Looking forward to the sample.

 

 

Ill send you this one as well  ;)

 

20161103080119_1_zpsc4iyavo1.jpg

 

20161103080125_1_zpslu2gq2yj.jpg

 

the creation is working fine  but its still throwing an error on the getSpeakerLanguage... should work... maybe Im just tired lol

Share this post


Link to post
Share on other sites

 

 

Ill send you this one as well  ;)

 

 

the creation is working fine  but its still throwing an error on the getSpeakerLanguage... should work... maybe Im just tired lol

Looking forward to it.

 

You're not pointing that gun at Boomer are you?   :angry:   Anybody who shoots Boomer is off my christmas list!  :) 

  • Like 1

Share this post


Link to post
Share on other sites

Another great script johnnyboy....Boomer would be proud! (he was a mighty fine looking beast btw.)

  • Like 3

Share this post


Link to post
Share on other sites

i can confirm ... that at the time of the picture taken

 

I was providing 360 degree flea security to boomer and at no time was he in any danger.

Fleas will not be tolerated ....

  • Like 2

Share this post


Link to post
Share on other sites

Another great script johnnyboy....Boomer would be proud! (he was a mighty fine looking beast btw.)

Thanks EO!  Boomer was truly the best trail buddy you could have.  Loved swimming, frizbee, hiking, mountain biking, and snow shoeing.  Smart, independent, loyal and fun.  And awesome defender of the yard (raccoons, possums, squirrels beware!).

 

i can confirm ... that at the time of the picture taken

 

I was providing 360 degree flea security to boomer and at no time was he in any danger.

Fleas will not be tolerated ....

OK I feel much better now.  I know Boomer would appreciate all flea-seeking projectiles you had to send down-range.

  • Like 2

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

×