Jump to content

Kronons

Member
  • Content Count

    12
  • Joined

  • Last visited

  • Medals

Posts posted by Kronons


  1. Hi I can't seem to get this to work at all. Followed the instructions and install looks fine. No error in rpt logs. I am on a dedicated server. I tried both:

     

    {[_x] execVM (TCB_AIS_PATH+"init_ais.sqf")} forEach (allUnits);
    
    {[_x] call compile preprocessFile (TCB_AIS_PATH+"init_ais.sqf")} forEach (if (isMultiplayer) then {playableUnits} else {switchableUnits});

    I don't get the option to move around while down, carry/drag bodies, revive, etc...

     

    Edit: I'm trying to get this to work with Exile.


  2. On 2/18/2017 at 0:32 PM, johnnyboy said:

    Please post the init.sqf file you have now.  Maybe @Kronons can help, as he said he just got this working on dedi.  The undefined variable _dog implies the dog was not created before JBOY_cogCommand was called in the init.sqf.  I don't know why that is true in your case.  Note I will likely be offline for a few days and won't be able help until Tuesday maybe.  Good luck.

     

    To get the basic functionality to work follow JohnnyBoy's instructions. Make sure you start with a new install. After you have everything setup the additional step is to comment out the JIP statement unless your using the other animal scripts. Then go through every file and comment out any instance of "isserver".

     

    JohnnyBoy I am still looking into the issue of running the scripts at the right time. So far no issues with not defining any isserver, isdedicated, etc...Although I may look into adding custom code. Atm my server is setup to halo jump and parachute on character creation. I need to make it where it spawns the dog after the person has landed. As it is you would need to relog to have the dog spawn after parachuting. Although not a big issue.


  3. 2 hours ago, zagor64bz said:

    @Kronons

    Hey bud,I don't mean to be disrespectful or anything, and I feel your frustration,  but use the "spoiler" function when you post such long peaces of code.

    It will avoid cluttering the thread...

    Thank you Bud!!!

     

     

    Apologies. I have fixed my post to use the spoiler. Thanks for the advice.

     

    1 hour ago, johnnyboy said:

    Hi Kronos, I apologize, but I have zero time for the next week to look deeply in to any problems.   My time should free up some late next week.  But here's a few points:

     

    1.  You should need nothing from the .SQM file.

    2. I see you put all my scripts under a folder called Custom.  You updated all the compiled functions to reference Custom directory (that's good).  And you updated file paths in .EXT file (good).  But some of the JBOY dog scripts reference the folders internally.  These would have to be changed.  And you would have to find all occurrences of  this in all all the scripts.  I think it would be quicker and easier to NOT put everything under Custom folder.   Let's eliminate that as a problem.  Once you get a dog spawned and working, you go back to trying to put everything under Custom if it is important to you.  For example, here's some folder refererences found in JBOY_dog_create.sqf script:

    
    // these statements in JBOY_dog_create.sqf, and reference the JBOY_Dog folder
    
               if (_hits <= 4) then {dummy= [_dog, 0, ([ "boomerYelp", "boomerYelp2"] call BIS_fnc_arrayShuffle) select 0, "Yelp"] execVM "JBOY_Dog\delaySay.sqf";};
    
    
    _dog setobjecttextureGlobal [0,"JBOY_Dog\Textures\dogBloodNeck2Hole" + (typeOf _dog)+".jpg"]; 

    3. Regarding the JIP player logic, that is something that @AZCoder added to get the dog packs to work in MP (I'm not sure if that was dedicated server or not).  I am no expert on JIP or dedicated server logic, and this script is not yet proven on Dedicated servers.  So I can't help you there.

     

    4.  I would comment out or remove all my init.sqf code you copied AFTER the line below.  This will restrict your inital dog integration to spawing one dog associated with a player.   Once you get that working, you can decide if you want to implement other dogs handled by AI, independent dog packs, a unit to be tracked by dogs, etc.   Let's just get a player controlled dog working first.

    Good luck.  My demo missions work fine, but its not guaranteed for dedicated server.  But It would be awesome if someone tests and tweaks until it works on dedi.  I'm confident it can work...probably just needs a few changes here and there. 

     

    And finally, please put the large code blocks within spoiler tags.  Thanks!

     

    Hi Johnny Boy,

     

    Thanks a lot for the reply and response. I should of looked through your code to see for other references. I think that is probably where my issues resides. I will have to check the files. I will be doing some more testing tonight and this weekend to see if I can get it to work. The reason I have a custom folder is to organize all added custom scripts. Instead of having a mission root directory filled with a ton of files. I'll try to do a fresh install of your scripts and test first like you said. And later move it over to the custom folder. 

     

    Thanks I will look into the JIP logic and see if that affects dedicated servers or not.

     

    Thanks for the clarification. I'll have to comment the code out and test the dog spawn only. 

     

    Fixed my previous post to use spoiler.

     

    I'll report back my progress of getting this to work on a dedicated server.

    • Like 2

  4. Hi JonnyBoy,

     

    Looking at the code again this morning. The menu probably doesn't come up because of this in the init.sqf file correct? Or can you help me out to get it working? Thanks!

     

    //if jip player and not server then exit
    _JIPplayer = not isServer && isNull player;
    if (_JIPplayer) exitwith {};

    Also do I have to add anything from the mission.sqm file to mine? As in your instructions you don't state it is required. 


  5. Hi JonnyBoy,

     

    I followed your instructions exactly. No errors in RPT log and seems like everything is loaded. But no dog spawn and 'T' menu doesn't work. The dog is supposed to spawn in next to player correct? Or how does one spawn in the dogs?

     

    Btw I am on a dedicated server. Gtxgaming host.

     

    Add both folders to mission pbo. Added needed lines to description.ext and init.sqf

     

    Description.ext

     

    Spoiler

    ///////////////////////////////////////////////////////////////////////////////
    // Server Settings - Modify at will
    ///////////////////////////////////////////////////////////////////////////////
    author = "Updated by [FPS]kuplion";
    onLoadName = "Exile Australia";
    onLoadMission= "www.exilemod.com";
    loadScreen = "exile_assets\texture\mod\logo.paa"; 
    disableChannels[] = {0, 2};
    OnLoadIntro = "";
    OnLoadIntroTime = false;
    OnLoadMissionTime = false;

    class Header
    {
        gameType = Survive; // Do NOT change this
        minPlayers = 1;
        maxPlayers = 100;
    };

    ///////////////////////////////////////////////////////////////////////////////
    // Exile Settings - Do not change these!
    ///////////////////////////////////////////////////////////////////////////////
    forceRotorLibSimulation = 2;
    skipLobby = 1;
    joinUnassigned = 1;
    respawn = "BASE";
    respawnDelay = 120;
    respawnDialog = 0;
    respawnOnStart = 0;
    respawnButton = 1; 
    respawnTemplates[] = {"Exile"};
    corpseManagerMode = 0;
    corpseLimit = 20;
    corpseRemovalMinTime = 1800;
    corpseRemovalMaxTime = 3600;
    wreckManagerMode = 0;
    wreckLimit = 2;
    wreckRemovalMinTime = 60;
    wreckRemovalMaxTime = 360;
    scriptedPlayer = 1;
    disabledAI = 1;
    enableItemsDropping = 0;
    briefing = 0;
    debriefing = 0;
    allowFunctionsLog = 1;
    enableDebugConsole = 0; 
    allowFunctionsRecompile = 0;
    showSquadRadar = 0;
    showUAVFeed = 0;
    reviveDelay = 6;
    reviveForceRespawnDelay = 3;
    reviveBleedOutDelay = 120;

    showHUD[] = 
    {
        true,   // Scripted HUD (same as showHUD command)
        true,   // Vehicle + soldier info
        true,   // Vehicle radar 
        true,   // Vehicle compass
        true,   // Tank direction indicator
        true,  // Commanding menu
        false,  // Group Bar
        true,   // HUD Weapon Cursors
        false   // Squad Radar
    };

    #include "config.cpp"

    // Infistar
    #include "CfgRemoteExec.hpp"
    #include "infiSTAR_AdminMenu.hpp"

    // SM Zombie Spawner
    #include "SM_Zombz.hpp"

    // XM8 ExAd Apps
    #include "ExAdClient\ExAd.cpp"

    class CfgFunctions
    {
        //Ex Ad Xm8 Apps
        #include "ExAdClient\CfgFunctions.cpp"
        // TcB AIS Wounding System
        #include "Custom\ais_injury\cfgFunctionsAIS.hpp"
    };

    class RscTitles
    {
        //Ex Ad Xm8 Apps
        #include "ExAdClient\RscTitles.cpp"
        
        //Dogs
        #include "Custom\JBOY_Dog\Dialog\Common.hpp"
        #include "Custom\JBOY_Dog\Dialog\JBOY_gui_Dog.hpp"
        
        //TcB AIS Wounding System
        #include "Custom\ais_injury\dialogs\rscTitlesAIS.hpp"
    };

    class CfgHints
    {
        #include "ExAdClient\CfgHints.cpp"
    };

    class CfgNetworkMessages
    {
        #include "ExAdClient\CfgNetworkMessages.cpp"
    };

    //--------------------------------------------------------------

    //Add Dog Sounds
    #include "Custom\JBOY_Dog\Dialog\Common.hpp"
    #include "Custom\JBOY_Dog\Dialog\JBOY_gui_Dog.hpp"

    class CfgSounds
    {    
        class boomerFind
        {
            name = "boomerFind"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerFind.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class EngFind
        {
            name = "EngFind"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\EngFind.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class FreFind
        {
            name = "FreFind"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\FreFind.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class PerFind
        {
            name = "PerFind"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\PerFind.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class ChiFind
        {
            name = "ChiFind"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\ChiFind.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerTrack
        {
            name = "boomerTrack"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerTrack.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class EngTrack
        {
            name = "EngTrack"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\EngTrack.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class FreTrack
        {
            name = "FreTrack"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\FreTrack.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class PerTrack
        {
            name = "PerTrack"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\PerTrack.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class ChiTrack
        {
            name = "ChiTrack"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\ChiTrack.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerDetain
        {
            name = "boomerDetain"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerDetain.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class EngDetain
        {
            name = "EngDetain"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\EngDetain.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class FreDetain
        {
            name = "FreDetain"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\FreDetain.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class PerDetain
        {
            name = "PerDetain"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\PerDetain.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class ChiDetain
        {
            name = "ChiDetain"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\ChiDetain.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerStay
        {
            name = "boomerStay"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerStay.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class EngStay
        {
            name = "EngStay"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\EngStay.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class FreStay
        {
            name = "FreStay"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\FreStay.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class PerStay
        {
            name = "PerStay"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\PerStay.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class ChiStay
        {
            name = "ChiStay"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\ChiStay.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerDropIt
        {
            name = "boomerDropIt"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerDropIt.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class EngDropIt
        {
            name = "EngDropIt"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\EngDropIt.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class FreDropIt
        {
            name = "FreDropIt"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\FreDropIt.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class PerDropIt
        {
            name = "PerDropIt"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\PerDropIt.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class ChiDropIt
        {
            name = "ChiDropIt"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\ChiDropIt.ogg, 1, 1.0};
            titles[] = {0, ""};
        };    
        class boomerFetch
        {
            name = "boomerFetch"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerFetch.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class EngFetch
        {
            name = "EngFetch"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\EngFetch.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class FreFetch
        {
            name = "FreFetch"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\FreFetch.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class PerFetch
        {
            name = "PerFetch"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\PerFetch.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class ChiFetch
        {
            name = "ChiFetch"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\ChiFetch.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerYelp
        {
            name = "boomerYelp"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerYelp.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerYelp2
        {
            name = "boomerYelp2"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerYelp2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class whimper1
        {
            name = "whimper1"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\whimper1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class barkGrowlbark
        {
            name = "barkGrowlbark"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\barkGrowlbark.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class growlLong
        {
            name = "growlLong"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\growlLong.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerHeel
        {
            name = "boomerHeel"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerHeel.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerAtEase
        {
            name = "boomerAtEase"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerAtEase.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerWoof1
        {
            name = "boomerWoof1"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerWoof1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerStop
        {
            name = "boomerStop"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerStop.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerSit
        {
            name = "boomerSit"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerSit.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerSitrep
        {
            name = "boomerSitrep"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerSitrep.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerAttack
        {
            name = "boomerAttack"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerAttack.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerGuard
        {
            name = "boomerGuard"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerGuard.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerGetIn
        {
            name = "boomerGetIn"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerGetIn.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerGetOut
        {
            name = "boomerGetOut"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerGetOut.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerGuard2
        {
            name = "boomerGuard2"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerGuard2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerGuardThisJoker
        {
            name = "boomerGuardThisJoker"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerGuardThisJoker.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerGuardThisPrick
        {
            name = "boomerGuardThisPrick"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerGuardThisPrick.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerScout
        {
            name = "boomerScout"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerScout.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class boomerMoveThere
        {
            name = "boomerMoveThere"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\boomerMoveThere.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class goodBoy
        {
            name = "goodBoy"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\goodBoy.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class goodDog
        {
            name = "goodDog"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\goodDog.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class bark2
        {
            name = "bark2"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\bark2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class barkmean2
        {
            name = "barkmean2"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\barkmean2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class growls3
        {
            name = "growls3"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\growls3.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class barkmean3
        {
            name = "barkmean3"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\barkmean3.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class barkmean1
        {
            name = "barkmean1"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\barkmean1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class bark1
        {
            name = "bark1"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\bark1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class dog_growl_vicious
        {
            name = "dog_growl_vicious"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\dog_growl_vicious.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class dog_howl
        {
            name = "dog_howl"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\dog_howl.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class dogPant1
        {
            name = "dogPant1"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\dogPant1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class dogPant2
        {
            name = "dogPant1"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\dogPant1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class dogSniff1
        {
            name = "dogSniff1"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\dogSniff1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class dogSniff2
        {
            name = "dogSniff2"; 
            sound[] = {\Custom\JBOY_Dog\Sounds\dogSniff2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class wings1
        {
            name = "wings1"; 
            sound[] = {\Custom\JBOY\Sounds\wings1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class wings2
        {
            name = "wings2"; 
            sound[] = {\Custom\JBOY\Sounds\wings2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class crow1
        {
            name = "crow1"; 
            sound[] = {\Custom\JBOY\Sounds\crow1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class crow2
        {
            name = "crow2"; 
            sound[] = {\Custom\JBOY\Sounds\crow2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class crow3
        {
            name = "crow3"; 
            sound[] = {\Custom\JBOY\Sounds\crow3.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class crow4
        {
            name = "crow4"; 
            sound[] = {\Custom\JBOY\Sounds\crow4.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class crow5
        {
            name = "crow5"; 
            sound[] = {\Custom\JBOY\Sounds\crow5.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class cluck1
        {
            name = "cluck1"; 
            sound[] = {\Custom\JBOY\Sounds\cluck1.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class cluck2
        {
            name = "cluck2"; 
            sound[] = {\Custom\JBOY\Sounds\cluck2.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class cluck3
        {
            name = "cluck3"; 
            sound[] = {\Custom\JBOY\Sounds\cluck3.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class cluck4
        {
            name = "cluck4"; 
            sound[] = {\Custom\JBOY\Sounds\cluck4.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class cluck5
        {
            name = "cluck5"; 
            sound[] = {\Custom\JBOY\Sounds\cluck5.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
        class cluck6
        {
            name = "cluck6"; 
            sound[] = {\Custom\JBOY\Sounds\cluck6.ogg, 1, 1.0};
            titles[] = {0, ""};
        };
    };

     

    Init.sqf

     

    Spoiler

    // ACD Traders
    #include "Custom\ACD\preinit.sqf";

    // Rearm/Repair
    [] execVM "Custom\rearm\takegive_poptab_init.sqf";

    if(hasInterface) then{
        [] execVM "Custom\rearm\service_point.sqf";
    };

    // Enigma Revive Players With Defib
    [] execVM "Custom\EnigmaRevive\init.sqf";

    // Claim Vehicles
    [] execVM "Custom\ClaimVehicles_Client\ClaimVehicles_Client_init.sqf";

    if (hasInterface || isServer) then {
        [] call compileFinal preprocessFileLineNumbers "Custom\Welcome_Dialog\welcome.sqf";
    };

    // TcB AIS Wounding System
    ["%1 --- Executing TcB AIS init.sqf",diag_ticktime] call BIS_fnc_logFormat;
    enableSaving [false,false];
    enableTeamswitch false;            // TcB AIS wont support teamswitch


    // TcB AIS Wounding System --------------------------------------------------------------------------
    if (!isDedicated) then {
        TCB_AIS_PATH = "Custom\ais_injury\";
        [] spawn {
            {[_x] call compile preprocessFile (TCB_AIS_PATH+"init_ais.sqf")} forEach (if (isMultiplayer) then {playableUnits} else {switchableUnits});        // execute for every playable unit
            
            //{[_x] call compile preprocessFile (TCB_AIS_PATH+"init_ais.sqf")} forEach (units group player);                                                    // only own group - you cant help strange group members
            
            //{[_x] call compile preprocessFile (TCB_AIS_PATH+"init_ais.sqf")} forEach [p1,p2,p3,p4,p5];                                                        // only some defined units
        };
    };
    // --------------------------------------------------------------------------------------------------------------

    //if(7!isServer) then {waitUntil{!isNull player}};
    //AZC_fnc_Delete            = compile preprocessFileLineNumbers "JBOY_Dog\fnc_Delete.sqf";
    JBOY_say3d =              compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_say3d.sqf";
    JBOY_dog_create =         compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_dog_create.sqf";
    JBOY_getSpeakerLanguage = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_getSpeakerLanguage.sqf";
    JBOY_getDogPOSPerVeh =    compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_getDogPOSPerVeh.sqf";
    JBOY_watchNextWP =        compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_watchNextWP.sqf";
    JBOY_isFetchable =        compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_isFetchable.sqf";
    JBOY_dogPackCreate =      compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_dogPackCreate.sqf";
    JBOY_dogPackLoop =        compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_dogPackLoop.sqf";
    JBOY_turboChicken =       compile preprocessFileLineNumbers "Custom\JBOY\JBOY_turboChicken.sqf";
    JBOY_dogExecuteAction =   compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_dogExecuteAction.sqf";
    //CALC_INTERMEDIATE_POS   = compile preprocessFileLineNumbers "JBOY_Dog\CALC_INTERMEDIATE_POS.sqf";
    JBOY_dogPackMemberAttack= compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_dogPackMemberAttack.sqf";
    JBOY_getNearTargets     = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_getNearTargets.sqf";
    JBOY_getClosestObjFromArray       = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_getClosestObjFromArray.sqf";
    JBOY_getTargetDesignatedByHandler = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_getTargetDesignatedByHandler.sqf";
    _dogDialog = [] spawn compile PreprocessFileLineNumbers "Custom\JBOY_Dog\Dialog\JBOY_fnc_DogDialog.sqf";
    //JBOY_fnc_DogDialog = [] spawn compile PreprocessFileLineNumbers "Dialog\JBOY_fnc_DogDialog.sqf";

    // New scritps added for Tracking
    JBOY_dogPreyInit = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_dogPreyInit.sqf";
    JBOY_DogScentDropLoop = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_DogScentDropLoop.sqf";
    JBOY_getFreshestScentMarker = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_getFreshestScentMarker.sqf";
    JBOY_DogScentDetectionLoop = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_DogScentDetectionLoop.sqf";
    JBOY_DogSmashGrassLoop = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_DogSmashGrassLoop.sqf";
    JBOY_getNearEnemies = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_getNearEnemies.sqf";
    JBOY_DogScentDeleteOlderScent = compile preprocessFileLineNumbers "Custom\JBOY_Dog\JBOY_DogScentDeleteOlderScent.sqf";


    //if jip player and not server then exit
    _JIPplayer = not isServer && isNull player;
    if (_JIPplayer) exitwith {};
    // **************************************************************************
    // Enable hints and chats for debugging, and places yellow sphere above dog pack leader
    // **************************************************************************
    JBOY_DEBUG = True;
    JBOY_preyArray = [];

    // **************************************************************************
    // 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"];

    // **************************************************************************
    // Create dog and have him follow player
    // **************************************************************************
    _dogMenu = [] spawn {sleep 2; _d=[player] call JBOY_fnc_DogDisplayEH;};  // Add dog menu to player
    dog1 = [player, "Fin_tricolour_F", (handler1 modelToWorld [2,2,0]), true] call JBOY_dog_create;  // Create dog. 4th parameter true means use Johnnyboy voice for commands.
    nul = [dog1, player, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";    // Start command listener for dog
    //nul = [dog1, handler1] execVM "JBOY_Dog\JBOY_dog_assign_actions.sqf"; // if dog has handler, assign action menu to handler
    _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.
    // **************************************************************************
    // Start Trail Detection for dog1
    // **************************************************************************
    dog1 setVariable ["vScentTrailDetectionOn", true, true]; // Must set this property true if you want dog to track a trail of scentMarkers.
    _dmy = [] spawn {sleep 1; _d=[dog1] call JBOY_DogScentDetectionLoop;};

    // **************************************************************************
    // Start dropping scent markers for leader of group to be tracked.  
    // quarry1 is a unit that starts near vehicles on the beach, and  follows move waypoints dropping a trail.
    // **************************************************************************
    _dmy = [quarry1] spawn {params["_prey"];sleep 2; preyObject1=[_prey] call JBOY_dogPreyInit;}; 
    // **************************************************************************
    // Loop that smashes down grass as dude walks along.  Only good for 90 seconds until grass pops up again.
    // In the future, may have better solution that continually smashes grass trail for player to follow.
    // **************************************************************************
    _dmy = [] spawn {sleep 1; _d=[quarry1] call JBOY_DogSmashGrassLoop;};

    // **************************************************************************
    // Create more dogs and assign to AI Handlers
    // **************************************************************************
    dog2 = [handler2, "Alsatian_Sandblack_F", (handler2 modelToWorld [3,4,0]), false] call JBOY_dog_create; // 4th parameter false means voice commands will be in AI's native language.
    nul = [dog2, handler2, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf"; // Start command listener for dog
    _n=[] spawn {sleep 2; dog2 setVariable ["vCommand", 'heel', true]}; // Start dog heeling (following) his handler


    dog3 = [handler3, "Alsatian_Sand_F", (handler3 modelToWorld [1.3,1.5,0]), false] call JBOY_dog_create;
    nul = [dog3, handler3, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf"; // Start command listener for dog
    _n=[] spawn {sleep 3; dog3 setVariable ["vCommand", 'heel', true]}; // Start dog heeling (following) his handler
    /*
    dog4 = [handler4, "Alsatian_Black_F", (handler4 modelToWorld [1.3,1.5,0]), false] call JBOY_dog_create;
    nul = [dog4, handler4, 2.5] execVM "JBOY_Dog\JBOY_dogCommand.sqf"; // Start command listener for dog
    _n=[] spawn {sleep 2; dog4 setVariable ["vCommand", 'heel', true]};
    */

    // **************************************************************************
    // Create some rabbits and chickens explicitly.  These small animals will run or fly when dog or man approaches.
    // Also look at Animals Module in sample mission for adding chickens.  It has call to scatter script in the module's init field.
    // **************************************************************************
    R1 = createAgent ['Rabbit_F', rabbitPos getRelPos [2,   0], [], 0, "NONE"];
    R2 = createAgent ['Rabbit_F', rabbitPos getRelPos [5,  90], [], 0, "NONE"];
    R3 = createAgent ['Rabbit_F', rabbitPos getRelPos [4, 180], [], 0, "NONE"];
    R4 = createAgent ['Rabbit_F', rabbitPos getRelPos [2, 270], [], 0, "NONE"];
    {nul = [_x,true] execVM "Custom\JBOY\JBOY_animalScatter.sqf";} foreach [R1,R2,R3,R4]; // rabbits will scatter when dog or man near.
    C1 = createAgent ['Cock_random_F', rabbitPos getRelPos [3, 200], [], 0, "NONE"];
    C2 = createAgent ['Cock_white_F', rabbitPos getRelPos [3, 100], [], 0, "NONE"];
    S1 = createAgent ['Snake_random_F', rabbitPos getRelPos [3, 200], [], 0, "NONE"];
    S2 = createAgent ['Snake_random_F', rabbitPos getRelPos [1, 200], [], 0, "NONE"];

    // **************************************************************************
    // Create a dog with no handler, but run JBOY_dogCommand.sqf on it so dog behaviour
    // can be scripted.  Dog5 is positioned to walk straight thru obstacle course.
    // **************************************************************************
    dog5 = [objNull, "Alsatian_Black_F", (getpos courseStart), false] call JBOY_dog_create;
    dog5 setdir ([courseStart, courseEnd] call BIS_fnc_dirTo);
    dog5 dowatch getpos courseEnd;
    [dog5, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog5 setVariable ["vCommand", 'sit', true];
    dog5 setVariable ["vHandlerLanguageAbbrev", 'FRE', true]; // Force dog command language to ENGFRE

    dog5 setdir ([dog5, courseEnd] call BIS_fnc_dirTo);
    nul = [dog5, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler
    dog5 dowatch getpos courseEnd;

    // **************************************************************************
    // Create more dogs without handlers
    // **************************************************************************
    dog6 = [objNull, "Alsatian_Black_F", (getpos dog6pos), false] call JBOY_dog_create;
    dog6 setdir 270;
    [dog6, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog6 setVariable ["vCommand", 'sit', true];
    nul = [dog6, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    dog7 = [objNull, "Alsatian_Sand_F", (getpos dog7pos), false] call JBOY_dog_create;
    dog7 setdir 270;
    [dog7, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog7 setVariable ["vCommand", 'sit', true];
    nul = [dog7, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    dog8 = [objNull, "Fin_blackwhite_F", (getpos dog8pos), false] call JBOY_dog_create;
    dog8 setdir 270;
    [dog8, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog8 setVariable ["vCommand", 'sit', true];
    nul = [dog8, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler


    // **************************************************************************
    // set handlers to different speakers to demonstrate dogs commanding in different languages
    // **************************************************************************
    [handler2, "Male02PER"] remoteExecCall ["setSpeaker", 0];
    [handler3, "Male02FREENG"] remoteExecCall ["setSpeaker", 0];
    //[handler4, "Male02CHI"] remoteExecCall ["setSpeaker", 0];
    [walker, "Male02FRE"] remoteExecCall ["setSpeaker", 0];

    // **************************************************************************
    // Create pack of 6 dogs without handlers.  Will be triggered to attack a patrol later.
    // **************************************************************************
    dog10 = [objNull, "Alsatian_Black_F", (dogPackPos getRelPos [12, 0]), false] call JBOY_dog_create;
    [dog10, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog10 setVariable ["vCommand", 'sit', true];
    nul = [dog10, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    dog11 = [objNull, "Alsatian_Sandblack_F", (dogPackPos getRelPos [2, 45]), false] call JBOY_dog_create;
    [dog11, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog11 setVariable ["vCommand", 'sit', true];
    nul = [dog11, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    dog12 = [objNull, "Alsatian_Black_F", (dogPackPos getRelPos [5, 90]), false] call JBOY_dog_create;
    [dog12, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog12 setVariable ["vCommand", 'sit', true];
    nul = [dog12, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    dog13 = [objNull, "Fin_blackwhite_F", (dogPackPos getRelPos [1, 120]), false] call JBOY_dog_create;
    [dog13, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog13 setVariable ["vCommand", 'sit', true];
    nul = [dog13, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    dog14 = [objNull, "Fin_tricolour_F", (dogPackPos getRelPos [7, 150]), false] call JBOY_dog_create;
    [dog14, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog14 setVariable ["vCommand", 'sit', true];
    nul = [dog14, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    dog15 = [objNull, "Alsatian_Sand_F", (dogPackPos getRelPos [22, 180]), false] call JBOY_dog_create;
    [dog15, "Dog_Sit"] remoteExec ["switchMove", 0];
    dog15 setVariable ["vCommand", 'sit', true];
    nul = [dog15, objNull, 2.5] execVM "Custom\JBOY_Dog\JBOY_dogCommand.sqf";  // pass in objNull for dog with no handler

    // This is here for demonstration only, and allows player to switch languages he commands dogs in.
    _n= [] spawn 
    {
    sleep 2;
        gFre  = player addAction ["Player French",  {[player, "Male02FRE"]  remoteExecCall ["setSpeaker", 0]; (player getVariable "vDogAssigned") setVariable ["vHandlerLanguageAbbrev", "FRE", true];  }, [_dog]];
        gPer  = player addAction ["Player Persian", {[player, "Male02PER"]  remoteExecCall ["setSpeaker", 0]; (player getVariable "vDogAssigned") setVariable ["vHandlerLanguageAbbrev", "PER", true];  }, [_dog]];
        gCHI  = player addAction ["Player Chinese", {[player, "Male02CHI"]  remoteExecCall ["setSpeaker", 0]; (player getVariable "vDogAssigned") setVariable ["vHandlerLanguageAbbrev", "CHI", true];  }, [_dog]];
        gGRE  = player addAction ["Player Greek",   {[player, "Male02GRE"]  remoteExecCall ["setSpeaker", 0]; (player getVariable "vDogAssigned") setVariable ["vHandlerLanguageAbbrev", "GRE", true];  }, [_dog]];
        gENG  = player addAction ["Player English", {[player, "Male02ENG"]  remoteExecCall ["setSpeaker", 0]; (player getVariable "vDogAssigned") setVariable ["vHandlerLanguageAbbrev", "ENG", true];  }, [_dog]];
        gENGB = player addAction ["Player British", {[player, "Male02ENGB"] remoteExecCall ["setSpeaker", 0]; (player getVariable "vDogAssigned") setVariable ["vHandlerLanguageAbbrev", "ENGB", true];  }, [_dog]];
        gFreeng  = player addAction ["Player French Accent",  {[player, "Male02ENGFRE"]  remoteExecCall ["setSpeaker", 0]; (player getVariable "vDogAssigned") setVariable ["vHandlerLanguageAbbrev", "ENGFRE", true];  }, [_dog]];
    };

     

×