/* 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 "\z\addons\dayz_code\compile\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_dumpBackpack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_dumpBackpack.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"; player_packVault = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_packVault.sqf"; player_unlockVault = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockVault.sqf"; player_removeObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\remove.sqf"; player_removeNet = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_removeNet.sqf"; player_unlockDoor = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockDoor.sqf"; player_changeCombo = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_changeCombo.sqf"; player_lockVault = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_lockVault.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"; fn_gearMenuChecks = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_gearMenuChecks.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 wild_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\wild_spawnZombies.sqf"; //Server compile, used for loiter behaviour pz_attack = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf"; // dog_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf"; // Vehicle damage fix vehicle_handleDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleDamage.sqf"; vehicle_handleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleKilled.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_copyKey = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_copyKey.sqf"; player_reloadMag = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_reloadMags.sqf"; player_loadCrate = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_loadCrate.sqf"; player_craftItem = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItem.sqf"; player_tentPitch = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\tent_pitch.sqf"; player_vaultPitch = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\vault_pitch.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_harvestPlant = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_harvestPlant.sqf"; player_goFishing = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_goFishing.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_mineOre = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_mineOre.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"; ui_gear_sound = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_gear_sound.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;"; // TODO: need move it in player_monitor.fsm // allow player disconnect from server, if loading hang, kicked by BE etc. [] 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."; }; */ }; // RunTime = 0; TotalRuns = 0; fnc_dump = { private["_code","_benchmark","_averageRunTime"]; _code = _this select 0; _benchmark = _this select 1; RunTime = RunTime + _benchmark; TotalRuns = TotalRuns + 1; _averageRunTime = RunTime/TotalRuns; diag_log format["%1 - %2 (%3 / %4)",_code,_benchmark,_averageRunTime,TotalRuns]; }; 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 = aimPos _target; _zPos = aimPos _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 }; 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 }; vehicle_gear_count = { private["_counter"]; _counter = 0; { _counter = _counter + _x; } forEach _this; _counter }; dayz_spaceInterrupt = { private ["_dikCode", "_handled"]; _dikCode = _this select 1; _handled = false; if (_dikCode in[0x58,0x57,0x44,0x43,0x42,0x41,0x40,0x3F,0x3E,0x3D,0x3C,0x3B,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05]) then { _handled = true; }; if (_dikCode in actionKeys "MoveForward") exitWith {r_interrupt = true}; if (_dikCode in actionKeys "MoveLeft") exitWith {r_interrupt = true}; if (_dikCode in actionKeys "MoveRight") exitWith {r_interrupt = true}; if (_dikCode in actionKeys "MoveBack") exitWith {r_interrupt = true}; //Prevent exploit of drag body if ((_dikCode in actionKeys "Prone") and r_drag_sqf) exitWith { force_dropBody = true; }; if ((_dikCode in actionKeys "Crouch") and r_drag_sqf) exitWith { force_dropBody = true; }; _shift = _this select 2; _ctrl = _this select 3; _alt = _this select 4; //diag_log format["Keypress: %1", _this]; if (_dikCode in (actionKeys "GetOver")) then { if (player isKindOf "PZombie_VB") then { _handled = true; DZE_PZATTACK = true; } else { _nearbyObjects = nearestObjects[getPosATL player, dayz_disallowedVault, 8]; if (count _nearbyObjects > 0) then { if((diag_tickTime - dayz_lastCheckBit > 4)) then { [objNull, player, rSwitchMove,"GetOver"] call RE; player playActionNow "GetOver"; dayz_lastCheckBit = diag_tickTime; } else { _handled = true; }; }; }; }; //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 { _nill = execvm "\z\addons\dayz_code\actions\playerstats.sqf"; }; if (_dikCode in actionKeys "ForceCommandingMode") then {_handled = true}; if (_dikCode in actionKeys "PushToTalk" and (diag_tickTime - dayz_lastCheckBit > 10)) then { dayz_lastCheckBit = diag_tickTime; [player,50,true,(getPosATL player)] spawn player_alertZombies; }; if (_dikCode in actionKeys "VoiceOverNet" and (diag_tickTime - dayz_lastCheckBit > 10)) then { dayz_lastCheckBit = diag_tickTime; [player,50,true,(getPosATL player)] spawn player_alertZombies; }; if (_dikCode in actionKeys "PushToTalkDirect" and (diag_tickTime - dayz_lastCheckBit > 10)) then { dayz_lastCheckBit = diag_tickTime; [player,15,false,(getPosATL player)] spawn player_alertZombies; }; if (_dikCode in actionKeys "Chat" and (diag_tickTime - dayz_lastCheckBit > 10)) then { dayz_lastCheckBit = diag_tickTime; [player,15,false,(getPosATL player)] spawn player_alertZombies; }; if (_dikCode in actionKeys "User20" and (diag_tickTime - dayz_lastCheckBit > 5)) then { dayz_lastCheckBit = diag_tickTime; _nill = execvm "\z\addons\dayz_code\actions\playerstats.sqf"; }; // numpad 8 0x48 now pgup 0xC9 1 if ((_dikCode == 0xC9 and (!_alt or !_ctrl)) or (_dikCode in actionKeys "User15")) then { DZE_Q = true; }; // numpad 2 0x50 now pgdn 0xD1 if ((_dikCode == 0xD1 and (!_alt or !_ctrl)) or (_dikCode in actionKeys "User16")) then { DZE_Z = true; }; // numpad 8 0x48 now pgup 0xC9 0.1 if ((_dikCode == 0xC9 and (_alt and !_ctrl)) or (_dikCode in actionKeys "User13")) then { DZE_Q_alt = true; }; // numpad 2 0x50 now pgdn 0xD1 if ((_dikCode == 0xD1 and (_alt and !_ctrl)) or (_dikCode in actionKeys "User14")) then { DZE_Z_alt = true; }; // numpad 8 0x48 now pgup 0xC9 0.01 if ((_dikCode == 0xC9 and (!_alt and _ctrl)) or (_dikCode in actionKeys "User7")) then { DZE_Q_ctrl = true; }; // numpad 2 0x50 now pgdn 0xD1 if ((_dikCode == 0xD1 and (!_alt and _ctrl)) or (_dikCode in actionKeys "User8")) then { DZE_Z_ctrl = true; }; // numpad 4 0x4B now Q 0x10 if (_dikCode == 0x10 or (_dikCode in actionKeys "User17")) then { DZE_4 = true; }; // numpad 6 0x4D now E 0x12 if (_dikCode == 0x12 or (_dikCode in actionKeys "User18")) then { DZE_6 = true; }; // numpad 5 0x4C now space 0x39 if (_dikCode == 0x39 or (_dikCode in actionKeys "User19")) then { DZE_5 = true; }; // esc if (_dikCode == 0x01) then { DZE_cancelBuilding = true; }; if ((_dikCode == 0x3E or _dikCode == 0x0F or _dikCode == 0xD3) and (diag_tickTime - dayz_lastCheckBit > 10)) then { dayz_lastCheckBit = diag_tickTime; call dayz_forceSave; }; /* if (_dikCode in actionKeys "IngamePause") then { _idOnPause = [] spawn dayz_onPause; }; */ _handled }; player_setDate = { private ["_setdatebool"]; _setdatebool = false; if (!([_this, date] call BIS_fnc_areEqual)) exitWith { _setdatebool = true; }; if (_setdatebool) then { setDate _this; }; }; 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 }; DZE_getModelName = { _objInfo = toArray(str(_this)); _lenInfo = count _objInfo - 1; _objName = []; _i = 0; // determine where the object name starts { if (58 == _objInfo select _i) exitWith {}; _i = _i + 1; } forEach _objInfo; _i = _i + 2; // skip the ": " part for "_k" from _i to _lenInfo do { _objName = _objName + [_objInfo select _k]; }; _objName = toLower(toString(_objName)); _objName }; dayz_originalPlayer = player; // trader menu gui by maca134 TraderDialogCatList = 12000; TraderDialogItemList = 12001; TraderDialogBuyPrice = 12002; TraderDialogSellPrice = 12003; TraderCurrentCatIndex = -1; TraderCatList = -1; TraderItemList = -1; TraderDialogLoadItemList = { private ["_index", "_trader_id", "_activatingPlayer"]; TraderItemList = -1; _index = _this select 0; if (_index < 0 or TraderCurrentCatIndex == _index) exitWith {}; TraderCurrentCatIndex = _index; _trader_id = TraderCatList select _index; _activatingPlayer = player; lbClear TraderDialogItemList; ctrlSetText [TraderDialogBuyPrice, ""]; ctrlSetText [TraderDialogSellPrice, ""]; lbAdd [TraderDialogItemList, "Loading items..."]; PVDZE_plr_TradeMenuResult = call compile format["tcacheBuy_%1;",_trader_id]; if(isNil "PVDZE_plr_TradeMenuResult") then { PVDZE_plr_TradeMenu = [_activatingPlayer,_trader_id]; publicVariableServer "PVDZE_plr_TradeMenu"; waitUntil {!isNil "PVDZE_plr_TradeMenuResult"}; }; lbClear TraderDialogItemList; _item_list = []; { private ["_header", "_item", "_name", "_type", "_textPart", "_qty", "_buy", "_bqty", "_bname", "_btype", "_btextCurrency", "_sell", "_sqty", "_sname", "_stype", "_stextCurrency", "_order", "_order", "_afile", "_File", "_count", "_bag", "_bagclass", "_index", "_image"]; _header = _x select 0; // "TRD" _item = _x select 1; _name = _item select 0; _type = _item select 1; switch (true) do { case (_type == 1): { _type = "CfgMagazines"; }; case (_type == 2): { _type = "CfgVehicles"; }; case (_type == 3): { _type = "CfgWeapons"; }; }; // Display Name of item _textPart = getText(configFile >> _type >> _name >> "displayName"); // Total in stock _qty = _x select 2; // Buy Data from array _buy = _x select 3; _bqty = _buy select 0; _bname = _buy select 1; _btype = _buy select 2; switch(true)do{ case (_btype == 1): { _btype = "CfgMagazines"; }; case (_btype == 2): { _btype = "CfgVehicles"; }; case (_btype == 3): { _btype = "CfgWeapons"; }; }; // Display Name of buy item _btextCurrency = getText(configFile >> _btype >> _bname >> "displayName"); _sell = _x select 4; _sqty = _sell select 0; _sname = _sell select 1; _stype = _sell select 2; switch(true)do{ case (_stype == 1): { _stype = "CfgMagazines"; }; case (_stype == 2): { _stype = "CfgVehicles"; }; case (_stype == 3): { _stype = "CfgWeapons"; }; }; // Display Name of sell item _stextCurrency = getText(configFile >> _stype >> _sname >> "displayName"); // Menu sort order _order = _x select 5; // Action file to use for trade _afile = _x select 7; _File = "\z\addons\dayz_code\actions\" + _afile + ".sqf"; _count = 0; if(_type == "CfgVehicles") then { if (_afile == "trade_backpacks") then { _bag = unitBackpack player; _bagclass = typeOf _bag; if(_name == _bagclass) then { _count = 1; }; } else { _count = {(typeOf _x) == _name} count (nearestObjects [player, [_name], 20]); } }; if(_type == "CfgMagazines") then { _count = {_x == _name} count magazines player; }; if(_type == "CfgWeapons") then { _count = {_x == _name} count weapons player; }; _index = lbAdd [TraderDialogItemList, format["%1 (%2)", _textPart, _name]]; if (_count > 0) then { lbSetColor [TraderDialogItemList, _index, [0, 1, 0, 1]]; }; _image = getText(configFile >> _type >> _name >> "picture"); lbSetPicture [TraderDialogItemList, _index, _image]; _item_list set [count _item_list, [ _name, _textPart, _bqty, _bname, _btextCurrency, _sqty, _sname, _stextCurrency, _header, _File ]]; } forEach PVDZE_plr_TradeMenuResult; TraderItemList = _item_list; }; TraderDialogShowPrices = { private ["_index", "_item"]; _index = _this select 0; if (_index < 0) exitWith {}; while {count TraderItemList < 1} do { sleep 1; }; _item = TraderItemList select _index; ctrlSetText [TraderDialogBuyPrice, format["%1 %2", _item select 2, _item select 4]]; ctrlSetText [TraderDialogSellPrice, format["%1 %2", _item select 5, _item select 7]]; }; TraderDialogBuy = { private ["_index", "_item", "_data"]; _index = _this select 0; if (_index < 0) exitWith { cutText ["Trading canceled." , "PLAIN DOWN"]; }; _item = TraderItemList select _index; _data = [_item select 0, _item select 3, 1, _item select 2, "buy", _item select 4, _item select 1, _item select 8]; [0, player, '', _data] execVM (_item select 9); TraderItemList = -1; }; TraderDialogSell = { private ["_index", "_item", "_data"]; _index = _this select 0; if (_index < 0) exitWith { cutText ["Trading canceled." , "PLAIN DOWN"]; }; _item = TraderItemList select _index; _data = [_item select 6, _item select 0, _item select 5, 1, "sell", _item select 1, _item select 7, _item select 8]; [0, player, '', _data] execVM (_item select 9); TraderItemList = -1; }; // murder message boards by maca134 /* _death_record = [ 0_victimName, 1_killerName, 2_weapon, 3_distance, 4ServerCurrentTime ]; */ EpochDeathBoardDialogList = 21000; EpochDeathBoardDialogSText = 21001; EpochDeathBoardDeaths = []; EpochDeathBoardLoad = { createdialog "EpochDeathBoardDialog"; /*PVDZE_plr_DeathBResult = [ ["maca134","Bob","AK_107_Kobra",100,[8,30]], ["Fred","Jonny","FN_FAL",42,[8,32]], ["maca134","Bob","M9SD",100,[5,30]], ["Fred","Jonny","BAF_AS50_scoped",42,[8,34]] ];*/ { lbAdd [EpochDeathBoardDialogList, (_x select 0)]; } forEach PVDZE_plr_DeathBResult; }; EpochDeathBoardClick = { disableSerialization; private ["_i", "_record", "_output", "_record_stxt", "_name", "_image", "_h", "_m", "_format"]; _quotes = [ "Death is God's way of telling you not to be such a wise guy.", "What happens if you get scared half to death, twice?", "Don't upset me.. I'm running out of places to hide the bodies.", "Don't run, you'll just die tired.", "Give me immortality or give me death.", "I can't live with death; he's always leaving the toilet seat up.", "Why won't you die?!?!", "Guns don't kill people; death kills people. It's a proven medical fact." ]; _i = _this select 0; if (_i < 0) exitWith {}; _output = _this select 1; _record = PVDZE_plr_DeathBResult select _i; _record_stxt = call compile format["epoch_death_board_record_%1;",_i]; if(isNil "_record_stxt") then { _record_stxt = format["%1

", (_record select 0)]; _format = { private ["_codeCount", "_str"]; _str = format["%1", _this]; _codeCount = (count (toArray _str)); if (_codeCount == 1) then { _str = format["0%1", _str]; }; _str; }; _h = (_record select 4) select 0; _m = (_record select 4) select 1; _record_stxt = format["%1Died at %2:%3

", _record_stxt, (_h call _format), (_m call _format)]; if ((_record select 1) != 'unknown') then { _record_stxt = format["%1Was killed by %2

", _record_stxt, (_record select 1)]; }; if ((_record select 2) != 'unknown') then { _name = getText(configFile >> "cfgWeapons" >> (_record select 2) >> "displayName"); _image = getText(configFile >> "cfgWeapons" >> (_record select 2) >> "picture"); _record_stxt = format["%1With a %2


", _record_stxt, _name, _image]; }; if (format["%1", (_record select 3)] != 'unknown') then { _record_stxt = format["%1At a distance of %2m

", _record_stxt, (_record select 3)]; }; _record_stxt = format["%1%2", _record_stxt, (_quotes call BIS_fnc_selectRandom)]; call compile format["epoch_death_board_record_%1 = ""%2"";" ,_i , _record_stxt]; }; _output ctrlSetStructuredText parseText _record_stxt; }; }; progressLoadingScreen 0.8; //Both BIS_fnc_selectRandom = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_selectRandom.sqf"; //Checks which actions for nearby casualty BIS_fnc_vectorAdd = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\BIS_fnc\fn_vectorAdd.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 fnc_usec_damageVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerVehicle.sqf"; //Event handler run on damage 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_setHitServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setHitServer.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) object_setFixServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_setFixServer.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) 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 fnc_veh_ResetEH = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\veh_ResetEH.sqf"; //Initialize vehicle // Vehicle damage fix vehicle_handleDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleDamage.sqf"; vehicle_handleKilled = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_handleKilled.sqf"; //fnc_vehicleEventHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\init\vehicle_init.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; fnc_isInsideBuilding2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding2.sqf"; //_isInside = [_unit,_building] call fnc_isInsideBuilding; fnc_isInsideBuilding3 = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding3.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_lockUnlock = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_lockUnlock.sqf"; //When vehicle is local to unit perform locking vehicle local_gutObjectZ = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObjectZ.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_breaklegs = compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\publicEH\medBreakLegs.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"; spawn_loot_small = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\spawn_loot_small.sqf"; // player_projectileNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_projectileNear.sqf"; player_sumMedical = { private["_character","_wounds","_legs","_arms","_medical"]; _character = _this; _wounds = []; if (_character getVariable["USEC_injured",false]) then { { if (_character getVariable[_x,false]) 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 }; //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\external\DynamicWeatherEffects.sqf"; initialized = true;