Merge pull request #4 from vbawol/RC5-1.0.5

Rc5 1.0.5
This commit is contained in:
Uro1
2014-06-22 11:30:11 +01:00
17 changed files with 106 additions and 163 deletions

View File

@@ -1,3 +1,4 @@
[ADDED] Updated Sauerland map V1.80.01 by Falconsan http://epochmod.com/forum/index.php?/topic/6365-dayz-epoch-sauerland-changelog
[ADDED] More enterable buildings thanks to @Tansien and the DayZero crew.
[ADDED] Latest version of Napf 1.0.1 by Momo
[ADDED] Classname C130J_US_EP1_DZ Weapon: 50 Magazine: 400 Backpack: 10 @Fank
@@ -16,6 +17,9 @@
[FIXED] Load patient into vehicle now working. @SilvDev
[FIXED] Fix invalid str format for player skin class. @Sandbird https://github.com/vbawol/DayZ-Epoch/commit/55d49c279bfd1e03d3802bfe4fdf55f2335f8f47
[FIXED] Check trade requirements before animation. @Cornyfisch
[FIXED] Undefined variable in expression in "fill_nearestVehicle.sqf" @Namindu
[FIXED] Fix infinite knockout @icomrade
[FIXED] Fixed typo in "player_tagFriendly.sqf" @Namindu
[CHANGED] Crafting lumber or plywood packs no longer require workbench. @vbawol
[CHANGED] Force mouse to center of screen on gear open. @vbawol

View File

@@ -1,7 +1,7 @@
class USEC_ch53_E;
class CH53_DZE : USEC_ch53_E {
displayname = "USEC CH53E DZ";
displaynameshort = "CH53_DZ";
displayname = "USEC CH53E DZE";
displaynameshort = "CH53_DZE";
enablemanualfire = 0;
scope = 2;
side = 2;

View File

@@ -274,7 +274,7 @@ class CfgWeapons {
#include "CfgWeapons\Weapon\Sniper\KSVK.hpp"
#include "CfgWeapons\Weapon\Sniper\DMR_DZ.hpp"
#include "CfgWeapons\Weapon\Pistol\MakerovSD.hpp"
#include "CfgWeapons\Weapon\Pistol\MakarovSD.hpp"
#include "CfgWeapons\Weapon\LMG\m240_scoped.hpp"
#include "CfgWeapons\Weapon\LMG\M249_EP1.hpp"
#include "CfgWeapons\Weapon\LMG\M249_m145_EP1.hpp"

View File

@@ -215,6 +215,8 @@ class CfgVehicles {
#include "CfgVehicles\AIR\UH1.hpp"
#include "CfgVehicles\AIR\AH6.hpp"
#include "CfgVehicles\AIR\C130.hpp"
#include "CfgVehicles\AIR\CH53.hpp"
// LAND (Armed)
#include "CfgVehicles\LAND\HMMWV.hpp"

View File

@@ -153,7 +153,7 @@ if(_IsNearPlot == 0) then {
_nearestPole = _findNearestPole select 0;
// Find owner
_ownerID = _nearestPole getVariable["CharacterID","0"];
_ownerID = _nearestPole getVariable ["CharacterID","0"];
// diag_log format["DEBUG BUILDING: %1 = %2", dayz_characterID, _ownerID];
@@ -183,7 +183,7 @@ _missing = "";
_hasrequireditem = true;
{
_hastoolweapon = _x in weapons player;
if(!_hastoolweapon) exitWith { _hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName"); }
if(!_hastoolweapon) exitWith { _hasrequireditem = false; _missing = getText (configFile >> "cfgWeapons" >> _x >> "displayName"); };
} count _require;
_hasbuilditem = _this in magazines player;

View File

@@ -37,7 +37,8 @@ _abort = false;
_distance = 3;
_reason = "";
_waterLevel = 0;
_outputWeapons = [];
_selectedRecipeOutput = [];
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder);
@@ -95,7 +96,7 @@ if (_canDo) then {
{
_hastoolweapon = _x in weapons player;
if(!_hastoolweapon) exitWith { _craft_doLoop = false; _missingTools = true; _missing = _x; };
} count _selectedRecipeTools;
} forEach _selectedRecipeTools;
if(!_missingTools) then {
@@ -173,7 +174,7 @@ if (_canDo) then {
};
};
};
} count magazines player;
} forEach magazines player;
{
_configParent = configName(inheritsFrom(configFile >> "cfgMagazines" >> _x));
@@ -205,15 +206,13 @@ if (_canDo) then {
_num_removed_weapons = 0;
{
_num_removed_weapons = _num_removed_weapons + ([player,_x] call BIS_fnc_invRemove);
} count _inputWeapons;
} forEach _inputWeapons;
if (_num_removed_weapons == (count _inputWeapons)) then {
if(_randomOutput == 1) then {
_outputWeapons = [];
if (!isNil "_outputWeapons" && count _outputWeapons > 0) then {
_selectedWeapon = _outputWeapons call BIS_fnc_selectRandom;
_outputWeapons = [_selectedWeapon];
};
_selectedRecipeOutput = [];
if (!isNil "_selectedRecipeOutput" && count _selectedRecipeOutput > 0) then {
_selectedMag = _selectedRecipeOutput call BIS_fnc_selectRandom;
_selectedRecipeOutput = [_selectedMag];
@@ -223,7 +222,7 @@ if (_canDo) then {
};
{
player addWeapon _x;
} count _outputWeapons;
} forEach _outputWeapons;
{
_itemOut = _x select 0;
@@ -250,14 +249,14 @@ if (_canDo) then {
// sleep here
sleep 1;
} count _selectedRecipeOutput;
} forEach _selectedRecipeOutput;
_tradeComplete = _tradeComplete+1;
};
} else {
// Refund parts since we failed
{player addMagazine _x;} count _temp_removed_array;
{player addMagazine _x; } forEach _temp_removed_array;
cutText [format[(localize "str_epoch_player_151"),_removed_total,_tobe_removed_total], "PLAIN DOWN"];
};

View File

@@ -5,18 +5,19 @@ _caller = _this select 1;
call fnc_usec_medic_removeActions;
r_action = false;
_callerID = _caller getVariable "CharacterID";
_targetID = _target getVariable "CharacterID";
_callerID = _caller getVariable ["CharacterID", "0"];
_targetID = _target getVariable ["CharacterID", "0"];
if ((_callerID != "0") && (_targetID != "0")) then {
_friendlies = _caller getVariable ["friendlies", []];
_friendlies set [count _friendlies, _targetID];
_caller setVariable ["friendlies", _friendlies, true];
_friendlies = _caller getVariable ["friendlies", []];
_friendlies set [count _friendlies, _targetID];
_caller setVariable ["friendlies", _friendlies, true];
_rfriendlies = _target getVariable ["friendlies", []];
_rfriendlies = _target getVariable ["friendlies", []];
if !(_callerID in _rfriendlies) then {
titleText [(localize "STR_EPOCH_ACTIONS_8"), "PLAIN DOWN"]; //To Caller
/* PVS/PVC - Skaronator */
PVDZE_send = [_target,"tagFriendly",[_target]]; //To Target
publicVariableServer "PVDZE_send";
if !(_callerID in _rfriendlies) then {
titleText [(localize "STR_EPOCH_ACTIONS_8"), "PLAIN DOWN"]; //To Caller
/* PVS/PVC - Skaronator */
PVDZE_send = [_target,"tagFriendly",[_target]]; //To Target
publicVariableServer "PVDZE_send";
};
};

View File

@@ -15,9 +15,10 @@ private "_ret";
if(count _this > 0) then
{
_ret = count _this; //number of elements in the array
//_ret = count _this; //number of elements in the array
//_ret = [0, _ret] call BIS_fnc_randomInt; //choose random index
_ret = floor(random _ret);
_ret = floor(random(count _this));
_ret = _this select _ret; //get the element, return it
};
_ret
_ret;

View File

@@ -1,14 +1,13 @@
private ["_nul","_timeout","_isOnDeck","_isInLocation","_inVehicle","_bloodLow","_isHospital","_totalTimeout","_display","_ctrl1","_ctrl1Pos"];
private ["_totalTimeout","_timeout","_bloodLow","_display","_ctrl1","_ctrl1Pos"];
disableSerialization;
if ((!r_player_handler1) && (r_handlerCount == 0)) then {
//Unconscious Meter
if (r_player_cardiac) then {r_player_timeout = r_player_timeout max 300;};
_totalTimeout = r_player_timeout;
if (_totalTimeout == 0) then { _totalTimeout = 1; }; //Fix for zero divisor
if (_totalTimeout == 0) then { _totalTimeout = 1; };
4 cutRsc ["playerStatusWaiting", "PLAIN",0];
_display = uiNamespace getVariable 'DAYZ_GUI_waiting';
_ctrl1 = _display displayCtrl 1400;
_ctrl1Pos = ctrlPosition _ctrl1;
_timeout = 0;
r_handlerCount = r_handlerCount + 1;
r_player_handler1 = true;
@@ -17,27 +16,16 @@ if ((!r_player_handler1) && (r_handlerCount == 0)) then {
"colorCorrections" ppEffectEnable true;"colorCorrections" ppEffectEnable true;"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 0.1], [1, 1, 1, 0.0]];"colorCorrections" ppEffectCommit 0;
0 fadeSound 0.05;
disableUserInput true;
//waitUntil{USEC_MotherInbox == ""};
//["MED001",0,"Unconscious"] call fnc_usec_recordEventClient;
//diag_log "CLIENT: Unconscious...";
while {(r_player_unconscious)} do {
while {r_player_unconscious} do {
_ctrl1 ctrlSetPosition [(_ctrl1Pos select 0),(_ctrl1Pos select 1),(_ctrl1Pos select 2),((0.136829 * safezoneH) * (1 -(r_player_timeout / _totalTimeout)))];
_ctrl1 ctrlCommit 1;
playSound "heartbeat_1";
sleep 1;
_isOnDeck = false; //getPos player in LHA_Deck;
_isInLocation = false; //getPos player in LHA_Location;
_inVehicle = (vehicle player != player);
_bloodLow = ((r_player_blood/r_player_bloodTotal) < 0.5);
if ((surfaceIsWater (getPosASL player)) && !_isOnDeck && !_inVehicle) then {
player setpos [(getPosASL player select 0),(getPosASL player select 1),0.3];
};
if(_timeout == 0) then {
if (!r_player_dead && !_bloodLow && r_player_injured) then {
_timeout = 10;
//_animType = (USEC_WoundAnim select (floor(random (count USEC_WoundAnim))));
//player playActionNow _anim;
};
} else {
_timeout = _timeout - 1;
@@ -46,54 +34,10 @@ if ((!r_player_handler1) && (r_handlerCount == 0)) then {
if (r_player_timeout > 0) then {
r_player_timeout = r_player_timeout - 1;
} else {
if ((!r_player_dead) && (!r_player_cardiac)) then {
if (!r_player_dead) then {
_nul = [] spawn fnc_usec_recoverUncons;
};
};
//Check if near field hospital
_isHospital = false; //(count( nearestObjects [player, ["USMC_WarfareBFieldhHospital"], 8]) > 0);
if (_isHospital || _isOnDeck || _isInLocation) then {
waitUntil {!(player getVariable ["NORRN_unit_dragged", false])};
cutText[localize "str_medical_healing", "PLAIN", 2];
sleep 5;
r_player_inpain = false;
r_player_dead = false;
r_player_injured = false;
r_player_cardiac = false;
//Give Blood
r_player_blood = r_player_bloodTotal;
player setVariable["USEC_lowBlood",false,true];
//Self Healing
_id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medMorphine.sqf";
player setVariable ["hit_legs",0,false];
player setVariable ["hit_hands",0,false];
player setVariable["medForceUpdate",true];
_id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
player setVariable["medForceUpdate",true];
/* REMOVED USE THAT ABOVE
usecMorphine = [player,player];
publicVariable "usecMorphine";
usecBandage = [player,player];
publicVariable "usecBandage";
*/
player setVariable ["USEC_inPain", false, true];
player setdamage 0;
{player setVariable[_x,false,true];} count USEC_woundHit;
player setVariable ["USEC_injured",false,true];
sleep 1;
r_player_handler = false;
_nul = [] spawn fnc_usec_recoverUncons;
};
if (!(player getVariable ["NORRN_unconscious", true])) then {
_nul = [] spawn fnc_usec_recoverUncons;
};
@@ -102,10 +46,7 @@ if ((!r_player_handler1) && (r_handlerCount == 0)) then {
};
};
4 cutRsc ["default", "PLAIN",1];
//diag_log "CLIENT: Conscious...";
disableUserInput false;
//waitUntil{USEC_MotherInbox == ""};
//["MED001",0,"Conscious"] call fnc_usec_recordEventClient;
if (!r_player_injured && ((r_player_blood/r_player_bloodTotal) >= 0.5)) then {
10 fadeSound 1;
"dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5;

View File

@@ -2,7 +2,9 @@ private ["_display","_body","_playerID","_array","_source","_method","_canHitFre
disableSerialization;
if (deathHandled) exitWith {};
deathHandled = true;
if ((alive player) && {isNil {dayz_playerName}}) then {
dayz_playerName = name player;
};
//Prevent client freezes
_display = findDisplay 49;
if(!isNull _display) then {_display closeDisplay 0;};

View File

@@ -1,4 +1,4 @@
private ["_display","_ctrlBlood","_ctrlBleed","_bloodVal","_humanityName","_ctrlFood","_ctrlThirst","_thirstVal","_foodVal","_ctrlTemp","_tempVal","_combatVal","_array","_ctrlEar","_ctrlEye","_ctrlCombat","_ctrlFracture","_visualText","_visual","_audibleText","_audible","_blood","_thirstLvl","_foodLvl","_tempImg","_thirst","_food","_temp","_bloodLvl","_tempLvl","_color","_string","_humanity","_size","_friendlies","_charID","_rcharID","_rfriendlies","_rfriendlyTo","_distance","_targetControl","_humanityTarget"];
private ["_display","_ctrlBlood","_ctrlBleed","_bloodVal","_humanityName","_ctrlFood","_ctrlThirst","_thirstVal","_foodVal","_ctrlTemp","_tempVal","_combatVal","_array","_ctrlEar","_ctrlEye","_ctrlCombat","_ctrlFracture","_visualText","_visual","_audibleText","_audible","_blood","_thirstLvl","_foodLvl","_tempImg","_thirst","_food","_temp","_bloodLvl","_tempLvl","_color","_string","_humanity","_size","_friendlies","_charID","_rcharID","_rfriendlies","_rfriendlyTo","_distance","_targetControl"];
disableSerialization;
_foodVal = 1 - (dayz_hunger / SleepFood);
@@ -6,7 +6,7 @@ _thirstVal = 1 - (dayz_thirst / SleepWater);
_tempVal = 1 - ((dayz_temperatur - dayz_temperaturmin)/(dayz_temperaturmax - dayz_temperaturmin)); // Normalise to [0,1]
_combatVal = 1 - dayz_combat; // May change later to be a range of red/green to loosely indicate 'time left in combat'
if (uiNamespace getVariable ['DZ_displayUI', 0] == 1) exitWith {
if (uiNamespace getVariable ["DZ_displayUI", 0] == 1) exitWith {
_array = [_foodVal,_thirstVal];
_array
};
@@ -139,12 +139,11 @@ if (r_player_injured) then {
/*
Opt-in tag system with friend tagging
*/
_targetControl = _display displayCtrl 1199;
_string = "";
_humanityTarget = cursorTarget;
if (!isNull _humanityTarget && isPlayer _humanityTarget && alive _humanityTarget) then {
_distance = (player distance _humanityTarget);
_distance = player distance _humanityTarget;
if (_distance < DZE_HumanityTargetDistance) then {
@@ -157,24 +156,19 @@ if (!isNull _humanityTarget && isPlayer _humanityTarget && alive _humanityTarget
_rcharID = _humanityTarget getVariable ["CharacterID", "0"];
_rfriendlies = _humanityTarget getVariable ["friendlies", []];
_rfriendlyTo = _humanityTarget getVariable ["friendlyTo", []];
if ((_rcharID in _friendlies) && (_charID in _rfriendlies)) then {
if (!(_charID in _rfriendlyTo)) then {
if !(_charID in _rfriendlyTo) then {
// diag_log format["IS FRIENDLY: %1", _player];
_rfriendlyTo set [count _rfriendlyTo, _charID];
_humanityTarget setVariable ["friendlyTo", _rfriendlyTo, true];
// titleText [format[(localize "STR_EPOCH_ACTIONS_17"), (name _humanityTarget)], "PLAIN DOWN"];
};
// <br /><t %2 align='center' size='0.7'>Humanity: %3</t>
_color = "color='#339933'";
_humanityName = if (alive _humanityTarget) then {name _humanityTarget; } else { "Dead Player";};
_string = format["<t %2 align='center' size='%3'>%1</t>",_humanityName,_color,_size];
_string = format["<t %2 align='center' size='%3'>%1</t>",(name _humanityTarget),_color,_size];
} else {
@@ -190,8 +184,7 @@ if (!isNull _humanityTarget && isPlayer _humanityTarget && alive _humanityTarget
};
};
if((_humanityTarget getVariable ["DZE_display_name", false]) || (DZE_ForceNameTagsInTrader && isInTraderCity)) then {
_humanityName = if (alive _humanityTarget) then {name _humanityTarget; } else { "Dead Player";};
_string = format["<t %2 align='center' size='%3'>%1</t>",_humanityName,_color,_size];
_string = format["<t %2 align='center' size='%3'>%1</t>",(name _humanityTarget),_color,_size];
};
};
};
@@ -199,6 +192,7 @@ if (!isNull _humanityTarget && isPlayer _humanityTarget && alive _humanityTarget
// update gui if changed
if (dayz_humanitytarget != _string) then {
_targetControl = _display displayCtrl 1199;
_targetControl ctrlSetStructuredText (parseText _string);
dayz_humanitytarget = _string;
};

View File

@@ -549,7 +549,7 @@ if(isNil "dayz_zedsAttackVehicles") then {
};
// update objects
dayz_updateObjects = ["Plane","Car", "Helicopter", "Motorcycle", "Ship", "TentStorage", "VaultStorage","LockboxStorage","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","GunRack_DZ","WoodCrate_DZ","Scaffolding_DZ"];
dayz_updateObjects = ["Plane","Tank","Car", "Helicopter", "Motorcycle", "Ship", "TentStorage", "VaultStorage","LockboxStorage","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","GunRack_DZ","WoodCrate_DZ","Scaffolding_DZ"];
dayz_disallowedVault = ["TentStorage", "BuiltItems","ModularItems","DZE_Base_Object"];
dayz_reveal = ["AllVehicles","WeaponHolder","Land_A_tent","BuiltItems","ModularItems","DZE_Base_Object"];
dayz_allowedObjects = ["TentStorage","TentStorageDomed","TentStorageDomed2", "VaultStorageLocked", "Hedgehog_DZ", "Sandbag1_DZ","BagFenceRound_DZ","TrapBear","Fort_RazorWire","WoodGate_DZ","Land_HBarrier1_DZ","Land_HBarrier3_DZ","Land_HBarrier5_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","Plastic_Pole_EP1_DZ","Generator_DZ","StickFence_DZ","LightPole_DZ","FuelPump_DZ","DesertCamoNet_DZ","ForestCamoNet_DZ","DesertLargeCamoNet_DZ","ForestLargeCamoNet_DZ","SandNest_DZ","DeerStand_DZ","MetalPanel_DZ","WorkBench_DZ","WoodFloor_DZ","WoodLargeWall_DZ","WoodLargeWallDoor_DZ","WoodLargeWallWin_DZ","WoodSmallWall_DZ","WoodSmallWallWin_DZ","WoodSmallWallDoor_DZ","LockboxStorageLocked","WoodFloorHalf_DZ","WoodFloorQuarter_DZ","WoodStairs_DZ","WoodStairsSans_DZ","WoodStairsRails_DZ","WoodSmallWallThird_DZ","WoodLadder_DZ","Land_DZE_GarageWoodDoor","Land_DZE_LargeWoodDoor","Land_DZE_WoodDoor","Land_DZE_GarageWoodDoorLocked","Land_DZE_LargeWoodDoorLocked","Land_DZE_WoodDoorLocked","CinderWallHalf_DZ","CinderWall_DZ","CinderWallDoorway_DZ","CinderWallDoor_DZ","CinderWallDoorLocked_DZ","CinderWallSmallDoorway_DZ","CinderWallDoorSmall_DZ","CinderWallDoorSmallLocked_DZ","MetalFloor_DZ","WoodRamp_DZ","GunRack_DZ","FireBarrel_DZ","WoodCrate_DZ","Scaffolding_DZ"];
@@ -671,7 +671,6 @@ if(!isDedicated) then {
dayz_guiHumanity = -90000;
dayz_firstGroup = group player;
dayz_originalPlayer = player;
dayz_playerName = name player;
dayz_sourceBleeding = objNull;
dayz_clientPreload = false;
dayz_authed = false;

View File

@@ -2,7 +2,7 @@
Anti-Teleport - Created By Razor / Refactored By Alby & CopyPasted to Epoch by Skaronator
*/
private ["_log","_playerName","_playerUID","_al1veOnce","_debug","_lastpos","_lastheight","_lasttime","_lastVehicle","_v","_h","_topv","_toph","_curpos","_distance","_curtime","_difftime","_plant","_curheight","_speed","_topSpeed","_terrainHeight","_differenceCheck","_lastPosVar","_safetyVehicle","_curPos"];
private ["_log","_playerName","_playerUID","_al1veOnce","_debug","_lastpos","_lastheight","_lasttime","_lastVehicle","_v","_h","_topv","_toph","_curpos","_distance","_acceptableDistance","_curtime","_difftime","_plant","_curheight","_speed","_topSpeed","_terrainHeight","_differenceCheck","_lastPosVar","_safetyVehicle","_curPos"];
waitUntil {vehicle player == player};
@@ -34,7 +34,29 @@ waitUntil {vehicle player == player};
sleep 10;
};
_al1veOnce = false;
[] spawn {
_al1veOnce = false;
if (!_al1veOnce) then {
private [ "_loc", "_plant","_debug"];
_debug = getMarkerpos "respawn_west";
// check that plants libs are properly loaded
// thanks to Tansien the great
// run only once per character life
{
_plant = _x createVehicleLocal _debug;
sleep 0.1;
if (sizeOf _x == 0) exitWith {
PVDZE_atp = "Plants texture hack for type " + _x;
publicVariableServer "PVDZE_atp";
endMission "LOSER";
};
deleteVehicle _plant;
} count ["grass", "prunus", "picea", "fallentree", "phragmites", "acer", "amygdalusn", "Brush", "fiberplant", "amygdalusc", "boulder"];
diag_log format [ "%1: Plants libs tests done!", __FILE__];
};
_al1veOnce = true;
};
while {1 == 1} do {
_debug = getMarkerpos "respawn_west";
_lastpos = getPosATL (vehicle player);
@@ -53,71 +75,37 @@ while {1 == 1} do {
_distance = _lastpos distance _curpos;
_curtime = diag_ticktime;
_difftime = _curtime - _lasttime;
_acceptableDistance = if (_lastVehicle isKindOf "Plane") then { 15; } else { 10; };
if ((_distance > 10) || {(_difftime > 1)}) then {
if (!_al1veOnce) then {
private [ "_loc", "_plant"];
// check that plants libs are properly loaded
// thanks to Tansien the great
// run only once per character life
{
_plant = _x createVehicleLocal _debug;
sleep 0.1;
if (sizeOf _x == 0) exitWith {
PVDZE_atp = "Plants texture hack for type " + _x;
publicVariableServer "PVDZE_atp";
endMission "LOSER";
};
deleteVehicle _plant;
} count ["grass", "prunus", "picea", "fallentree", "phragmites", "acer", "amygdalusn", "Brush", "fiberplant", "amygdalusc", "boulder"];
diag_log format [ "%1: Plants libs tests done!", __FILE__];
};
_al1veOnce = true;
if ((_distance > _acceptableDistance) || {(_difftime > 1)}) then {
_curheight = (ATLtoASL _curpos) select 2;
_speed = _distance / _difftime;
_topSpeed = 10;
_topSpeed = if (_acceptableDistance == 15) then { 20; } else { 10; };
if (vehicle player != player) then {
_topSpeed = (getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed")) min 500;
if (_acceptableDistance == 15) then {
_topSpeed = (getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed")) max 500;
} else {
_topSpeed = (getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed")) min 500;
};
};
_terrainHeight = getTerrainHeightASL [_curpos select 0, _curpos select 1];
_safetyVehicle = vehicle player;
if (_lastVehicle == vehicle player) then {
if ((_speed > _topSpeed) && (alive player) && ((driver (vehicle player) == player) || (isNull (driver (vehicle player)))) && (_debug distance _lastpos > 3000) && !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1))) then {
(vehicle player) setposATL _lastpos;
//PVDZE_atp = [name player, dayz_characterID, _lastpos, _curPos, getPosATL player];
PVDZE_atp = format["TELEPORT REVERT for player UID#%1 from %2 to %3, %4 meters, now at %5", getPlayerUID player, _lastpos, _curPos, round(_lastpos distance _curpos), getPosATL player];
publicVariableServer "PVDZE_atp";
} else {
_lastpos = _curpos;
_lastheight = _curheight;
};
_lasttime = _curtime;
};
if (_safetyVehicle == vehicle player) then {
_lastVehicle = vehicle player;
};
};
/*if ((animationState player) != "HaloFreeFall_non") then {
// freefall detection:
_v = -((velocity player) select 2);
_h = (getPosATL player) select 2;
if (_v > 4 && _h > 3) then {
_topv = _topv max _v;
_toph = _toph max _h;
Dayz_freefall = [ time, _toph, _topv ];
}
else {
_topv = 0;
_toph = 0;
};
};*/
sleep 0.25;
};
sleep 0.1;

View File

@@ -169,8 +169,8 @@ link85[] = {75,57};
link86[] = {76,78};
link87[] = {77,76};
link88[] = {78,57};
globals[] = {25.000000,1,0,0,0,640,480,1,143,6316128,1,-406.882782,405.863464,1403.492432,827.797180,864,612,1};
window[] = {0,-1,-1,-1,-1,940,182,1671,182,1,882};
globals[] = {25.000000,1,0,0,0,640,480,1,143,6316128,1,-280.065002,277.754272,1315.142944,920.020874,864,612,1};
window[] = {0,-1,-1,-1,-1,966,208,1697,208,1,882};
*//*%FSM</HEAD>*/
class FSM
{
@@ -1198,6 +1198,7 @@ class FSM
"player allowDamage true;" \n
"player enableSimulation true;" \n
"0 cutText ["""", ""BLACK IN"",3];" \n
"dayz_playerName = name player;" \n
"" \n
"//Add core tools" \n
"player addWeapon ""Loot"";" \n

View File

@@ -5,8 +5,11 @@ _minutes = _this select 1;
_newObject = _this select 2;
_playerID = _this select 3;
_infected = _this select 4;
_victimName = _this select 5;
if (((count _this) >= 6) && {(typeName (_this select 5)) == "STRING"} && {(_this select 5) != ""}) then {
_victimName = _this select 5;
} else {
_victimName = if (alive _newObject) then {name _newObject;} else {"";};
};
_victim = _newObject;
_newObject setVariable ["bodyName", _victimName, true];

View File

@@ -146,7 +146,9 @@ eh_localCleanup = {
_unit removeAllEventHandlers "Local";
clearVehicleInit _unit;
deleteVehicle _unit;
deleteGroup _myGroupUnit;
if ((count (units _myGroupUnit) == 0) && (_myGroupUnit != grpNull)) then {
deleteGroup _myGroupUnit;
};
//_unit = nil;
// diag_log ("CLEANUP: DELETED A " + str(_type) );
};
@@ -622,6 +624,7 @@ dayz_recordLogin = {
dayz_perform_purge = {
if(!isNull(_this)) then {
_group = group _this;
_this removeAllMPEventHandlers "mpkilled";
_this removeAllMPEventHandlers "mphit";
_this removeAllMPEventHandlers "mprespawn";
@@ -634,7 +637,9 @@ dayz_perform_purge = {
_this removeAllEventHandlers "Local";
clearVehicleInit _this;
deleteVehicle _this;
deleteGroup (group _this);
if ((count (units _group) == 0) && (_group != grpNull)) then {
deleteGroup _group;
};
};
};
@@ -695,7 +700,7 @@ dayz_perform_purge_player = {
{
_holder addMagazineCargoGlobal [_x, 1];
} count _magazines;
_group = group _this;
_this removeAllMPEventHandlers "mpkilled";
_this removeAllMPEventHandlers "mphit";
_this removeAllMPEventHandlers "mprespawn";
@@ -708,13 +713,16 @@ dayz_perform_purge_player = {
_this removeAllEventHandlers "Local";
clearVehicleInit _this;
deleteVehicle _this;
deleteGroup (group _this);
if ((count (units _group) == 0) && (_group != grpNull)) then {
deleteGroup _group;
};
// _this = nil;
};
dayz_removePlayerOnDisconnect = {
if(!isNull(_this)) then {
_group = group _this;
_this removeAllMPEventHandlers "mphit";
deleteVehicle _this;
deleteGroup (group _this);
@@ -780,7 +788,7 @@ server_cleanupGroups = {
if(!isNil "DZE_DYN_GroupCleanup") exitWith { DZE_DYN_AntiStuck3rd = DZE_DYN_AntiStuck3rd + 1;};
DZE_DYN_GroupCleanup = true;
{
if (count units _x == 0) then {
if ((count (units _x) == 0) && (_x != grpNull)) then {
deleteGroup _x;
};
sleep 0.001;