This reverts commit b8dba25
As discussed with oiad on Discord, this serves no purpose now, since
DZE_lockDoor == charID means the player either just unlocked, built,
upgraded or downgraded the door, so they want to see the action.
Logically a combo lock can be removed while a door is open. In case of
it being locked, you already know the code, so it is assumed you put it
in before removing it. Completing two-three steps at once is more
convenient for the player.
Also removed _isDestructable because there are no classes which inherit
from "BuiltItems" and have a lock
@oiad when exitWith is inside an if () then it only exits that control
structure, not the whole script, so _canBuild could be overwritten by
_toolCheck below.
@oiad Add the Javelin magazine as trade_items to a trader which only
sells magazines (like FriendlyAssaultRifleAmmo) and the Javelin weapon
as trade_weapons to a trader which only sells weapons (like
FriendlyAssaultRifle), then test your changes from f8a230e with both in
your gear. You will see it allows you to sell all the magazines and the
weapon at both traders. This is because the only condition to add the
item to the sellable array is that it exists as an entry in the
category. It never checks the entry type. This commit will check to make
sure the type matches in the config and the player's inventory.
I changed your static "trade_any_vehicle" to find the type in the
config, because it could also be "trade_any_boat/bicycle/vehicle_free".
Boats are handled differently for the hitpoints check in sellItems.sqf.
Also I noticed that both the _HasKey check and your new _y == _myVehType
check were not working for upgraded vehicles _DZE[1-4] because they had
been swapped out to _baseVehicle. I forgot to account for that when I
added that feature.
This should resolve both problems. I tested both and everything looks
good. It can do with some more thorough testing though. Note
DZE_SaleRequiresKey is false by default.
These were resulting in sloppy mixed language sentences.
The server language never changes, so localize should not be used server
side, unless complete translations are added for all logs, which is not
worth the effort. Only admins see them, unlike client side strings which
are seen by everyone.
Wrecks were not deleted after removal following this change @icomrade
https://github.com/EpochModTeam/DayZ-Epoch/commit/e07938193161ae147523c3a4bae76eecbea787f4#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.
Setvariables made redundant by 9cc3c82
Also changed removeEventHandler to remove all, so if switchModel exits
at one of the exitWiths the player will not be left invincible.
Forgot to remove F4 from the blocked list in 5acad04 @icomrade so it was
being overwritten.
Shift + P is not a hardcoded engine bind. It is just the default
DSInterface bind, so actionKeys "DSInterface" covers that in f760896.
Correction for 6239959
@oiad isPlayer is not reliable on dead units which may be passed to
fa_plr2Str. Also, the other scripts which call fa_plr2Str always provide
a player, so we only want to check for AI on the hit log source.
Thanks to Dihan for reporting on Discord.
This exploit may work with other event handlers, displays and controls.
Please leave a comment if you find any others that work. I tested GPS,
abort, MP setup and group menu displays, as well as the map diary list
box controls, but none of those had this problem.
This should be fixed with an A2OA patch, please report to Bohemia.
Closes#1942 in combination with 48858b2
The "packing" variable was made redundant by dayz_actionInProgress
because it was only set locally.
DisableUserInput is unnecessary now because server_handleSafeGear is
called unscheduled. Getting the cargo, creating the new safe and
deleting the old one should complete in the same frame with no window
for players to remove gear:
https://github.com/EpochModTeam/DayZ-Epoch/blob/master/SQF/dayz_server/compile/server_handleSafeGear.sqf#L51-L67
The "claimed" check is also no longer needed because
server_handleSafeGear is called unscheduled and exits if the object is
null, so two players attempting to unlock at the same time will not
work.
Collisions with the player caused sliding when the safe was pitched
forward. It was the same issue with proning against the sandbag. #1945
Note the player can still cause collision sliding by using snap to get
the preview closer to them.
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.
Use the cursorTarget at the time the gear dialog was opened instead of
the cursorTarget at the time the script runs. The script can be delayed
by several seconds (spawn is scheduled).
Continuation of d7a3b30
This partially reverts ea94ec4.
Epoch has never disabled simulation client side on any buildables prior
to ea94ec4. We now know it disables storage capability, may disable
lighting the object with scripted light sources and potentially cause
other issues.
https://community.bistudio.com/wiki/enableSimulation
If we readd this in the future it should be well tested. It should also
be done properly in the vehicle init field, so it takes affect on all
clients, including JIP, instead of only the player building it (until
they relog).
By default this was multiplying all "Working" hunger and thirst hits by
10 @icomrade because (1 min 0.1) always picks 0.1. For example:
dayz_thirst = dayz_thirst + (5 / 0.1)
dayz_thirst = dayz_thirst + 50
A config variable isn't really needed for this, since it is only used in
one file. It can be easily configured in compiles.sqf which most servers
already overwrite anyway.
This reverts 62b7c21.