Files
DayZ-Epoch/SQF/dayz_code/actions/dog/tame_dog.sqf
ebaydayz 77e760fe73 Update private tags
From
e69f8d5306

Moved dog files to the \dog\ folder and pzombie files to the \pzombie\
folder. Also removed some legacy files that are no longer used.

The actions\ and compile\ folders are fully up to date now
2016-03-30 14:55:45 -04:00

63 lines
2.1 KiB
Plaintext

/*
File: tame_dog.sqf 1.1
Author: Kane "Alby" Stone
Expanded to allow all meats as input by: [VB]AWOL - DayZ Epoch
Description: Allows a player to tame/domesticate a dog. Script is applied to object via addAction.
Variables:
_target = Object that action is attached too.
_caller = Object that activates the action.
_id = ID of the action handler.
_dog = Intended target of the script.
*/
private ["_target","_caller","_id","_dog","_fsmid","_removed","_selected","_animalID","_textRemoved","_chanceToFail","_itemIn","_countIn"];
_target = _this select 0;
_caller = _this select 1;
_id = _this select 2;
_dog = _this select 3;
_removed = 0;
_itemIn = "FoodRaw";
_countIn = 1;
_selected = "";
{
if( (_removed < _countIn) && ((_x == _itemIn) || configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn)) then {
_removed = _removed + ([player,_x] call BIS_fnc_invRemove);
};
if(_removed == 1) exitWith { _selected = _x; };
} count magazines player;
// Only proceed if removed count matches
if(_removed == _countIn) then {
// get name of item removed
_textRemoved = getText(configFile >> "CfgMagazines" >> _selected >> "displayName");
// add failure rate based on skill level variable (days alive)
_chanceToFail = (((random 1) + (dayz_Survived/100)) > 0.5);
if(!_chanceToFail) then {
_animalID = _dog getVariable "fsm_handle";
_animalID setFSMVariable ["_isTamed", true];
uiSleep 1;
//diag_log format["DEBUG: %1, id: %2 [%3]",_dog,_animalID,completedFSM _animalID];
if (!moveToCompleted _dog) then {
_dog moveTo ([_dog] call FNC_GetPos);
};
_dog disableAI "FSM";
(group _dog) setBehaviour "AWARE";
_fsmid = [_dog, typeOf _dog] execFSM "\z\addons\dayz_code\system\dog_agent.fsm";
_fsmid setFSMVariable ["_handle", _fsmid];
player setVariable ["dogID", _fsmid];
_dog setVariable ["fsm_handle", _fsmid];
_dog setVariable ["CharacterID", dayz_characterID, true];
cutText [format[(localize "str_epoch_player_173"),_textRemoved], "PLAIN DOWN"];
} else {
cutText [format[(localize "str_epoch_player_174"),_textRemoved], "PLAIN DOWN"];
};
};