Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DESCRIPTION.SQF:
- loadscreen=dayznight.jpg;
- respawn = "BASE";
- respawndelay = 5;
- onLoadMission= "DayZ Taviana";
- OnLoadIntro = "Welcome to Taviana";
- OnLoadIntroTime = False;
- OnLoadMissionTime = False;
- disabledAI = true;
- disableChannels[]={0,2,6};
- enableItemsDropping = 0;
- class Header
- {
- gameType = COOP; //DM, Team, Coop, ...
- minPlayers = 1; //min # of players the mission supports
- maxPlayers = 100; //Max # of players the mission supports
- };
- aiKills = 1;
- diagRadio = 1;
- diagHit = 1;
- class RscText
- {
- type = 0;
- idc = -1;
- x = 0;
- y = 0;
- h = 0.037;
- w = 0.3;
- style = 0x100;
- font = Zeppelin32;
- SizeEx = 0.03921;
- colorText[] = {1,1,1,1};
- colorBackground[] = {0, 0, 0, 0};
- linespacing = 1;
- };
- class RscPicture
- {
- access=0;
- type=0;
- idc=-1;
- style=48;
- colorBackground[]={0,0,0,0};
- colorText[]={1,1,1,1};
- font="TahomaB";
- sizeEx=0;
- lineSpacing=0;
- text="";
- };
- class RscLoadingText : RscText
- {
- style = 2;
- x = 0.323532;
- y = 0.666672;
- w = 0.352944;
- h = 0.039216;
- sizeEx = 0.03921;
- colorText[] = {0.543,0.5742,0.4102,1.0};
- };
- class RscProgress
- {
- x = 0.344;
- y = 0.619;
- w = 0.313726;
- h = 0.0261438;
- texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
- colorFrame[] = {0,0,0,0};
- colorBar[] = {1,1,1,1};
- };
- class RscProgressNotFreeze
- {
- idc = -1;
- type = 45;
- style = 0;
- x = 0.022059;
- y = 0.911772;
- w = 0.029412;
- h = 0.039216;
- texture = "#(argb,8,8,3)color(0,0,0,0)";
- };
- //
- // the loading screen itself
- //
- class DayZ_loadingScreen
- {
- idd = -1;
- duration = 10e10;
- fadein = 0;
- fadeout = 0;
- name = "loading screen";
- class controlsBackground
- {
- class blackBG : RscText
- {
- x = safezoneX;
- y = safezoneY;
- w = safezoneW;
- h = safezoneH;
- text = "";
- colorText[] = {0,0,0,0};
- colorBackground[] = {0,0,0,1};
- };
- /*
- class nicePic : RscPicture
- {
- style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO
- x = safezoneX + safezoneW/2 - 0.25;
- y = safezoneY + safezoneH/2 - 0.2;
- w = 0.5;
- h = 0.4;
- text = "img\nicePic.paa";
- };
- */
- };
- class controls
- {
- class Title1 : RscLoadingText
- {
- text = "$STR_LOADING"; // "Loading" text in the middle of the screen
- };
- class CA_Progress : RscProgress // progress bar, has to have idc 104
- {
- idc = 104;
- type = 8; // CT_PROGRESS
- style = 0; // ST_SINGLE
- texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
- };
- class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse
- {
- idc = 103;
- };
- class Name2: RscText // the text on the top-left
- {
- idc = 101;
- x = 0.05;
- y = 0.029412;
- w = 0.9;
- h = 0.04902;
- text = "";
- sizeEx = 0.05;
- colorText[] = {0.543,0.5742,0.4102,1.0};
- };
- };
- };
- class CfgSounds
- {
- sounds[] = {};
- class playerSnoring
- {
- name="playerSnoring";
- sound[]={\custom\sfx\snoring.ogg,0.9,1};
- titles[] = {};
- };
- };
- INIT.SQF:
- startLoadingScreen ["","DayZ_loadingScreen"];
- enableSaving [false, false];
- dayZ_instance = 2031; //The instance
- hiveInUse = true;
- initialized = false;
- dayz_previousID = 0;
- call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early)
- // (Taviana) Override some of the variables:
- call compile preprocessFileLineNumbers "\kh\dayztaviana\init\variables.sqf";
- // Load in the settings compiles:
- call compile preprocessFileLineNumbers "\kh\dayztaviana\settingsinit\kh_compiles.sqf";
- diag_log "Started executing user settings file.";
- call compile preprocessFileLineNumbers "settings.sqf";
- diag_log "Finished executing user settings file.";
- progressLoadingScreen 0.1;
- call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; //Initilize the publicVariable event handlers
- progressLoadingScreen 0.2;
- call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf"; //Functions used by CLIENT for medical
- progressLoadingScreen 0.4;
- // (Taviana) Don't call the regular compile:
- // call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; //Compile regular functions
- // (Taviana) Instead, call a copy of the DayZ 1.7.4.4 compiles:
- call compile preprocessFileLineNumbers "\kh\dayztaviana\init\compiles.sqf"; //Compile regular functions
- // (Taviana) Set up the for maule multiplayer prop hit support:
- call compile preprocessFileLineNumbers "\khr\maule\scripts\maule_init.sqf";
- /*
- The Bliss package system works a bit like sticking your arm in a bunch
- of snake nests and noticing you don't always get bitten. In this case
- we got bitten; this line is to fool the merge process:
- call compile preprocessFileLineNumbers "\fixes\compiles.sqf"; //Compile regular functions
- */
- progressLoadingScreen 1.0;
- player setVariable ["BIS_noCoreConversations", true];
- //enableRadio false;
- "filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";
- if (isServer) then {
- hiveInUse = true;
- _serverMonitor = [] execVM "\z\addons\dayz_server\system\server_monitor.sqf";
- };
- if (!isDedicated) then {
- 0 fadeSound 0;
- 0 cutText [(localize "STR_AUTHENTICATING"), "BLACK FADED",60];
- _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];
- _playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";
- };
- // Extra actions for Taviana:
- if (!isDedicated) then {
- [] execVM "kh_actions.sqf";
- [] ExecVM "axs_gearmanagement\doGear.sqf";
- };
- [] ExecVM "custom_monitor.sqf";
- //R3F Towing and shit (or whatever you want to title it)
- execVM "R3F_ARTY_AND_LOG\init.sqf"
- COMPILES.SQF
- /*
- FUNCTION COMPILES
- */
- //Player only
- if (!isDedicated) then {
- "filmic" setToneMappingParams [0.07, 0.31, 0.23, 0.37, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";
- BIS_Effects_Burn = compile preprocessFile "\ca\Data\ParticleEffects\SCRIPTS\destruction\burn.sqf";
- player_zombieCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf"; //Run on a players computer, checks if the player is near a zombie
- player_zombieAttack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieAttack.sqf"; //Run on a players computer, causes a nearby zombie to attack them
- fnc_usec_damageActions = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageActions.sqf"; //Checks which actions for nearby casualty
- fnc_inAngleSector = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inAngleSector.sqf"; //Checks which actions for nearby casualty
- fnc_usec_selfActions = compile preprocessFileLineNumbers "\fixes\fn_selfActions.sqf"; //Checks which actions for self
- fnc_usec_unconscious = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_unconscious.sqf";
- player_temp_calculation = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_temperatur.sqf"; //Temperatur System //TeeChange
- player_weaponFiredNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponFiredNear.sqf";
- player_animalCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_animalCheck.sqf";
- player_spawnCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnCheck.sqf";
- player_spawnLootCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnlootCheck.sqf";
- player_spawnZedCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnzedCheck.sqf";
- building_spawnLoot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnLoot.sqf";
- player_taskHint = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_taskHint.sqf";
- building_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnZombies.sqf";
- //animal_monitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\animal_monitor.sqf";
- building_monitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\building_monitor.sqf";
- player_fired = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_fired.sqf"; //Runs when player fires. Alerts nearby Zeds depending on calibre and audial rating
- player_packTent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packTent.sqf";
- control_zombieAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\control_zombieAgent.sqf";
- player_updateGui = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_updateGui.sqf";
- player_crossbowBolt = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_crossbowBolt.sqf";
- spawn_flies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_flies.sqf";
- stream_locationFill = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\stream_locationFill.sqf";
- stream_locationDel = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\stream_locationDel.sqf";
- stream_locationCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\stream_locationCheck.sqf";
- player_music = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_music.sqf"; //Used to generate ambient music
- player_login = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_login.sqf"; //Used to generate ambient music
- player_death = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf";
- player_switchModel = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_switchModel.sqf";
- player_checkStealth = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_checkStealth.sqf";
- world_sunRise = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_sunRise.sqf";
- world_surfaceNoise = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_surfaceNoise.sqf";
- player_humanityMorph = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityMorph.sqf";
- player_throwObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_throwObject.sqf";
- player_alertZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_alertZombies.sqf";
- player_fireMonitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\fire_monitor.sqf";
- //Objects
- object_roadFlare = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_roadFlare.sqf";
- object_setpitchbank = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setpitchbank.sqf";
- object_monitorGear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_monitorGear.sqf";
- //Zombies
- zombie_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_findTargetAgent.sqf";
- zombie_loiter = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_loiter.sqf"; //Server compile, used for loiter behaviour
- zombie_generate = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\zombie_generate.sqf"; //Server compile, used for loiter behaviour
- //swarm_generate = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\swarm_generate.sqf"; //Server compile, used for Swarms behaviour
- //
- dog_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf";
- //actions
- player_countmagazines = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_countmagazines.sqf";
- player_addToolbelt = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_addToolbelt.sqf";
- player_reloadMag = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_reloadMags.sqf";
- player_tentPitch = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\tent_pitch.sqf";
- player_createstash = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_createstash.sqf";
- player_drink = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_drink.sqf";
- player_eat = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_eat.sqf";
- player_useMeds = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_useMeds.sqf";
- player_fillWater = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\water_fill.sqf";
- player_makeFire = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf";
- player_chopWood = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_chopWood.sqf";
- player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";
- player_wearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_wearClothes.sqf";
- player_dropWeapon = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_dropWeapon.sqf";
- player_setTrap = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_setTrap.sqf";
- object_pickup = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\object_pickup.sqf";
- player_flipvehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_flipvehicle.sqf";
- player_sleep = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf";
- player_combineMag = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_combineMags.sqf";
- player_createquiver = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_createQuiver.sqf";
- player_fillquiver = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fillQuiver.sqf";
- player_takearrow = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_takeArrow.sqf";
- //ui
- player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";
- player_gearSync = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSync.sqf";
- player_gearSet = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_gearSet.sqf";
- ui_changeDisplay = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_changeDisplay.sqf";
- //playerstats
- horde_epeen_fnc_fill_page = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\fill_page_fnc.sqf";
- horde_epeen_determine_humanity_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\determine_humanity_fnc.sqf";
- horde_epeen_setText_journal_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\epeen_setText_journal.sqf";
- horde_epeen_setText_humanity_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\epeen_setText_humanity.sqf";
- horde_epeen_setText_stats_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\epeen_setText_stats.sqf";
- horde_epeen_show_humanity_fnc = compile preProcessFile "\z\addons\dayz_code\actions\playerstats\show_humanity_fnc.sqf";
- //System
- player_monitor = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_monitor.sqf";
- player_spawn_1 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_1.sqf";
- player_spawn_2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_2.sqf";
- onPreloadStarted "dayz_preloadFinished = false;";
- onPreloadFinished "dayz_preloadFinished = true;";
- infectedcamps = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_infectedcamps.sqf";
- camp_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\camp_spawnZombies.sqf"; //Server compile, used for loiter behaviour
- //Crafting
- //player_craftItem = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItem.sqf";
- // TODO: need move it in player_monitor.fsm
- // allow player disconnect from server, if loading hang, kicked by BE etc.
- //This is still needed but the fsm should terminate if any errors pop up.
- [] spawn {
- private["_timeOut","_display","_control1","_control2"];
- disableSerialization;
- _timeOut = 0;
- dayz_loadScreenMsg = "";
- diag_log "DEBUG: loadscreen guard started.";
- _display = uiNameSpace getVariable "BIS_loadingScreen";
- _control1 = _display displayctrl 8400;
- _control2 = _display displayctrl 102;
- // 120 sec timeout
- while { _timeOut < 3000 && !dayz_clientPreload && !dayz_authed } do {
- if ( isNull _display ) then {
- waitUntil { !dialog; };
- startLoadingScreen ["","RscDisplayLoadCustom"];
- _display = uiNameSpace getVariable "BIS_loadingScreen";
- _control1 = _display displayctrl 8400;
- _control2 = _display displayctrl 102;
- };
- if ( dayz_loadScreenMsg != "" ) then {
- _control1 ctrlSetText dayz_loadScreenMsg;
- dayz_loadScreenMsg = "";
- };
- _control2 ctrlSetText format["%1",round(_timeOut*0.01)];
- _timeOut = _timeOut + 1;
- sleep 0.01;
- };
- endLoadingScreen;
- /*
- if ( !dayz_clientPreload && !dayz_authed ) then {
- diag_log "DEBUG: loadscreen guard ended with timeout.";
- disableUserInput false;
- 1 cutText ["Disconnected!", "PLAIN"];
- player enableSimulation false;
- } else { diag_log "DEBUG: loadscreen guard ended."; };
- */
- };
- dayz_losChance = {
- private["_agent","_maxDis","_dis","_val","_maxExp","_myExp"];
- _agent = _this select 0;
- _dis = _this select 1;
- _maxDis = _this select 2;
- //diag_log ("VAL: " + str(_this));
- _val = (_maxDis - _dis) max 0;
- _maxExp = ((exp 2) * _maxDis);
- _myExp = ((exp 2) * (_val)) / _maxExp;
- _myExp = _myExp * 0.7;
- _myExp
- };
- ui_initDisplay = {
- private["_control","_ctrlBleed","_display","_ctrlFracture","_ctrlDogFood","_ctrlDogWater","_ctrlDogWaterBorder", "_ctrlDogFoodBorder"];
- disableSerialization;
- _display = uiNamespace getVariable 'DAYZ_GUI_display';
- _control = _display displayCtrl 1204;
- _control ctrlShow false;
- if (!r_player_injured) then {
- _ctrlBleed = _display displayCtrl 1303;
- _ctrlBleed ctrlShow false;
- };
- if (!r_fracture_legs and !r_fracture_arms) then {
- _ctrlFracture = _display displayCtrl 1203;
- _ctrlFracture ctrlShow false;
- };
- _ctrlDogFoodBorder = _display displayCtrl 1501;
- _ctrlDogFoodBorder ctrlShow false;
- _ctrlDogFood = _display displayCtrl 1701;
- _ctrlDogFood ctrlShow false;
- _ctrlDogWaterBorder = _display displayCtrl 1502;
- _ctrlDogWaterBorder ctrlShow false;
- _ctrlDogWater = _display displayCtrl 1702;
- _ctrlDogWater ctrlShow false
- };
- dayz_losCheck = {
- private["_target","_agent","_cantSee"];
- _target = _this select 0; // PUT THE PLAYER IN FIRST ARGUMENT!!!!
- _agent = _this select 1;
- _cantSee = true;
- if (!isNull _target) then {
- _tPos = eyePos _target;
- _zPos = eyePos _agent;
- if ((count _tPos > 0) and (count _zPos > 0)) then {
- _cantSee = terrainIntersectASL [_tPos, _zPos];
- if (!_cantSee) then {
- _cantSee = lineIntersects [_tPos, _zPos, _agent, vehicle _target];
- };
- };
- };
- _cantSee
- };
- dayz_losCheck_attack = {
- private["_target","_agent","_cantSee"];
- _target = _this select 0;
- _agent = _this select 1;
- _cantSee = true;
- if (!isNull _target) then {
- _tPos = eyePos _target;
- _zPos = eyePos _agent;
- if ((count _tPos > 0) and (count _zPos > 0)) then {
- _cantSee = terrainIntersectASL [_tPos, _zPos];
- if (!_cantSee) then {
- _ob_arr = lineIntersectsWith [_zPos, _tPos, _agent, _target];
- _cantSee = ((count _ob_arr) != 0 and {((_ob_arr select 0) isKindOf "All")});
- };
- };
- };
- _cantSee
- };
- // eh_zombieInit = {
- // private["_unit","_pos"];
- // //_unit = _this select 0;
- // //_pos = getPosATL _unit;
- // //_id = [_pos,_unit] execFSM "\z\AddOns\dayz_code\system\zombie_agent.fsm";
- // };
- // dayz_equipCheck = {
- // private ["_empty", "_needed","_diff","_success"];
- // _config = _this;
- // _empty = [player] call BIS_fnc_invSlotsEmpty;
- // _needed = [_config] call BIS_fnc_invSlotType;
- // _diff = [_empty,_needed] call BIS_fnc_vectorDiff;
- //
- // _success = true;
- // {
- // if (_x > 0) then {_success = false};
- // } forEach _diff;
- // hint format["Config: %5\nEmpty: %1\nNeeded: %2\nDiff: %3\nSuccess: %4",_empty,_needed,_diff,_success,_config];
- // _success
- // };
- dayz_spaceInterrupt = {
- private ["_dikCode", "_handled","_displayg"];
- _dikCode = _this select 1;
- _handled = false;
- if (_dikCode in (actionKeys "GetOver")) then {
- if (!r_fracture_legs and (time - dayz_lastCheckBit > 4)) then {
- _inBuilding = [player] call fnc_isInsideBuilding;
- _nearbyObjects = nearestObjects[getPosATL player, ["TentStorage", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Wire_cat1"], 8];
- if (!_inBuilding and (count _nearbyObjects == 0)) then {
- dayz_lastCheckBit = time;
- call player_CombatRoll;
- };
- };
- };
- //if (_dikCode == 57) then {_handled = true}; // space
- //if (_dikCode in actionKeys 'MoveForward' or _dikCode in actionKeys 'MoveBack') then {r_interrupt = true};
- /*
- if (_dikCode == 210) then //insert Key
- {
- _nill = execvm "\z\addons\dayz_code\actions\playerstats.sqf";
- };
- */
- //Prevent exploit of drag body
- if ((_dikCode in actionKeys "Prone") and r_drag_sqf) then { force_dropBody = true; };
- if ((_dikCode in actionKeys "Crouch") and r_drag_sqf) then { force_dropBody = true; };
- if (_dikCode in actionKeys "MoveLeft") then {r_interrupt = true};
- if (_dikCode in actionKeys "MoveRight") then {r_interrupt = true};
- if (_dikCode in actionKeys "MoveForward") then {r_interrupt = true};
- if (_dikCode in actionKeys "MoveBack") then {r_interrupt = true};
- if (_dikCode in actionKeys "ForceCommandingMode") then {_handled = true};
- if (_dikCode in actionKeys "PushToTalk" and (time - dayz_lastCheckBit > 10)) then {
- dayz_lastCheckBit = time;
- [player,15,true,(getPosATL player)] spawn player_alertZombies;
- };
- if (_dikCode in actionKeys "VoiceOverNet" and (time - dayz_lastCheckBit > 10)) then {
- dayz_lastCheckBit = time;
- [player,15,true,(getPosATL player)] spawn player_alertZombies;
- };
- if (_dikCode in actionKeys "PushToTalkDirect" and (time - dayz_lastCheckBit > 10)) then {
- dayz_lastCheckBit = time;
- [player,5,false,(getPosATL player)] spawn player_alertZombies;
- };
- if (_dikCode in actionKeys "Chat" and (time - dayz_lastCheckBit > 10)) then {
- dayz_lastCheckBit = time;
- [player,15,false,(getPosATL player)] spawn player_alertZombies;
- };
- if (_dikCode in actionKeys "User20" and (time - dayz_lastCheckBit > 5)) then {
- dayz_lastCheckBit = time;
- _nill = execvm "\z\addons\dayz_code\actions\playerstats.sqf";
- };
- if ((_dikCode == 0x3E or _dikCode == 0x0F or _dikCode == 0xD3) and (time - dayz_lastCheckBit > 10)) then {
- dayz_lastCheckBit = time;
- call dayz_forceSave;
- };
- if (_dikCode == 0xB8 or _dikCode == 0x38 or _dikCode == 0x3E or _dikCode == 0x2A or _dikCode == 0x36 or _dikCode == 0x01) then {
- _displayg = findDisplay 106;
- if (!isNull _displayg) then {
- call player_gearSync;
- call dayz_forceSave;
- } else {
- if (dialog) then {
- call player_gearSync;
- call dayz_forceSave;
- };
- };
- };
- /*
- if (_dikCode in actionKeys "IngamePause") then {
- waitUntil {
- _display = findDisplay 49;
- !isNull _display;
- };
- _btnRespawn = _display displayCtrl 1010;
- _btnAbort = _display displayCtrl 104;
- _btnRespawn ctrlEnable false;
- _btnAbort ctrlEnable false;
- };
- */
- _handled
- };
- player_CombatRoll = {
- DoRE = ({isPlayer _x} count (player nearEntities ["AllVehicles",100]) > 1);
- if (canRoll && animationState player in ["amovpercmrunslowwrfldf","amovpercmrunsraswrfldf","amovpercmevaslowwrfldf","amovpercmevasraswrfldf"]) then {
- canRoll = false;
- null = [] spawn {
- if (DoRE) then {
- [nil, player, rSWITCHMOVE, "ActsPercMrunSlowWrflDf_FlipFlopPara"] call RE;
- } else {
- player switchMove "ActsPercMrunSlowWrflDf_FlipFlopPara";
- };
- sleep 0.3;
- player setVelocity [(velocity player select 0) + 1.5 * sin direction player, (velocity player select 1) + 1.5 * cos direction player, (velocity player select 2) + 4];
- sleep 1;
- canRoll = true;
- };
- _handled = true;
- };
- };
- // player_serverModelChange = {
- // private["_object","_model"];
- // _object = _this select 0;
- // _model = _this select 1;
- // if (_object == player) then {
- // _model call player_switchModel;
- // };
- // };
- player_guiControlFlash = {
- private["_control"];
- _control = _this;
- if (ctrlShown _control) then {
- _control ctrlShow false;
- } else {
- _control ctrlShow true;
- };
- };
- gear_ui_offMenu = {
- private["_control","_parent","_menu"];
- disableSerialization;
- _control = _this select 0;
- _parent = findDisplay 106;
- if (!(_this select 3)) then {
- for "_i" from 0 to 9 do {
- _menu = _parent displayCtrl (1600 + _i);
- _menu ctrlShow false;
- };
- _grpPos = ctrlPosition _control;
- _grpPos set [3,0];
- _control ctrlSetPosition _grpPos;
- _control ctrlShow false;
- _control ctrlCommit 0;
- };
- };
- gear_ui_init = {
- private["_control","_parent","_menu","_dspl","_grpPos"];
- disableSerialization;
- _parent = findDisplay 106;
- _control = _parent displayCtrl 6902;
- for "_i" from 0 to 9 do {
- _menu = _parent displayCtrl (1600 + _i);
- _menu ctrlShow false;
- };
- _grpPos = ctrlPosition _control;
- _grpPos set [3,0];
- _control ctrlSetPosition _grpPos;
- _control ctrlShow false;
- _control ctrlCommit 0;
- };
- // dayz_eyeDir = {
- // private["_vval","_vdir"];
- // _vval = (eyeDirection _this);
- // _vdir = (_vval select 0) atan2 (_vval select 1);
- // if (_vdir < 0) then {_vdir = 360 + _vdir};
- // _vdir
- // };
- dayz_lowHumanity = {
- private["_unit","_humanity","_delay"];
- _unit = _this;
- if ((_unit distance player) < 15) then {
- _humanity = _unit getVariable["humanity",0];
- dayz_heartBeat = true;
- if (_humanity < -3000) then {
- _delay = ((10000 + _humanity) / 5500) + 0.3;
- playSound "heartbeat_1";
- sleep _delay;
- };
- dayz_heartBeat = false;
- };
- };
- dayz_meleeMagazineCheck = {
- private["_meleeNum","_magType","_wpnType","_ismelee"];
- _wpnType = primaryWeapon player;
- _ismelee = (gettext (configFile >> "CfgWeapons" >> _wpnType >> "melee"));
- if (_ismelee == "true") then {
- _magType = ([] + getArray (configFile >> "CfgWeapons" >> _wpnType >> "magazines")) select 0;
- _meleeNum = ({_x == _magType} count magazines player);
- if (_meleeNum < 1) then {
- player addMagazine _magType;
- };
- };
- };
- dayz_futurePos = {
- private ["_vehicle","_velo","_speed","_nextPlayerPos"];
- _vehicle = (vehicle _this);
- _velo = velocity _vehicle;
- _speed = ([0, 0, 0] distance (_velo)); // buggy: if player/veh is blocked by an object, speed is not zero
- _nextPlayerPos = getPosATL _this;
- if (_speed > 0) then {
- // try compute next player pos. This works both whether player is bare foot, or in a vehicle, whatever his place.
- _velo = [ (_velo select 0) / _speed, (_velo select 1) / _speed, (_velo select 2) / _speed]; // normalize speed vector
- _nextPlayerPos set [0, (_nextPlayerPos select 0) + (_velo select 0) * 1]; // 1 = a meter alongside the movement
- _nextPlayerPos set [1, (_nextPlayerPos select 1) + (_velo select 1) * 1];
- _nextPlayerPos set [2, (_nextPlayerPos select 2) + (_velo select 2) * 1];
- };
- _nextPlayerPos
- };
- dayz_originalPlayer = player;
- };
- progressLoadingScreen 0.8;
- //Both
- BIS_fnc_selectRandom = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selectRandom.sqf"; //Checks which actions for nearby casualty
- fnc_buildWeightedArray = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_buildWeightedArray.sqf"; //Checks which actions for nearby casualty
- zombie_initialize = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\zombie_init.sqf";
- object_vehicleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_vehicleKilled.sqf"; //Event handler run on damage
- object_getHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_getHit.sqf"; //gets the hit value for a HitPoint (i.e. HitLegs) against the selection (i.e. "legs"), returns the value
- object_setHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHit.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles)
- object_processHit = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_processHit.sqf"; //process the hit in the REVO damage system (records and sets hit)
- object_delLocal = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_delLocal.sqf";
- object_cargoCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_cargoCheck.sqf"; //Run by the player or server to monitor changes in cargo contents
- fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf"; //Event handler run on damage
- // Vehicle damage fix
- fnc_veh_handleDam = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleDam.sqf";
- fnc_veh_handleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleKilled.sqf";
- fnc_veh_handleRepair = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_handleRepair.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles)
- fnc_veh_ResetEH = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\veh_ResetEH.sqf"; //Initialize vehicle
- fnc_inString = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_inString.sqf";
- fnc_isInsideBuilding = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding.sqf"; //_isInside = [_unit,_building] call fnc_isInsideBuilding;
- dayz_zombieSpeak = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_speak.sqf"; //Used to generate random speech for a unit
- vehicle_getHitpoints = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getHitpoints.sqf";
- local_gutObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObject.sqf"; //Generated on the server (or local to unit) when gutting an object
- local_zombieDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerZ.sqf"; //Generated by the client who created a zombie to track damage
- local_setFuel = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_setFuel.sqf"; //Generated when someone refuels a vehicle
- local_eventKill = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_eventKill.sqf"; //Generated when something is killed
- //player_weaponCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponCheck.sqf"; //Run by the player or server to monitor whether they have picked up a new weapon
- curTimeStr = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_curTimeStr.sqf";
- player_medBandage = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
- player_medInject = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medInject.sqf";
- player_medEpi = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medEpi.sqf";
- player_medTransfuse = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medTransfuse.sqf";
- player_medMorphine = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf";
- player_medPainkiller = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medPainkiller.sqf";
- world_isDay = {if ((daytime < (24 - dayz_sunRise)) and (daytime > dayz_sunRise)) then {true} else {false}};
- player_humanityChange = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_humanityChange.sqf";
- spawn_loot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot.sqf";
- player_projectileNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_projectileNear.sqf";
- player_sumMedical = {
- private["_character","_wounds","_legs","_arms","_medical", "_status"];
- _character = _this;
- _wounds = [];
- if (_character getVariable["USEC_injured",false]) then {
- {
- _status = _character getVariable["hit_"+_x,false];
- if ((typeName _status == "BOOLEAN") AND {(_status)}) then {
- _wounds set [count _wounds,_x];
- };
- } forEach USEC_typeOfWounds;
- };
- _legs = _character getVariable ["hit_legs",0];
- _arms = _character getVariable ["hit_arms",0];
- _medical = [
- _character getVariable["USEC_isDead",false],
- _character getVariable["NORRN_unconscious", false],
- _character getVariable["USEC_infected",false],
- _character getVariable["USEC_injured",false],
- _character getVariable["USEC_inPain",false],
- _character getVariable["USEC_isCardiac",false],
- _character getVariable["USEC_lowBlood",false],
- _character getVariable["USEC_BloodQty",12000],
- _wounds,
- [_legs,_arms],
- _character getVariable["unconsciousTime",0],
- _character getVariable["messing",[0,0]]
- ];
- _medical
- };
- fn_niceSpot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_niceSpot.sqf";
- //Server Only
- if (isServer) then {
- call compile preprocessFileLineNumbers "\z\addons\dayz_server\init\server_functions.sqf";
- } else {
- eh_localCleanup = {};
- };
- //Start Dynamic Weather
- execVM "\z\addons\dayz_code\system\DynamicWeatherEffects.sqf";
- initialized = true;
- FN_SELFACTIONS.SQF:
- scriptName "Functions\misc\fn_selfActions.sqf";
- /***********************************************************
- ADD ACTIONS FOR SELF
- - Function
- - [] call fnc_usec_selfActions;
- ************************************************************/
- private["_isStash","_vehicle","_inVehicle","_bag","_classbag","_isWater","_hasAntiB","_hasFuelE","_hasFuel5","_hasbottleitem","_hastinitem","_hasKnife","_hasToolbox","_hasTent","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_canmove","_rawmeat","_hasRawMeat","_allFixed","_hitpoints","_damage","_part","_cmpt","_damagePercent","_color","_string","_handle","_dogHandle","_lieDown","_warn","_dog","_speed"];
- _vehicle = vehicle player;
- _inVehicle = (_vehicle != player);
- _bag = unitBackpack player;
- _classbag = typeOf _bag;
- _isWater = (surfaceIsWater (position player)) or dayz_isSwimming;
- _hasAntiB = "ItemAntibiotic" in magazines player;
- _hasFuelE20 = "ItemJerrycanEmpty" in magazines player;
- _hasFuelE5 = "ItemFuelcanEmpty" in magazines player;
- //boiled Water
- _hasbottleitem = "ItemWaterbottle" in magazines player;
- _hastinitem = false;
- {
- if (_x in magazines player) then {
- _hastinitem = true;
- };
- } forEach boil_tin_cans;
- _hasKnife = "ItemKnife" in items player;
- _hasToolbox = "ItemToolbox" in items player;
- //_hasTent = "ItemTent" in items player;
- _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
- _nearLight = nearestObject [player,"LitObject"];
- _canPickLight = false;
- if (!isNull _nearLight) then {
- if (_nearLight distance player < 4) then {
- _canPickLight = isNull (_nearLight getVariable ["owner",objNull]);
- };
- };
- _canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder);
- //Grab Flare
- if (_canPickLight and !dayz_hasLight) then {
- if (s_player_grabflare < 0) then {
- _text = getText (configFile >> "CfgAmmo" >> (typeOf _nearLight) >> "displayName");
- s_player_grabflare = player addAction [format[localize "str_actions_medical_15",_text], "\z\addons\dayz_code\actions\flare_pickup.sqf",_nearLight, 1, false, true, "", ""];
- s_player_removeflare = player addAction [format[localize "str_actions_medical_17",_text], "\z\addons\dayz_code\actions\flare_remove.sqf",_nearLight, 1, false, true, "", ""];
- };
- } else {
- player removeAction s_player_grabflare;
- player removeAction s_player_removeflare;
- s_player_grabflare = -1;
- s_player_removeflare = -1;
- };
- if (!isNull cursorTarget and !_inVehicle and (player distance cursorTarget < 4)) then { //Has some kind of target
- _isHarvested = cursorTarget getVariable["meatHarvested",false];
- _isVehicle = cursorTarget isKindOf "AllVehicles";
- _isVehicletype = typeOf cursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
- _isMan = cursorTarget isKindOf "Man";
- _ownerID = cursorTarget getVariable ["characterID","0"];
- _isAnimal = cursorTarget isKindOf "Animal";
- _isDog = (cursorTarget isKindOf "DZ_Pastor" || cursorTarget isKindOf "DZ_Fin");
- _isZombie = cursorTarget isKindOf "zZombie_base";
- _isDestructable = cursorTarget isKindOf "BuiltItems";
- _isTent = cursorTarget isKindOf "TentStorage";
- _isStash = cursorTarget isKindOf "StashSmall";
- _isMediumStash = cursorTarget isKindOf "StashMedium";
- _isFuel = false;
- _hasFuel20 = "ItemJerrycan" in magazines player;
- _hasFuel5 = "ItemFuelcan" in magazines player;
- _isAlive = alive cursorTarget;
- _canmove = canmove cursorTarget;
- _text = getText (configFile >> "CfgVehicles" >> typeOf cursorTarget >> "displayName");
- _rawmeat = meatraw;
- _hasRawMeat = false;
- {
- if (_x in magazines player) then {
- _hasRawMeat = true;
- };
- } forEach _rawmeat;
- if (_hasFuelE20 or _hasFuelE5) then {
- _isFuel = (cursorTarget isKindOf "Land_Ind_TankSmall") or (cursorTarget isKindOf "Land_fuel_tank_big") or (cursorTarget isKindOf "Land_fuel_tank_stairs") or (cursorTarget isKindOf "Land_wagon_tanker");
- };
- //diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID));
- //Allow player to delete objects
- if(_isDestructable and _hasToolbox and _canDo) then {
- if (s_player_deleteBuild < 0) then {
- s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "\z\addons\dayz_code\actions\remove.sqf",cursorTarget, 1, true, true, "", ""];
- };
- } else {
- player removeAction s_player_deleteBuild;
- s_player_deleteBuild = -1;
- };
- //Allow player to force save
- if((_isVehicle or _isTent or _isStash or _isMediumStash) and _canDo and !_isMan and (damage cursorTarget < 1)) then {
- if (s_player_forceSave < 0) then {
- s_player_forceSave = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",cursorTarget, 1, true, true, "", ""];
- };
- } else {
- player removeAction s_player_forceSave;
- s_player_forceSave = -1;
- };
- //flip vehicle
- if ((_isVehicletype) and !_canmove and _isAlive and (player distance cursorTarget >= 2) and (count (crew cursorTarget))== 0 and ((vectorUp cursorTarget) select 2) < 0.5) then {
- if (s_player_flipveh < 0) then {
- s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",cursorTarget, 1, true, true, "", ""];
- };
- } else {
- player removeAction s_player_flipveh;
- s_player_flipveh = -1;
- };
- //Allow player to fill Fuel can
- if((_hasFuelE20 or _hasFuelE5) and _isFuel and _canDo and !a_player_jerryfilling) then {
- if (s_player_fillfuel < 0) then {
- s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",[], 1, false, true, "", ""];
- };
- } else {
- player removeAction s_player_fillfuel;
- s_player_fillfuel = -1;
- };
- //Allow player to fill vehilce 20L
- if(_hasFuel20 and _canDo and _isVehicle and (fuel cursorTarget < 1)) then {
- if (s_player_fillfuel20 < 0) then {
- s_player_fillfuel20 = player addAction [format[localize "str_actions_medical_10"+" with 20L",_text], "\z\addons\dayz_code\actions\refuel.sqf",["ItemJerrycan"], 0, true, true, "", "'ItemJerrycan' in magazines player"];
- };
- } else {
- player removeAction s_player_fillfuel20;
- s_player_fillfuel20 = -1;
- };
- //Allow player to fill vehilce 5L
- if(_hasFuel5 and _canDo and _isVehicle and (fuel cursorTarget < 1)) then {
- if (s_player_fillfuel5 < 0) then {
- s_player_fillfuel5 = player addAction [format[localize "str_actions_medical_10"+" with 5L",_text], "\z\addons\dayz_code\actions\refuel.sqf",["ItemFuelcan"], 0, true, true, "", "'ItemFuelcan' in magazines player"];
- };
- } else {
- player removeAction s_player_fillfuel5;
- s_player_fillfuel5 = -1;
- };
- //Harvested
- if (!alive cursorTarget and _isAnimal and _hasKnife and !_isHarvested and _canDo) then {
- if (s_player_butcher < 0) then {
- s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",cursorTarget, 3, true, true, "", ""];
- };
- } else {
- player removeAction s_player_butcher;
- s_player_butcher = -1;
- };
- //Fireplace Actions check
- if (inflamed cursorTarget and _hasRawMeat and _canDo and !a_player_cooking) then {
- if (s_player_cook < 0) then {
- s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",cursorTarget, 3, true, true, "", ""];
- };
- } else {
- player removeAction s_player_cook;
- s_player_cook = -1;
- };
- if (inflamed cursorTarget and (_hasbottleitem and _hastinitem) and _canDo and !a_player_boil) then {
- if (s_player_boil < 0) then {
- s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",cursorTarget, 3, true, true, "", ""];
- };
- } else {
- player removeAction s_player_boil;
- s_player_boil = -1;
- };
- if(cursorTarget == dayz_hasFire and _canDo) then {
- if ((s_player_fireout < 0) and !(inflamed cursorTarget) and (player distance cursorTarget < 3)) then {
- s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",cursorTarget, 0, false, true, "",""];
- };
- } else {
- player removeAction s_player_fireout;
- s_player_fireout = -1;
- };
- //Packing my tent
- if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
- if ((s_player_packtent < 0) and (player distance cursorTarget < 3)) then {
- s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",cursorTarget, 0, false, true, "",""];
- };
- } else {
- player removeAction s_player_packtent;
- s_player_packtent = -1;
- };
- //Sleep
- if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
- if ((s_player_sleep < 0) and (player distance cursorTarget < 3)) then {
- s_player_sleep = player addAction ["Sleep", "\fixes\player_sleep.sqf",cursorTarget, 0, false, true, "",""];
- };
- } else {
- player removeAction s_player_sleep;
- s_player_sleep = -1;
- };
- //Repairing Vehicles
- if ((dayz_myCursorTarget != cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage cursorTarget < 1)) then {
- _vehicle = cursorTarget;
- {dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;s_player_repairActions = [];
- dayz_myCursorTarget = _vehicle;
- _allFixed = true;
- _hitpoints = _vehicle call vehicle_getHitpoints;
- {
- _damage = [_vehicle,_x] call object_getHit;
- _cmpt = toArray (_x);
- _cmpt set [0,20];
- _cmpt set [1,toArray ("-") select 0];
- _cmpt set [2,20];
- _cmpt = toString _cmpt;
- _configVeh = configFile >> "cfgVehicles" >> "RepairParts" >> _x;
- _part = getText(_configVeh >> "part");
- if (isnil ("_part")) then { _part = "PartGeneric"; };
- // get every damaged part no matter how tiny damage is!
- _damagePercent = round((1 - _damage) * 100);
- if (_damage > 0) then {
- _allFixed = false;
- _color = "color='#ffff00'"; //yellow
- if (_damage >= 0.5) then {_color = "color='#ff8800'";}; //orange
- if (_damage >= 0.9) then {_color = "color='#ff0000'";}; //red
- _cmpt = format[localize "str_actions_medical_09_status",_cmpt,_damagePercent];
- _string = format[localize "str_actions_medical_09",_cmpt,_color]; //Repair - Part
- _handle = dayz_myCursorTarget addAction [_string, "\z\addons\dayz_code\actions\repair.sqf",[_vehicle,_part,_x], 0, false, true, "",""];
- s_player_repairActions set [count s_player_repairActions,_handle];
- };
- } forEach _hitpoints;
- if (_allFixed) then {
- _vehicle setDamage 0;
- };
- };
- /*
- if (_isMan and !_isAlive) then {
- if (s_player_dragbody < 0) then {
- s_player_dragbody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\drag_body.sqf",cursorTarget, 0, false, true, "",""];
- };
- } else {
- player removeAction s_player_dragbody;
- s_player_dragbody = -1;
- };
- */
- if (_isMan and !_isAlive and !_isZombie) then {
- if (s_player_studybody < 0) then {
- s_player_studybody = player addAction [localize "str_action_studybody", "\fixes\study_body.sqf",cursorTarget, 0, false, true, "",""];
- };
- } else {
- player removeAction s_player_studybody;
- s_player_studybody = -1;
- };
- /*
- //Dog
- if (_isDog and _isAlive and (_hasRawMeat) and _canDo and _ownerID == "0" and player getVariable ["dogID", 0] == 0) then {
- if (s_player_tamedog < 0) then {
- s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\tame_dog.sqf", cursorTarget, 1, false, true, "", ""];
- };
- } else {
- player removeAction s_player_tamedog;
- s_player_tamedog = -1;
- };
- if (_isDog and _ownerID == dayz_characterID and _isAlive and _canDo) then {
- _dogHandle = player getVariable ["dogID", 0];
- if (s_player_feeddog < 0 and _hasRawMeat) then {
- s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true,"",""];
- };
- if (s_player_waterdog < 0 and "ItemWaterbottle" in magazines player) then {
- s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1], 0, false, true,"",""];
- };
- if (s_player_staydog < 0) then {
- _lieDown = _dogHandle getFSMVariable "_actionLieDown";
- if (_lieDown) then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; };
- s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle, 5, false, true,"",""];
- };
- if (s_player_trackdog < 0) then {
- s_player_trackdog = player addAction [localize "str_actions_trackdog","\z\addons\dayz_code\actions\dog\track.sqf", _dogHandle, 4, false, true,"",""];
- };
- if (s_player_barkdog < 0) then {
- s_player_barkdog = player addAction [localize "str_actions_barkdog","\z\addons\dayz_code\actions\dog\speak.sqf", cursorTarget, 3, false, true,"",""];
- };
- if (s_player_warndog < 0) then {
- _warn = _dogHandle getFSMVariable "_watchDog";
- if (_warn) then { _text = "Quiet"; _warn = false; } else { _text = "Alert"; _warn = true; };
- s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true,"",""];
- };
- if (s_player_followdog < 0) then {
- s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true], 6, false, true,"",""];
- };
- } else {
- player removeAction s_player_feeddog;
- s_player_feeddog = -1;
- player removeAction s_player_waterdog;
- s_player_waterdog = -1;
- player removeAction s_player_staydog;
- s_player_staydog = -1;
- player removeAction s_player_trackdog;
- s_player_trackdog = -1;
- player removeAction s_player_barkdog;
- s_player_barkdog = -1;
- player removeAction s_player_warndog;
- s_player_warndog = -1;
- player removeAction s_player_followdog;
- s_player_followdog = -1;
- };
- */
- } else {
- //Engineering
- {dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;s_player_repairActions = [];
- dayz_myCursorTarget = objNull;
- //Others
- player removeAction s_player_forceSave;
- s_player_forceSave = -1;
- player removeAction s_player_flipveh;
- s_player_flipveh = -1;
- player removeAction s_player_sleep;
- s_player_sleep = -1;
- player removeAction s_player_deleteBuild;
- s_player_deleteBuild = -1;
- player removeAction s_player_butcher;
- s_player_butcher = -1;
- player removeAction s_player_cook;
- s_player_cook = -1;
- player removeAction s_player_boil;
- s_player_boil = -1;
- player removeAction s_player_fireout;
- s_player_fireout = -1;
- player removeAction s_player_packtent;
- s_player_packtent = -1;
- player removeAction s_player_fillfuel;
- s_player_fillfuel = -1;
- player removeAction s_player_studybody;
- s_player_studybody = -1;
- /*
- //Drag Body
- player removeAction s_player_dragbody;
- s_player_dragbody = -1;
- */
- //fuel
- player removeAction s_player_fillfuel20;
- s_player_fillfuel20 = -1;
- player removeAction s_player_fillfuel5;
- s_player_fillfuel5 = -1;
- //Dog
- //player removeAction s_player_tamedog;
- //s_player_tamedog = -1;
- player removeAction s_player_feeddog;
- s_player_feeddog = -1;
- player removeAction s_player_waterdog;
- s_player_waterdog = -1;
- player removeAction s_player_staydog;
- s_player_staydog = -1;
- player removeAction s_player_trackdog;
- s_player_trackdog = -1;
- player removeAction s_player_barkdog;
- s_player_barkdog = -1;
- player removeAction s_player_warndog;
- s_player_warndog = -1;
- player removeAction s_player_followdog;
- s_player_followdog = -1;
- };
- PLAYER_SLEEP.SQF:
- // Script writen by Krixes
- // Version 1.1
- //
- //
- // Change Log 1.1:
- // 1: Made some minor tweaks in the code
- // 2: Lowered quality of the snoring for smaller file size
- //
- // Animation references - http://community.bistudio.com/wiki/ArmA2:_Moves
- private ["_timeLeft", "_totalSleepTime","_i","_bloodAmount","_sleepCooldown","_sleepTime"];
- //////////////////////////////////////////////////////////////////////////////////////////////////////
- // Config Area Start //
- //////////////////////////////////////////////////////////////////////////////////////////////////////
- // This script in its current state is set up perfectly for 45 seconds changing it can yield some wierd results!
- _totalSleepTime = 45; // Total ammount of time it takes before you wake up
- _bloodAmount = 8000; // Total amount of blood to give back to player on sleep (12000 is the max life for a player)
- _sleepCooldown = 60; // This is how long in seconds before you can sleep again
- //////////////////////////////////////////////////////////////////////////////////////////////////////
- // Config Area End //
- //////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////
- // Everything below here need not be modified unless you know what you are doing! //
- ////////////////////////////////////////////////////////////////////////////////////
- _sleepTime = time - sleepTimer; // Variable used for easy reference in determining the sleep cooldown
- if(_sleepTime < _sleepCooldown) exitWith { // If cooldown is not done then exit script
- cutText [format["You are not tired yet please wait %1!",(_sleepTime - _sleepCooldown)], "PLAIN DOWN"]; //display text at bottom center of screen when players cooldown is not done
- };
- if (dayz_combat == 1) then { // Check if in combat (dunno why you would want to sleep in combat but the check is here anyway)
- cutText [format["You cannot sleep while in combat!"], "PLAIN DOWN"]; //display text at bottom center of screen when in combat
- } else {
- _timeLeft = _totalSleepTime; // Variable used as a countdown timer
- disableUserInput true; // Disable the players keyboard/mouse input when sleeping
- [objNull, player, rSwitchMove,"AidlPpneMstpSnonWnonDnon_SleepA_layDown"] call RE; // Public RPC call to change animation so all players see the animation when laying down
- sleep 3;
- cutText [format["You begin sleeping. %1 seconds left.",_timeLeft], "BLACK OUT"]; // Text displayed when starting to sleep
- _nul = [objNull, player, rSAY, "playerSnoring"] call RE; // This is a RPC sound call for the snoring
- for "_i" from 0 to _totalSleepTime do { // For loop for counting down sleep timers and changing animations
- sleep 1;
- _timeLeft = _timeLeft - 1; // Minus _timeLeft by one every second
- if (_timeLeft > 0) then {
- cutText [format["You are sleeping. %1 seconds left.",_timeLeft], "BLACK FADED"]; // Display sleep countdown while sleeping
- } else {cutText [format["You are beginning to wake up!"], "BLACK FADED"];}; // This is a fix for when timer reaches zero... displays text
- if (_timeLeft == 40) then {
- [objNull, player, rSwitchMove,"AidlPpneMstpSnonWnonDnon_SleepA_sleep2"] call RE; // Public RPC call to change animation so all players see the animation while sleeping
- };
- if (_timeLeft == 30) then {
- [objNull, player, rSwitchMove,"AidlPpneMstpSnonWnonDnon_SleepA_sleep1"] call RE; // Public RPC call to change animation so all players see the animation while sleeping
- };
- if (_timeLeft == 20) then {
- [objNull, player, rSwitchMove,"AidlPpneMstpSnonWnonDnon_SleepA_sleep2"] call RE; // Public RPC call to change animation so all players see the animation while sleeping
- };
- if (_timeLeft == 10) then {
- [objNull, player, rSwitchMove,"AidlPpneMstpSnonWnonDnon_SleepA_sleep3"] call RE; // Public RPC call to change animation so all players see the animation while sleeping
- };
- if (_timeLeft == 5) then {
- [objNull, player, rSwitchMove,"AidlPpneMstpSnonWnonDnon_SleepA_sleep1"] call RE; // Public RPC call to change animation so all players see the animation while sleeping
- };
- };
- if (_timeLeft == 0 || _timeLeft < 0) then { // If sleep countdown is done then.....
- sleep 3;
- cutText [format["You wake up!"], "BLACK IN"]; // Display wake up text (don't think this actually gets shown)
- [objNull, player, rSwitchMove,"AidlPpneMstpSnonWnonDnon_SleepA_standUp"] call RE; // Public RPC call to change animation so all players see the animation on wake up
- r_player_blood = r_player_blood + _bloodAmount; // LOCAL variable to give player certain blood amount
- if(r_player_blood > 12000) then {
- r_player_blood = 12000; // If players blood is greater then max amount allowed set it to max allowed (this check keeps an error at bay)
- };
- r_player_lowblood = false; // Set lowblood to false
- 10 fadeSound 1; // Fades sound in over time
- "dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5; // Disable post processing blur effect
- "colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1], [1, 1, 1, 1]];"colorCorrections" ppEffectCommit 5; // Give player their color back
- r_player_lowblood = false; // Just double checking players blood isnt low
- player setVariable["USEC_BloodQty",r_player_blood,true]; // Save this blood ammount to the database
- cutText [format["You are awake and fully rested!"], "PLAIN DOWN"]; // Text displayed on wakeup!
- disableUserInput false; // Give players input controls back
- sleepTimer = time; // Set public cooldown variable
- };
- };
- STUD_BODY.SQF:
- private ["_body", "_name", "_kills", "_killsH", "_killsB", "_headShots", "_humanity"];
- titleText ["You have found a journal on the survivor's corpse.","PLAIN DOWN"]; titleFadeOut 5;
- sleep 2;
- _body = _this select 3;
- _name = _body getVariable ["bodyName","unknown"];
- _kills = _body getVariable ["zombieKills",0];
- _killsH = _body getVariable ["humanKills",0];
- _killsB = _body getVariable ["banditKills",0];
- _headShots = _body getVariable ["headShots",0];
- _humanity = _body getVariable ["humanity",0];
- cutText [format["Zombie Kills: %1, Murders: %2, Bandit Kills: %3, Humanity: %4.",_kills,_killsH,_killsB,_humanity], "PLAIN DOWN"];
- sleep 5;
- //hint parseText format["
- //<t size='1.5' font='Bitstream' color='#5882FA'>%1's Journal</t><br/><br/>
- //<t size='1.25' font='Bitstream' align='left'>Zombies Killed: </t><t size='1.25' font='Bitstream' align='right'>%2</t><br/>
- //<t size='1.25' font='Bitstream' align='left'>Bandits Killed: </t><t size='1.25' font='Bitstream' align='right'>%4</t><br/>
- //<t size='1.25' font='Bitstream' align='left'>Humanity: </t><t size='1.25' font='Bitstream' align='right'>%6</t><br/>",
- //_name,_kills,_killsH,_killsB,_headShots,_humanity];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement