Arma 3
92 ratings
AZC Dogs
2
2
   
Award
Favorite
Favorited
Unfavorite
Data Type: Mod
Mod Type: Mechanics
File Size
Posted
Updated
3.478 MB
Mar 24, 2023 @ 12:30pm
Oct 27, 2024 @ 12:01pm
6 Change Notes ( view )

Subscribe to download
AZC Dogs

Description
This is a mission making tool for single-player. Two modules appear under Ambient on the F5 menu. It's super easy to use, allowing you to spawn single or multiple dogs. Single dog can be attached to player for giving commands. Packs of dogs can be spawned, either friendly or rabid.

This is as much the work of JBOY as it is mine. I took the original JBOY Dogs and turned it into map modules that are easy to use. No complex scripting. Here is what you should know:

https://forums.bohemia.net/forums/topic/241772-azc-dogs/

1) AZC Dogs converts JBOY dogs into a pbo addon
2) Cleaned up sections of the original scripting while adding in totally new functionality
3) Placeable map modules (one for solo and one for packs) that makes mission making easier
4) The option to create friendly packs or rabid packs

New functions added by AZCoder:
class DelayBark {};
class DogDrool {};
class DogVest {};
class GetDogPos {};
class GetNearestHuman {};
class InitDog {};
class InitPack {};
class LiveFeed {};
class PackAttack {};
class PackBehavior {};
class PackCleanup {};
class PackCreate {};
class PackFriends {};
class PackTrack {};
class PiP {};
class ShowDogSubtitle {};

HOW TO USE:
1) F5 -> Ambient -> picks one of two modules: AZC Dog Solo or AZC Dog Pack

2a) Dog Solo is intended to work with a handler which must also be specified.
i. Handler should be either 'player' or left empty. You may also use the name of the player object. AI cannot command dogs.
ii. If empty, this creates a single dog that will follow the Arma 3 engine rules and wander off eventually.
iii. 'Use handler voice for commands' will use custom dialog that was created for my Dark Tides campaign. If you do not select this, then the dog will be used normal squad commands like 'form on me' instead of 'heel'.

2b) Dog Pack creates 1 to 4 dogs that will roam around the area of the module. If rabid is checked, they will attack anyone that gets near them, otherwise they will bark happily at the sight of humans and run around. Note that the rabid dogs may not be as dangerous as some players may prefer. I may adjust this later on with feedback.

Players can identify rabid dogs because they drool and they tend to growl or howl at them. Friendly dogs will just bark and follow you around for a short distance before going back to their initial position. Rabid dog packs will try to kill you and anyone else around.

A solo dog can be reference by simply putting a name in the module. For example, Variable Name 'SoloDog'. Then you can issue script commands to SoloDog, such as 'SoloDog distance player' in the debug console. If you have a dog with a handler, you can reference him by the variable 'vDog'. Such as 'player getVariable "vDog"'.

How does one use that camera on the dog's back? There are 2 functions you need to know: AZC_fnc_LiveFeed and BIS_fnc_liveFeedTerminate. The latter one terminates the feed. If you want to give the player control over the camera (recommended), one easy way is to create a pair of triggers. This will work:

trgCameraActivate = createTrigger["EmptyDetector",[0,0,0]];
trgCameraActivate setTriggerStatements ["true","",""];
trgCameraActivate setTriggerText "Activate Camera";
trgCameraActivate setTriggerActivation ["ALPHA","PRESENT",true];
trgCameraActivate setTriggerStatements ["this","[(player getVariable 'vDog'), player, 0] call AZC_fnc_LiveFeed;",""];

trgCameraDeactivate = createTrigger["EmptyDetector",[0,0,0]];
trgCameraDeactivate setTriggerStatements ["true","",""];
trgCameraDeactivate setTriggerText "Deactivate Camera";
trgCameraDeactivate setTriggerActivation ["BRAVO","PRESENT",true];
trgCameraDeactivate setTriggerStatements ["this","[] call BIS_fnc_liveFeedTerminate;",""];

You can place them in your init.sqf script, or create triggers on the map. This will create an Alpha and Bravo trigger. Let's look at the paramters for AZC_fnc_LiveFeed:
[(player getVariable 'vDog'), player, 0]

The first part gets a reference to the dog, player must be player (don't change it), and the number is what visual mode you want to use. In daylight, use 0. Use 1 for night vision and 2 for thermal vision. Sorry I do not have an easier way to set the camera up at this time. If you come up with a better solution, please share it with me :)

Supported vehicle base classes:

Offroad_01_repair_base_F
Offroad_01_unarmed_base_F
Offroad_02_unarmed_base_F
Rubber_duck_base_F
Heli_Light_01_unarmed_base_F

SPECIAL THANKS:
JBOY for allowing me to build off of his JBOY Dogs suite of scripts.

DISCLAIMER / LICENSE:
I am not responsible for any damage caused by this addon. While the rabid dogs can be scary, it is unlikely they will leap through the monitor and harm you. Face protection is recommended while playing.

This is completely open source. Please credit JBOY and AZCoder if you make changes, but otherwise do as you wish with it.
74 Comments
AZCoder  [author] Feb 5 @ 1:25pm 
Cars that inherit from the classes above. It's a real pain to setup the dog in a car.
TheBatman Jan 26 @ 1:20pm 
can dogs get into a car?
AZCoder  [author] Dec 20, 2024 @ 3:09pm 
You can modify the mod all you want. It's open source. Good luck.
Fylon Dec 19, 2024 @ 8:21pm 
AZCoder, Would you be okay with making a specific version of your mod for me, with things I want? If yes, is it free or do I have to pay?
Brute Oct 28, 2024 @ 12:00pm 
I understand, i appreciate your help.
AZCoder  [author] Oct 28, 2024 @ 10:49am 
I thought that might happen. There's really no workaround. Would have to redesign that portion of the core functionality. If you can do sqf scripting, you could see how it's done in the code and do it all through function calls instead of the modules, and force it to call pack behavior again. The time required to change the core is not something I can do right now, sorry.
Brute Oct 27, 2024 @ 6:27pm 
AZCoder, thanks a ton for adding that function. The disable cleanup option works great even from multiple kilometers away. Unfortunately now the pack is no longer staying rabid.

I've tested it both in scenario and outside of it in the virtual reality map. Sometimes they're rabid for about a second and then it goes away and they run up to the player friendly. Any ideas on how to work around that?

My start point is about 2km away and im playing as blufor.
AZCoder  [author] Oct 27, 2024 @ 12:03pm 
Added the disable cleanup checkbox on the pack module and fixed a minor bug that caused premature cleanup. Check the box to disable all cleanup.
Brute Oct 24, 2024 @ 3:55pm 
Thanks!
AZCoder  [author] Oct 24, 2024 @ 9:32am 
I can add something to prevent autocleanup. Let me look this weekend.