Prevent issues caused by respawn_west marker being moved

Vanilla commit:

39bcedb4b6
This commit is contained in:
ebaydayz
2016-12-05 14:37:28 -05:00
parent 2db6692643
commit 5058308f00
11 changed files with 20 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
//private ["_class","_position","_dir","_group","_oldUnit","_newUnit","_currentWpn","_muzzles","_currentAnim","_playerUID","_weapons","_magazines","_primweapon","_secweapon","_newBackpackType","_backpackWpn","_backpackMag","_backpackWpnTypes","_backpackWpnQtys","_countr","_backpackmagTypes","_backpackmagQtys","_display","_createSafePos","_wpnType","_ismelee","_rndx","_rndy"]; //private ["_class","_position","_dir","_group","_oldUnit","_newUnit","_currentWpn","_muzzles","_currentAnim","_playerUID","_weapons","_magazines","_primweapon","_secweapon","_newBackpackType","_backpackWpn","_backpackMag","_backpackWpnTypes","_backpackWpnQtys","_countr","_backpackmagTypes","_backpackmagQtys","_display","_wpnType","_ismelee","_rndx","_rndy"];
private ["_weapons","_backpackWpn","_backpackMag","_currentWpn","_isWeapon","_backpackWpnTypes","_backpackWpnQtys","_countr","_class","_position","_dir","_currentAnim","_playerUID","_countMags","_magazines","_primweapon","_secweapon","_newBackpackType","_muzzles","_oldUnit","_group","_newUnit","_oldGroup","_idc","_display","_switchUnit","_leader"]; private ["_weapons","_backpackWpn","_backpackMag","_currentWpn","_isWeapon","_backpackWpnTypes","_backpackWpnQtys","_countr","_class","_position","_dir","_currentAnim","_playerUID","_countMags","_magazines","_primweapon","_secweapon","_newBackpackType","_muzzles","_oldUnit","_group","_newUnit","_oldGroup","_idc","_display","_switchUnit","_leader"];
_class = _this; _class = _this;
if (gear_done) then {disableUserInput true;disableUserInput true;}; if (gear_done) then {disableUserInput true;disableUserInput true;};
@@ -74,7 +74,7 @@ _leader = (player == leader _oldGroup);
//Create New Character //Create New Character
//[player] joinSilent grpNull; //[player] joinSilent grpNull;
_group = createGroup west; _group = createGroup west;
_newUnit = _group createUnit [_class,getMarkerPos "respawn_west",[],0,"NONE"]; _newUnit = _group createUnit [_class,respawn_west_original,[],0,"NONE"];
_newUnit setDir _dir; _newUnit setDir _dir;
{_newUnit removeMagazine _x;} count magazines _newUnit; {_newUnit removeMagazine _x;} count magazines _newUnit;
removeAllWeapons _newUnit; removeAllWeapons _newUnit;
@@ -110,12 +110,10 @@ _switchUnit = {
setPlayable _newUnit; setPlayable _newUnit;
selectPlayer _newUnit; selectPlayer _newUnit;
//Switch the units //Switch the units
//_createSafePos = [(getMarkerPos "respawn_west"), 2, 100, 0, 1, 20, 0] call BIS_fnc_findSafePos;
_createSafePos = getMarkerPos "respawn_west";
_rndx = floor(random 100); _rndx = floor(random 100);
_rndy = floor(random 100); _rndy = floor(random 100);
_oldUnit setPosATL [(_createSafePos select 0) + _rndx, (_createSafePos select 1) + _rndy, 0]; _oldUnit setPosATL [(respawn_west_original select 0) + _rndx, (respawn_west_original select 1) + _rndy, 0];
if (surfaceIsWater _createSafePos) then { if (surfaceIsWater respawn_west_original) then {
//Prevent swimming in ground glitch if respawn is in water //Prevent swimming in ground glitch if respawn is in water
_newUnit setPosATL [_position select 0,_position select 1,(_position select 2)+.1]; _newUnit setPosATL [_position select 0,_position select 1,(_position select 2)+.1];
} else { } else {

View File

@@ -5,7 +5,7 @@ _showText = _this select 1;
_enterORleave = _this select 2; _enterORleave = _this select 2;
// Do not show cutText when player changes clothes in trader area // Do not show cutText when player changes clothes in trader area
if ((dayz_lastClothesChange + 3 > diag_tickTime) or (player distance getMarkerPos "respawn_west" < 15)) then { if ((dayz_lastClothesChange + 3 > diag_tickTime) or (player distance respawn_west_original < 100)) then {
_showText = false; _showText = false;
}; };

View File

@@ -492,6 +492,8 @@ switch (dayz_presets) do {
}; };
}; };
respawn_west_original = getMarkerPos "respawn_west"; //Prevent problems caused by cheaters moving respawn_west marker with setMarkerPos or deleteMarker
switch (toLower worldName) do { switch (toLower worldName) do {
case "napf"; case "napf";
case "sauerland" : {dayz_minpos = -1000; dayz_maxpos = 26000;}; case "sauerland" : {dayz_minpos = -1000; dayz_maxpos = 26000;};

View File

@@ -3,7 +3,6 @@ disableSerialization;
_timeOut = 0; _timeOut = 0;
_messTimer = 0; _messTimer = 0;
_lastTemp = dayz_temperatur; _lastTemp = dayz_temperatur;
_debug = getMarkerpos "respawn_west";
_isPZombie = player isKindOf "PZombie_VB"; _isPZombie = player isKindOf "PZombie_VB";
_radTimer = 0; _radTimer = 0;
@@ -48,7 +47,7 @@ while {1 == 1} do {
//reset position //reset position
_randomSpot = true; _randomSpot = true;
_tempPos = getPosATL player; _tempPos = getPosATL player;
_distance = _debug distance _tempPos; _distance = respawn_west_original distance _tempPos;
if (_distance < 2000) then { if (_distance < 2000) then {
_randomSpot = false; _randomSpot = false;
}; };

View File

@@ -7,7 +7,7 @@
sched_antiTP_init = { sched_antiTP_init = {
if (dayz_antihack == 1) then { diag_log [ diag_ticktime, __FILE__, "Anti Teleport inited"]; }; if (dayz_antihack == 1) then { diag_log [ diag_ticktime, __FILE__, "Anti Teleport inited"]; };
[dayz_antihack == 1, [], 0, 0, objNull] [dayz_antihack == 1, [], 0, 0, objNull, respawn_west_original]
}; };
sched_antiTP = { sched_antiTP = {
@@ -19,6 +19,7 @@ sched_antiTP = {
_lastheight = _this select 2; _lastheight = _this select 2;
_lasttime = _this select 3; _lasttime = _this select 3;
_lastVehicle = _this select 4; _lastVehicle = _this select 4;
_debug = _this select 5;
if (((_antihack) and {(typeName player == "OBJECT")}) AND {((player in playableUnits) AND {(alive player)})}) then { if (((_antihack) and {(typeName player == "OBJECT")}) AND {((player in playableUnits) AND {(alive player)})}) then {
if (count _lastpos != 3) then { if (count _lastpos != 3) then {
@@ -31,7 +32,6 @@ sched_antiTP = {
_distance = _lastpos distance _curpos; _distance = _lastpos distance _curpos;
_curtime = diag_ticktime; _curtime = diag_ticktime;
_difftime = _curtime - _lasttime; _difftime = _curtime - _lasttime;
_debug = getMarkerpos "respawn_west";
if ((_distance > 10) OR {(_difftime > 1)}) then { if ((_distance > 10) OR {(_difftime > 1)}) then {
_curheight = (ATLtoASL _curpos) select 2; _curheight = (ATLtoASL _curpos) select 2;

View File

@@ -60,7 +60,7 @@ if (_characterID != "?") then {
*/ */
//Punish combat log //Punish combat log
if (_inCombat && _playerPos distance (getMarkerPos "respawn_west") > 1500) then { if (_inCombat && _playerPos distance respawn_west_original > 1500) then {
// Moved setVariables to server_playerSync since they are high priority // Moved setVariables to server_playerSync since they are high priority
// Messages are low priority. Player object not needed // Messages are low priority. Player object not needed
diag_log format["PLAYER COMBAT LOGGED: %1(%3) at location %2",_playerName,_playerPos,_playerUID]; diag_log format["PLAYER COMBAT LOGGED: %1(%3) at location %2",_playerName,_playerPos,_playerUID];

View File

@@ -1,4 +1,4 @@
private ["_characterID","_playerObj","_spawnSelection","_inventory","_playerID","_dummy","_worldspace","_state","_doLoop","_key","_primary","_medical","_stats","_humanity","_randomSpot","_position","_debug","_distance","_fractures","_score","_findSpot","_mkr","_j","_isIsland","_w","_clientID","_lastInstance"]; private ["_characterID","_playerObj","_spawnSelection","_inventory","_playerID","_dummy","_worldspace","_state","_doLoop","_key","_primary","_medical","_stats","_humanity","_randomSpot","_position","_distance","_fractures","_score","_findSpot","_mkr","_j","_isIsland","_w","_clientID","_lastInstance"];
_characterID = _this select 0; _characterID = _this select 0;
_playerObj = _this select 1; _playerObj = _this select 1;
@@ -69,10 +69,9 @@ if (count _Achievements == 0) then {_Achievements = [0,0,0,0,0,0,0,0,0,0,0,0,0,0
if (count _worldspace > 0) then { if (count _worldspace > 0) then {
_position = _worldspace select 1; _position = _worldspace select 1;
if (count _position < 3) then {_randomSpot = true;}; //prevent debug world! if (count _position < 3) exitWith {_randomSpot = true;}; //prevent debug world!
_debug = getMarkerpos "respawn_west"; _distance = respawn_west_original distance _position;
_distance = _debug distance _position;
if (_distance < 2000) then {_randomSpot = true;}; if (_distance < 2000) then {_randomSpot = true;};
_distance = [0,0,0] distance _position; _distance = [0,0,0] distance _position;

View File

@@ -15,7 +15,7 @@ _isInVehicle = vehicle _character != _character;
_timeSince = 0; _timeSince = 0;
_humanity = 0; _humanity = 0;
_name = if (alive _character) then {name _character} else {"Dead Player"}; _name = if (alive _character) then {name _character} else {"Dead Player"};
_distance = (getMarkerpos "respawn_west" distance _charPos) < 1500; _distance = (respawn_west_original distance _charPos) < 1500;
if (_character isKindOf "Animal") exitWith { if (_character isKindOf "Animal") exitWith {
diag_log ("ERROR: Cannot Sync Character " + _name + " is an Animal class"); diag_log ("ERROR: Cannot Sync Character " + _name + " is an Animal class");

View File

@@ -44,13 +44,13 @@ sched_corpses = {
if (_x getVariable["bodyName",""] != "") then { if (_x getVariable["bodyName",""] != "") then {
_deathTime = _x getVariable ["sched_co_deathTime", -1]; _deathTime = _x getVariable ["sched_co_deathTime", -1];
if (_deathTime == -1) then { if (_deathTime == -1) then {
_deathPos = _x getVariable [ "deathPos", getMarkerPos "respawn_west" ]; _deathPos = _x getVariable ["deathPos",respawn_west_original];
_cpos = getPosATL _x; /*_cpos = getPosATL _x;
// forbid a move further than 50 meters, or burried body (antihack) // forbid a move further than 50 meters, or burried body (antihack)
if (_deathPos distance _cpos > 50 or _deathPos select 2 < -0.2) then { if (_deathPos distance _cpos > 50 or _deathPos select 2 < -0.2) then {
diag_log [ __FILE__, "Corpse should have been moved! CID#",(_x getVariable["characterID", "?"]),"from:", _cpos, "to:", _deathPos ]; diag_log [ __FILE__, "Corpse should have been moved! CID#",(_x getVariable["characterID", "?"]),"from:", _cpos, "to:", _deathPos ];
//_x setPosATL _deathPos; //_x setPosATL _deathPos;
}; };*/
_deathTime = diag_tickTime; _deathTime = diag_tickTime;
_x setVariable ["sched_co_deathTime", _deathTime]; _x setVariable ["sched_co_deathTime", _deathTime];
_x setVariable ["sched_co_fliesAdded", true]; _x setVariable ["sched_co_fliesAdded", true];

View File

@@ -503,8 +503,7 @@ if (_hiveLoaded) then {
[] spawn server_spawnEvents; [] spawn server_spawnEvents;
/* //Causes issues with changing clothes /* //Causes issues with changing clothes
_debugMarkerPosition = getMarkerPos "respawn_west"; _debugMarkerPosition = [(respawn_west_original select 0),(respawn_west_original select 1),1];
_debugMarkerPosition = [(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1];
_vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"]; _vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"];
_vehicle_0 setPos _debugMarkerPosition; _vehicle_0 setPos _debugMarkerPosition;
_vehicle_0 setVariable ["ObjectID","1",true]; _vehicle_0 setVariable ["ObjectID","1",true];

View File

@@ -12,7 +12,7 @@
5 createDialog !="_region = createDialog \"RscDisplaySpawnSelecter\";" !="_gender = createDialog 'RscDisplayGenderSelect';" !="_dialog = createDialog \"bloodTest\";" !="createDialog 'RscDisplayCraftingMenu';" !="createDialog \"DAYZ_PADLOCK\";" !="createDialog \"horde_journal_front_cover\";" !="createDialog 'horde_journal_front_cover';" !="createDialog 'horde_journal_pages_headshots';" !="createDialog 'horde_journal_pages_murders';" !="createDialog 'horde_journal_pages_journal_humanity';" !="createDialog 'horde_journal_pages_zombies';" !="createDialog 'horde_journal_pages_bandits';" !="createDialog 'horde_journal_pages_humanity_art';" !"Z_ResetContainer = true;\ncreateDialog \"AdvancedTrading\";" !"createDialog \"DoorManagement\";\ncall DoorNearbyHumans;" !="createDialog \"ComboLockUI\";" !"createdialog \"PlotManagement\";\ncall PlotNearbyHumans;" !"_trader_data = (_this select 3);\n\n_dialog = createdialog \"TraderDialog\";" !="_ok = createdialog \"SafeKeyPad\";" !="_ok = createdialog \"KeypadUI\";" !"EpochDeathBoardLoad = {\ncreatedialog \"EpochDeathBoardDialog\";" !="if(DZE_doorManagement) then {createdialog \"DoorAccess\";} else {createdialog \"ComboLockUI\";};" !"\ndisableSerialization;\ncreateDialog \"DZ_GroupDialog\";" 5 createDialog !="_region = createDialog \"RscDisplaySpawnSelecter\";" !="_gender = createDialog 'RscDisplayGenderSelect';" !="_dialog = createDialog \"bloodTest\";" !="createDialog 'RscDisplayCraftingMenu';" !="createDialog \"DAYZ_PADLOCK\";" !="createDialog \"horde_journal_front_cover\";" !="createDialog 'horde_journal_front_cover';" !="createDialog 'horde_journal_pages_headshots';" !="createDialog 'horde_journal_pages_murders';" !="createDialog 'horde_journal_pages_journal_humanity';" !="createDialog 'horde_journal_pages_zombies';" !="createDialog 'horde_journal_pages_bandits';" !="createDialog 'horde_journal_pages_humanity_art';" !"Z_ResetContainer = true;\ncreateDialog \"AdvancedTrading\";" !"createDialog \"DoorManagement\";\ncall DoorNearbyHumans;" !="createDialog \"ComboLockUI\";" !"createdialog \"PlotManagement\";\ncall PlotNearbyHumans;" !"_trader_data = (_this select 3);\n\n_dialog = createdialog \"TraderDialog\";" !="_ok = createdialog \"SafeKeyPad\";" !="_ok = createdialog \"KeypadUI\";" !"EpochDeathBoardLoad = {\ncreatedialog \"EpochDeathBoardDialog\";" !="if(DZE_doorManagement) then {createdialog \"DoorAccess\";} else {createdialog \"ComboLockUI\";};" !"\ndisableSerialization;\ncreateDialog \"DZ_GroupDialog\";"
5 createDisplay 5 createDisplay
5 createMarker !"\"createMarkerLocal\",\n\"setMarkerPosLocal\"," !="rcreateMarkerLocal = 'createMarkerLocal'" !"rcreateMarkerLocalcode" !"\"createMarkerLocal\", \"createSimpleTask\"," !"if (isnil 'BIS_GITA_fnc_createMarkers' || false) then {" !"_marker = createMarkerLocal [format[\"groupMember" !="_marker = createMarkerLocal [\"MyBody\",_pos];" 5 createMarker !"\"createMarkerLocal\",\n\"setMarkerPosLocal\"," !="rcreateMarkerLocal = 'createMarkerLocal'" !"rcreateMarkerLocalcode" !"\"createMarkerLocal\", \"createSimpleTask\"," !"if (isnil 'BIS_GITA_fnc_createMarkers' || false) then {" !"_marker = createMarkerLocal [format[\"groupMember" !="_marker = createMarkerLocal [\"MyBody\",_pos];"
5 createUnit !="_newUnit = _group createUnit [_class,getMarkerPos \"respawn_west\",[],0,\"NONE\"];" !="BIS_MPF_logic = BIS_MPF_dummygroup createUnit [\"Logic\", [1000,10,0], [], 0, \"NONE\"];" 5 createUnit !="_newUnit = _group createUnit [_class,respawn_west_original,[],0,\"NONE\"];" !="BIS_MPF_logic = BIS_MPF_dummygroup createUnit [\"Logic\", [1000,10,0], [], 0, \"NONE\"];"
5 createVehicleLocal !="_object = (_x select 1) createVehicleLocal [0,0,0];" !"_o = _type createVehicleLocal _pos;\n_o setDir _dir;" !="_Crater= \"CraterLong\" createvehiclelocal [_pos select 0, _pos select 1, 0];" !="_plant = _x createVehicleLocal (getMarkerPos \"center\");" !="_point = \"Logic\" createVehicleLocal getPosATL _unit;" !="_obj = _class createVehicleLocal _new;" !="_obj = _class createVehicleLocal (getMarkerpos \"respawn_west\");" !" = \"#lightpoint\" createVehicleLocal " !" = \"#particlesource\" createVehicleLocal " !="_object = _ghost createVehicleLocal getMarkerpos \"respawn_west\";" !="_cursorTarget = _upgrade createVehicleLocal getMarkerpos \"respawn_west\";" !="_sign = \"Sign_arrow_down_large_EP1\" createVehicleLocal [0,0,0];" !="_obj = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !="_obj = _model createVehicleLocal [0,0,0];" !="_objectSnapGizmo = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !"_object = _type createVehicleLocal [0,0,0];\n_object setDir (_x select 2);" 5 createVehicleLocal !="_object = (_x select 1) createVehicleLocal [0,0,0];" !"_o = _type createVehicleLocal _pos;\n_o setDir _dir;" !="_Crater= \"CraterLong\" createvehiclelocal [_pos select 0, _pos select 1, 0];" !="_plant = _x createVehicleLocal (getMarkerPos \"center\");" !="_point = \"Logic\" createVehicleLocal getPosATL _unit;" !="_obj = _class createVehicleLocal _new;" !="_obj = _class createVehicleLocal (getMarkerpos \"respawn_west\");" !" = \"#lightpoint\" createVehicleLocal " !" = \"#particlesource\" createVehicleLocal " !="_object = _ghost createVehicleLocal getMarkerpos \"respawn_west\";" !="_cursorTarget = _upgrade createVehicleLocal getMarkerpos \"respawn_west\";" !="_sign = \"Sign_arrow_down_large_EP1\" createVehicleLocal [0,0,0];" !="_obj = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !="_obj = _model createVehicleLocal [0,0,0];" !="_objectSnapGizmo = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !"_object = _type createVehicleLocal [0,0,0];\n_object setDir (_x select 2);"
5 ctrlAddEventHandler 5 ctrlAddEventHandler
5 ctrlRemoveAllEventHandlers 5 ctrlRemoveAllEventHandlers