Remove plot take ownership feature #1811

See #1811
This commit is contained in:
ebaydayz
2017-01-31 15:22:23 -05:00
parent 0fd3034d54
commit 9afb74ff26
10 changed files with 5 additions and 167 deletions

View File

@@ -1,6 +1,6 @@
[NEW] Added config variable DZE_HaloSpawnHeight. @ebayShopper
[NEW] Added config variable DZE_ServerLogHits for logging source damage, weapon, ammo and distance to server RPT.
[NEW] Added M4SPR_DZE class which spawns with 30Rnd Stanag by default instead of 20Rnd. #1823 @AirwavesMan
[NEW] Added M4SPR_DZE and VSS_vintorez_DZE which spawn with larger magazines by default. #1823 #1890 @AirwavesMan
[NEW] Building upgrades now source parts from the player's backpack and main inventory. @icomrade
[NEW] Server owners can configure nutrition system effects with DZE_NutritionDivisor in configVariables.sqf @icomrade
[NEW] Added back DZE_doorManagementHarderPenalty config variable. Required wait between incorrect entries of manual door codes is multiplied by two each time, starting at five seconds. #1847 @oiad
@@ -53,11 +53,9 @@
[FIXED] Handling of boiled water bottles < 10 oz #1838 (Also removed the requirement to have an empty tin can to boil water) @icomrade @schwanzkopfhegel
[FIXED] Generator inventory not saving #1831 @icomrade @schwanzkopfhegel
[FIXED] Filling fuel barrels takes the correct amount from fuel tanks now (210 instead of 40 litres). #1834 @schwanzkopfhegel @oiad
[FIXED] All base objects on plot duplicating when using "take ownership" on plot pole. #1811 @BNG-Lance @Clanwarfare
[FIXED] Unable to sell some launchers like Javelin and Stinger which have the same classname for ammo and weapon. #1844 @ndavalos
[FIXED] Long search delay when filling water bottles, drinking from hands and drinking from empty cans is fixed on Chernarus, Namalsk and Napf. #1835 @schwanzkopfhegel
[FIXED] Players can not purchase a negative number of items anymore.
[FIXED] Removed antiwall glitch blocks for vanilla hospitals since Epoch uses DayZero hospitals. @jOoPs
[FIXED] Switching weapons properly interrupts autorun now. #1850 @DeVloek
[FIXED] Duplicate matchbox or knife error when lighting a fire or gutting with multiple matchboxes or knives on toolbelt. #1849 @DeVloek
[FIXED] RU crates having zero cargo capacity and wrong classname DZ_ExplosivesBoxRU in loot table. #1852 @oiad
@@ -83,4 +81,7 @@
[FIXED] Error in server_playerSetup that resulted in a <null> value for dayz_onBack in character_data inventory if player had no weapon on back. @ebayShopper
[FIXED] Doors and plots not getting cleaned up properly. See new MaintenanceObjects variable and explanation in HiveExt.ini. @icomrade
[REMOVED] Antiwall glitch blocks for vanilla hospitals since Epoch uses DayZero hospitals. @jOoPs
[REMOVED] "Take ownership" on plot pole due to it being unnecessary and causing base objects to duplicate. #1811 @BNG-Lance @Clanwarfare
[INFO] See Documents\CHANGE LOG 1.0.6.txt for the full list of 1.0.5.1 --> 1.0.6 changes.

View File

@@ -1,94 +0,0 @@
// Plot Take Ownership by RimBlock (http://epochmod.com/forum/index.php?/user/12612-rimblock/)
//
// This script allows Plot pole owners to take ownership of all allowed buildables on their plot except lockable storage and tents.
//
// Note:
// This code calls server_publishFullObject which also saves damage, inventory and fuel. Hitpoints are assumed to be empty as this is for buildables only.
private ["_distance","_plotpole","_hasAccess","_findNearestObjects","_classname","_objectID","_objectUID","_position",
"_worldspace","_object","_key","_invW","_invM","_invB","_itemsExist","_charID","_inventory","_changecount"];
_distance = (DZE_PlotPole select 0) + 1;
_plotpole = nearestobject [(vehicle player),"Plastic_Pole_EP1_DZ"];
_changecount = 0;
// Check is owner of the plot pole.
_hasAccess = [player, _plotpole] call FNC_check_access;
_itemsExist = false;
if (_hasAccess select 0) then {
_findNearestObjects = (position _plotpole) nearEntities _distance;
{
_object = _x;
_classname = typeOf _object;
if (_classname in DZE_plotTakeOwnershipItems) then {
_hasAccess = [player, _object] call FNC_check_access;
diag_log text "Plot Take Ownership: Object in DZE_plotTakeOwnershipItems";
if !(_hasAccess select 0) then{
diag_log text "Plot Take Ownership: Is not already the owner";
_objectID = _object getVariable ["ObjectID","0"];
_objectUID = _object getVariable ["ObjectUID","0"];
sleep 0.01;
PVDZ_obj_Destroy = [_objectID, _objectUID, player];
publicVariableServer "PVDZ_obj_Destroy";
sleep 0.01;
_object setvariable["ObjectID", "0"];
if (_classname in DZE_DoorsLocked) then {
_charID = _object getVariable ["characterID",dayz_characterID];
} else {
_charID = dayz_characterID;
};
_position = getPosATL _object;
_vector = [(vectorDir _object),(vectorUp _object)];
_worldspace = [round(direction _object),_position,dayz_playerUID,_vector];
_invW = getWeaponCargo _object;
{
if ((count _x) != 0) then {_itemsExist = true;};
} foreach _invW;
_invM = getMagazineCargo _object;
if !(_itemsExist) then {
{
if ((count _x) != 0) then {_itemsExist = true;};
}foreach _invM;
};
_invB = getBackpackCargo _object;
if !(_itemsExist) then {
{
if ((count _x) != 0) then {_itemsExist = true;};
} foreach _invB;
};
if (_itemsExist) then {
_inventory = format["[%1,%2,%3]", _invW, _invM, _invB];
} else {
_inventory = "[]";
};
_hitpoints = '[]';
_damage = damage _object;
_fuel = fuel _object;
PVDZE_fullobj_Publish = [_charID,_object,_worldspace,_classname,_inventory,_hitpoints,_damage,_fuel];
publicVariableServer "PVDZE_fullobj_Publish";
_object setVariable ["ownerPUID",dayz_playerUID];
_changecount = _changecount + 1;
};
};
} count _findNearestObjects;
format[localize "STR_EPOCH_APLOTFORLIFE_TAKE_OWNERSHIP",_changecount] call dayz_rollingMessages;
};

View File

@@ -619,11 +619,6 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur
if (s_player_plot_boundary < 0 && (_allowed or (_hasAccess select 1))) then {
s_player_plot_boundary = player addAction [localize "STR_EPOCH_PLOTMANAGEMENT_SHOW_BOUNDARY", "\z\addons\dayz_code\actions\plotManagement\plotToggleMarkers.sqf", "", 1, false];
};
if (DZE_permanentPlot && DZE_PlotOwnership) then {
if (s_player_plot_take_ownership < 0 && (_hasAccess select 0)) then {
s_player_plot_take_ownership = player addAction [localize "STR_EPOCH_APLOTFORLIFE_TAKE_PLOT_OWNERSHIP", "\z\addons\dayz_code\actions\plot_take_ownership.sqf", "", 1, false];
};
};
} else {
player removeAction s_player_plotManagement;
s_player_plotManagement = -1;
@@ -635,8 +630,6 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur
s_player_maintain_area_preview = -1;
player removeAction s_player_plot_boundary;
s_player_plot_boundary = -1;
player removeAction s_player_plot_take_ownership;
s_player_plot_take_ownership = -1;
};
if (DZE_HeliLift) then {
@@ -1025,8 +1018,6 @@ if (!isNull _cursorTarget && !_inVehicle && !_isPZombie && (player distance _cur
//Engineering
player removeAction s_player_plot_boundary;
s_player_plot_boundary = -1;
player removeAction s_player_plot_take_ownership;
s_player_plot_take_ownership = -1;
player removeAction s_player_plotManagement;
s_player_plotManagement = -1;
{dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];

View File

@@ -76,7 +76,6 @@ DZE_permanentPlot = true; // Plot ownership saves after death. Enables Plot for
DZE_plotManagementMustBeClose = false; //Players must be within 10m of pole to be added as a plot friend.
DZE_PlotManagementAdmins = []; //Array of admin PlayerUIDs. UIDs in this list are able to access every pole's management menu and delete or build any buildable with a pole nearby.
DZE_MaxPlotFriends = 10; //Max friends allowed on a plot. There is no character limit in the inventory field of the database, but lower values limit the max global setVariable size to improve performance.
DZE_PlotOwnership = true; //Allow plot owner to take ownership of buildables (except lockables) on the plot. Useful for servers that allow base capturing, so the new owner can modify, remove and upgrade existing structures.
DZE_maintainCurrencyRate = 100; //The currency rate of what maintaining an item will be, for instance: at 100, 10 items will have a worth of 1000 (1 10oz gold or 1k coins) see actions/maintain_area.sqf for more examples.
// Snap Build and Build Vectors

View File

@@ -100,7 +100,6 @@ if (isServer) then {
"PVDZE_plr_TradeMenu" addPublicVariableEventHandler {(_this select 1) spawn server_traders};
"PVDZE_plr_DeathB" addPublicVariableEventHandler {(_this select 1) spawn server_deaths};
"PVDZE_handleSafeGear" addPublicVariableEventHandler {(_this select 1) spawn server_handleSafeGear};
"PVDZE_fullobj_Publish" addPublicVariableEventHandler {(_this select 1) call server_publishFullObject}; // PlotForLife take base ownership
if (dayz_groupSystem) then {
"PVDZ_Server_UpdateGroup" addPublicVariableEventHandler {(_this select 1) spawn server_updateGroup};
};

View File

@@ -250,7 +250,6 @@ dayz_resetSelfActions = {
s_player_toggleSnapSelectPoint = [];
snapActions = -1;
s_player_plot_boundary = -1;
s_player_plot_take_ownership = -1;
s_player_plotManagement = -1;
s_player_toggleDegree = -1;
s_player_toggleDegrees=[];
@@ -533,9 +532,6 @@ DZE_snapExtraRange = 0;
DZE_tradeVehicle = ["trade_any_vehicle","trade_any_vehicle_free","trade_any_vehicle_old","trade_any_bicycle","trade_any_bicycle_old","trade_any_boat","trade_any_boat_old"];
DZE_tradeVehicleKeyless = ["trade_any_bicycle","trade_any_bicycle_old","trade_any_vehicle_free"];
DZE_tradeObject = DZE_tradeVehicle + ["trade_backpacks"];
if (isNil "DZE_plotOwnershipExclusions") then {
DZE_plotTakeOwnershipItems = DayZ_SafeObjects - (DZE_LockableStorage + ["Plastic_Pole_EP1_DZ","DZ_storage_base"]);
};
DZE_GearCheckBypass = false;
isInTraderCity = false;
inTraderCity = "Unknown Trader";

View File

@@ -15454,17 +15454,6 @@
<English>Some change is hidden in the overflow slots of your gear.</English>
</Key>
<!-- A PLOT FOR LIFE BELOW -->
<Key ID="STR_EPOCH_APLOTFORLIFE_TAKE_PLOT_OWNERSHIP">
<English>Take plot items ownership</English>
<German>Besitz aller Objekte übernehmen</German>
</Key>
<Key ID="STR_EPOCH_APLOTFORLIFE_TAKE_OWNERSHIP">
<English>Take Ownership: %1 objects ownership changed.</English>
<German>Besitz übernehmen: %1 Objekte haben Besitzer gewechselt.</German>
</Key>
<!-- PLOT MANAGEMENT BELOW -->
<Key ID="STR_EPOCH_PLOTMANAGEMENT_MAINTAIN_NONE">

View File

@@ -1,42 +0,0 @@
private ["_class","_inventory","_hitpoints","_damage","_fuel","_uid","_charID","_object","_worldspace","_key","_allowed"];
#include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"
_charID = _this select 0;
_object = _this select 1;
_worldspace = _this select 2;
_class = _this select 3;
_inventory = _this select 4;
_hitpoints = _this select 5;
_damage = _this select 6;
_fuel = _this select 7;
_allowed = [_object, "Server"] call check_publishobject;
if (!_allowed) exitWith { deleteVehicle _object; };
#ifdef OBJECT_DEBUG
diag_log ("PUBLISH: Attempt " + str(_object));
#endif
//get UID
_uid = _worldspace call dayz_objectUID2;
//Send request
_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, _damage, _charID, _worldspace call AN_fnc_formatWorldspace, _inventory, _hitpoints, _fuel,_uid]; // Precise Base Building 1.0.5
//diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;
_object setVariable ["lastUpdate",time];
_object setVariable ["ObjectUID", _uid,true];
// _object setVariable ["CharacterID",_charID,true];
if (DZE_GodModeBase) then {
_object addEventHandler ["HandleDamage", {false}];
}else{
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
};
// Test disabling simulation server side on buildables only.
_object enableSimulation false;
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
diag_log ("PUBLISH: Created " + (_class) + " with ID " + _uid);

View File

@@ -19,7 +19,6 @@ server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_se
server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";
server_playerDied = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDied.sqf";
server_publishObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishObject.sqf"; //Creates the object in DB
server_publishFullObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishFullObject.sqf";
server_deleteObj = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_deleteObj.sqf"; //Removes the object from the DB
server_playerSync = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSync.sqf";
zombie_findOwner = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\zombie_findOwner.sqf";

View File

@@ -1,3 +1,3 @@
//new
5 !=(remExField|remExFP) !=(PVCDZ_obj_GutBody|drn_AskServerDynamicWeatherEventArgs|BIS_effects_gepv|achievement) !=PVDZ_(drg_(RaDrag|RaLW|RLact)|getTickTime|hlt_Bleed|obj_(Delete|Publish|RoadFlare|Destroy|Fire)|veh_Save|veh_SF) !=PVDZ_(plr_(Death|Login[12]|LoginRecord|Save|SwitchMove)|Server(_Simulation|StoreVar)|sec_atp) !=PVDZ_(playerMedicalSync|object_replace|groupInvite) !=PVDZ_(send(|Unconscious)) !=PVDZ_Server_(buildLock|LogIt|UpdateGroup) !=PVDZ_Server_process(Code|SetAccessCode) !=PVDZ_objgather_(Delete|Knockdown) !=PVDZE_(obj_(Delete|Publish|Swap|Trade)|fullobj_Publish|maintainArea|veh_(Lock|Publish2|Upgrade)|handleSafeGear|plr_(DeathB|FriendRQ|TradeMenu))
5 !=(remExField|remExFP) !=(PVCDZ_obj_GutBody|drn_AskServerDynamicWeatherEventArgs|BIS_effects_gepv|achievement) !=PVDZ_(drg_(RaDrag|RaLW|RLact)|getTickTime|hlt_Bleed|obj_(Delete|Publish|RoadFlare|Destroy|Fire)|veh_Save|veh_SF) !=PVDZ_(plr_(Death|Login[12]|LoginRecord|Save|SwitchMove)|Server(_Simulation|StoreVar)|sec_atp) !=PVDZ_(playerMedicalSync|object_replace|groupInvite) !=PVDZ_(send(|Unconscious)) !=PVDZ_Server_(buildLock|LogIt|UpdateGroup) !=PVDZ_Server_process(Code|SetAccessCode) !=PVDZ_objgather_(Delete|Knockdown) !=PVDZE_(obj_(Delete|Publish|Swap|Trade)|maintainArea|veh_(Lock|Publish2|Upgrade)|handleSafeGear|plr_(DeathB|FriendRQ|TradeMenu))
1=BIS_effects_gepv|PVDZ_(drg_RaDrag|hlt_Bleed|obj_Delete|obj_Destroy|obj_Publish|plr_Death|plr_LoginRecord|sec_atp|send|veh_SF)