The protective box is not needed on Chernarus.
If other maps need it we are better off spawning a permanent box around
the debug area once, instead of constantly creating new boxes every time
a player logs in.
Achievements are saved in the state field, so we don't have room to save
friendlies there anymore. DZE_FriendlySaving is removed for now. I will
add it back later with a save to player profile instead.
The dayz_players variable is not used for anything. There were several
other unused variables in server_playerLogin.sqf.
MPHit does not always fire when a player is killed:
https://community.bistudio.com/wiki/ArmA_2:_Event_Handlers#MPHit
Using either MPHit or MPKilled is not a good idea here. There is already
a local 'killed' event handler which fires on player death
(player_death.sqf). That script sends a PV (priority message) to the
server which triggers server_playerDied. That means fnc_plyrHit needed
to finish sending its data to the server via public setVariables
(non-priority messages) before server_playerDied executed. Triggering
both these scripts at the same time was a bad idea.
Instead of sending the data to the server via setVariable I just
included it in PVDZ_plr_Death. This also lets us pass extra information
from the damage handler like ammo type, cause of death, etc. Still need
to test, but it should be more reliable and performant than
fnc_playerHit called from MPHit or MPKilled.
DayzGearSave is no longer used. I will submit a pull to remove it from
vanilla too.
Player_dumpBackpack is not a good solution to stifle duping. Players can
not see friends backpacks dropped on the ground. That is a problem when
they want to trade backpacks. They don't understand why their friend
can't see it. Also players can still get the "gear" scroll action if
they look where the hidden backpack is.
If it is still a problem after all the updates to current dayz code then
we should submit a pull request with a better solution to vanilla.
It makes no sense to rename the identical DayZ PVs to have an E in their
name. I don't see any good reason it was done in the first place. All it
accomplishes is breaking script compatibility between the two mods and
requiring different publicvariable.txt filters. The only time it makes
sense is for custom Epoch variables that aren't used in vanilla.
All admins have to do to update custom scripts is swap the names
according to the change log.
Note I've submitted a pull request to replace PVDZ_veh_Save with
PVDZ_obj_Save in official too because they are duplicates.
- Moved player_countMagazines to \compile\ folder
- Removed several unused and obsolete files
- Moved some epoch functions out of compiles.sqf into individual files
- Synced order and formatting with 1.8.7. Much easier to compare now.
Any changes I make to official DayZ Mod code and files I also submit as
a pull request to them.
Needed to add it to variables.sqf lists.
@icomrade - Any reason FireBarrel_DZ was removed? I think we still need
it, since it is an epoch buildable class, unless we merge it with
Land_Fire_barrel.
The journal is now functional. Preliminary strings are added for the
1.8.7 crafting system, but it is disabled for now.
I've messaged @marceldev89 (ziellos2k) and @AlbyBDPK on the DayZ forums
to ask permission to use fn_updateCraftUI, player_checkRecipe and
player_craftItemGUI. Are you guys okay with us including these in DayZ
Epoch 1.0.6?
@raymix in most of your helper functions you are using exitWith {}; in
the same way the main player_build uses it. The problem is exitWith
inside of a called function only exits that function, not the parent
script it was called from.
When a helper function exits the main script continues on with undefined
variables and other problems. The easiest solution was to just remove
these helper functions for now. I just directly substituted their code
back into the main modular_build file and removed the passes to and from
them.
We should consolidate player_build and modular_build into one file first
since they are about 80% identical. After that we need to integrate
plot4life. Dividing player_build up into smaller sub functions like this
can be left for last.
I tested this thoroughly and can confirm the undefined errors are fixed
now.
Tested while autorunning:
- getting knocked out
- breaking legs
- running into water
- getting into and out of vehicles
- climbing a ladder
- dying
- antiTP enabled
- running up steep hills
- as player zombie
Everything works as expected. This does allow you to run up and down
pretty steep hills, but if you try to scale something too steep you will
break your legs as expected.
See: #1103
Made vehicle gear always accessible from inside.
Also added optional variable to prevent stealing from backpacks by
non-friendlies at traders. Thanks to @maca134 for the method.
Related to #1567, so I made this a function so it can be reused. People
should call this whenever they are adding a toolbelt item which the
player may already have. It has localized strings and handles spawning
the weapon holder on water, land and rooftop.
Tested both the sledgehammer and key copying. Confirmed all three
conditions are working.
I hate sitting in the lobby for the full 90 seconds before loading.
- Default login delay is 10 seconds, can be set in the mission
- Players cannot deselect or change character slots
- Players can click OK or disconnect before timeout
Changed routines so that all icons flash at the same time. Instead of
making several individual calls to player_guiControlFlash any icon that
needs to have flashing turned on is added to an array and then, as long
as that array is not empty, it is passed to the function. The function
was changed to deal with an array and whichever item is array select 0
has its show state determine what all the others should be. If its on,
then all other in array are turned off with it.
Also, added a fix for _bloodVal. With current red/green icon set, if the
player has less than 3000 blood the value rounds down to 1 so that
status_blood_inside_1_ca.paa is used, (which is no picture at all). This
means the old line
if (_bloodVal < 0.2) then {
passes along an empty picture to flash. I changed this value to .4 so
that between 3000 and 5000 blood, it still uses that last sliver picture
but that one now flashes to alert player to lower blood levels.