Kronons
-
Content Count
12 -
Joined
-
Last visited
-
Medals
Posts posted by Kronons
-
-
Hi,
I am trying to get this to work on exile. But yet it is not working. No errors in rpt or anything. I have the same exact code in my config.cpp and initPlayerLocal. It doesn't work. Any help is appreciated. Thanks!
-
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.
-
I got it to work!!! The issue is the "!isserver" and "JIP" commenting them out makes it work.
- 2
-
Reporting back. I got boomer to spawn. Now I am going to work on getting the rest of the scripts to work.
-
7 minutes ago, johnnyboy said:Good luck. When he shows up, be nice to him. His name is Boomer and he is one hell of a good dog.
He will be in good hands. :)
No Boomer yet. Fresh copy no errors in rpt. I guess it doesn't work on dedicated server with out some tweaks to your base code.
-
14 minutes ago, johnnyboy said:Correct. A dog should spawn next to player.
Thanks! I reinstalled a fresh copy with everything set to default. Hopefully I see a dog! Will report back.
-
To clarify if it is installed properly a dog should automatically spawn next to the player when the player spawns in? I first tried changing all the links to fit my custom folder setup. It is proving to not be working. Will be trying a fresh install with no messing of directories soon.
-
2 hours ago, zagor64bz said: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.
- 2
-
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.
-
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 ENGFREdog5 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 handlerdog7 = [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 handlerdog8 = [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 handlerdog11 = [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 handlerdog12 = [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 handlerdog13 = [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 handlerdog14 = [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 handlerdog15 = [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]];
};
A3 Wounding System (AIS by Psycho)
in ARMA 3 - MISSION EDITING & SCRIPTING
Posted
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.