This replaces 'player reveal object' with a function that acutal reveals the objects to the player. This fixes that objects were not usable after building.
This is just the first commit for the removel of all global set ObjectIDs and ObjectUIDs.
Also objects will no longer be send over the network. Only the netID will. The actual object can be resolved with the netID on the server.
This is a complete re-build of DayZ_SafeObjects. It was necessary to remove all the duplicated entries. DayZ_SafeObjects gets defined by multiple arrays now. This makes it much easier to update. Also every building with gear gets maintained now. Every single buildable epoch building is included within the maintain array and DayZ_SafeObjects.
Removing and Deconstructing Objects
- Now adds colored helpers to modular objects.
- Green: Refund one kit.
- Blue: Refund entire recipe of parts (multiple items).
- Red: No refund will be given. Either because the object is too damaged, or the refund feature is disabled.
- If the object has a door open while selected, no helper will display/float in the open door space.
- The gear panel will only open if a refund is available.
- If a lit fire barrel is removed, the flame will now be extinguished.
- If a plot pole is removed, plot boundary helpers will now be deleted.
- Refunds for non-modular objects are handled by their respective config settings.
- Removed non-lockable storage objects will now refund their contents.
- The corresponding storage kit will be refunded.
- If there is room outdoors, backpacks will be arranged in a neat circle close to the refund point.
- If the spawn point is too close to a building, backpacks will spawn at the player's location.
- Helpers will now appear on wrecked/ruined modular objects.
- Helper color arrays were changed to helper transparency values only, to make it easier (and safer) for server owners.
Upgrading, Downgrading, Maintaining and Packing Objects
- Now includes colored helper spheres for improved player experience.
- Reapply damage to upgraded/downgraded object if necessary.
Changes made by @Victor-the-Cleaner
This reverts all the last changes to server_playerSync and creates a new global variable for dayz_onBack. This should be the best way to save the gear correct and still get dayz_onBack if the player leaves the server. This change removes the constant sending of the whole player inventory over the network from force or regluar_save. It should no longer be needed since the server does the counting now.
dayz_zombieSpeak and player_alertZombies are called often together or should be. fnc_alertZombies groups them together and uses the given parameters. This streamlines and corrects the missing or incorrect calls from dayz_zombieSpeak or player_alertZombies.
Wrecks were not deleted after removal following this change @icomrade
e079381931 (diff-e057d99bdf425219ff82fc6220a85b86L154)
In object_upgradeBuilding playerNear was exiting without readding
removed magazines.
I moved deletion back client side in packTent and upgradeStorage for
now, because there is potential for duping via pulling gear out of the
old tent during the deletion delay. PVS can be delayed especially when
the server is under load, so it can take a few seconds for the server to
delete the object after sending the request. These two scripts should be
the only ones where that could be problematic. Packing and upgrading
tents should eventually be moved completely server side like safes.
Continuation of 8035df0
This is important to have on publish to identify cheaters who spam
create objects in the database or create objects with bad inventory.
- Renamed variables to backport to vanilla
- Removed % and & due to code filtering in publicvariableval.txt
Changes in modular_build.sqf were the same as player_build.sqf.
Tested with building, upgrading buildable/vehicle/tent, downgrading,
buying a vehicle, destroying tent and removing an object.
limits distance to object, as well as validating random auth key. added server_deleteObjDirect which is only for direct execution on the server, whereas server_deleteObj should be used for PVEH execution only
Using "Wait for the previous action to complete to perform another" is
more accurate in these cases, because dayz_actionInProgress could have
been set by any action, not necessarily the same one.
* Move dze_supplyCrate and vein wrecks to CfgLoot
Moves both the supply crates and vein wrecks to the CfgLoot tables so
admins can customize.
Also modifies the main add item statement to allow support for weapons,
magazines and backpack refunding/spawning instead of hard coded
magazines.
Should be backwards compatible with the old style (I did test).
* Remove unused _activatingPlayer variable
* Rework
There is no point in having two variables for the same purpose.
It is also pointless to keep an action count tally like r_action_count
was doing, since it is only ever checked for being 0 or 1. Any count
higher or lower than that is irrelevant.
I will make this change in vanilla too.
using PVEH PVDZE_obj_Remove. Wrecks only exist for the players currently
in the server when the parent object is destroyed. Passing the object
through the PVEH does not work.
Passing false as the second parameter to fnc_find_plots always returns
DZE_PlotPole select 0. In dze_buildchecks we want to use DZE_PlotPole
select 1 if the classname is a plot pole.
_distance is already defined as DZE_PlotPole select 0 in the other three
files, so it is redundant to redefine it as the return value.
In player_upgrade.sqf the check for DZE_permanentPlot is not necessary,
because FNC_check_access handles both cases.
Fn_check_access provides the same functionality and more.
Removed folders that only contained a single file to clean things up.
Also added epoch tag friendly code to vanilla player_updateGui for now.
Plot for Life and Plot Management work best together. They essentially
provide the same functionality. Both let you keep your plot after death
by using UID instead of CharacterID. Plot Management doesn't even have
an option to save characterID, so by default it is always keeping all
friends and the owner permanently until they are removed. The only major
difference between them is Plot For Life also adds permanent ownership
of built items on the plot, which is behavior most people expect. It
doesn't make sense to keep ownership of the plot after death but not the
other objects built on it. The other functionality it adds (take
ownership) can be toggled with a config variable.
It is rare that someone would want Plot For Life enabled, but Plot
Management disabled or vice versa. If they really want that they can
still do it manually, but consolidating them to a single config option
greatly simplifies things for everyone else.
I removed links to mod githubs because many changes have been made to
the 1.0.6 versions, so outdated information there will likely confuse
people. Authors are already credited in the README and change log.
In variables.sqf "DZ_storage_base" is now the parent class which
includes all tents and stashes. DZE_checkNearbyRadius variable is not
used (identical to DZE_PlotPole select 0).
The whole point of a global variable is you do not need to pass it.
DZE_plotManagement and DZE_plotmanagementAdmins are always defined and
do not change, so there is no need to pass them as parameters.
A Plot For Life also includes Precise Base Building by Mikeeeyy. Precise
base building has no variable to switch it on or off, I don't think it
should.
Seems to work well enough, this may conflict with the duplicate object
uid fix, it appears to spam my server rpt.
Tool breaking is disabled by default.
Also made all scripts use Epoch sledge, which is a different model from
vanilla sledge.
PK_DZ was a duplicate of the new PKM_DZ.
From
e69f8d5306
Moved dog files to the \dog\ folder and pzombie files to the \pzombie\
folder. Also removed some legacy files that are no longer used.
The actions\ and compile\ folders are fully up to date now