- Safe inventory arrays are no longer sent over network to all machines
on server startup and on each lock/unlock
- Disabled user input then closed gear dialog during safe
lock/unlock/pack to block various duping methods.
- Moved safe creation, deletion and gear handling to server. This cuts
down on add[Magazine/Weapon/Backpack]Cargo, createVehicle and
deleteVehicle BE logs.
Avoids setVariable value restrictions for players with special
characters in their name.
Also avoids issues with storing non-ASCII characters from player names
in DB inventory field.
No reason to use spawn here. Spawn can have a delay. Since
fn_selfActions runs faster it can register the vehicle as still locked
or unlocked after you clicked the action.
- Added gear icons to vehicle cargo space display instead of
Weps/Mags/Bags text
- Decreased info text to 0.7 all around. Can be reverted to 0.8 if
preferred, but 0.7 or smaller is needed for vehicle info class, display
name and weapons list to avoid cutting off the dialog on normal and
larger interface sizes.
#1724
Previous duplicate check only checked player's current tools and the
buying array types for >1 of the same tool (not buying array amounts).
Also added prevention of binocular slot overflow.
- Don't show tool slots as available weapon slots in gear. Player is
informed of tool slots count in systemChat.
- Don't show pistol mag slots as available item slots in gear. Player is
informed of pistol mag slots count in systemChat. Only pistol ammo and
bandages can be purchased into them.
- Removed "Stand still to complete trade" message since the medic
animation loop is no longer used
- Added back backpack mags count message and avoided redundant "Backpack
space exceeded message" @oiad
https://github.com/EpochModTeam/DayZ-Epoch/commit/ee3eb845a36ddaca45635d1bf6a1eed2d76622e1#commitcomment-18483149
I don't think we should allow selling backpacks from vehicles because we
can not get backpack contents.
We can only remove all backpacks with clearBackpackCargo and then add
back new empty backpacks for ones that weren't sold.
This means players may unintentionally wipe all contents of all other
backpacks in their vehicle when they only want to sell one.
Thanks @AirwavesMan for catching this.
Also made changes discussed in #1718 @oiad
- Added proper handling of pistol mags and regular mags in gear to
prevent magazine overflow
- Added pre-check if return change will overflow gear + backpack free
space. If change will not fit in gear + backpack free space then buy is
prevented with a message notifying the player. In the case of a sale it
proceeds anyway, but notifies player if overflow occurs (see comments in
returnChange)
- Consolidated duplicate code for calculating free space and returning
cargo of an object into new calcFreeSpace
- Old calculateFreeSpace renamed to displayFreeSpace
- Added Weps/Mags/Bags icons to free slot numbers display
@icomrade - In regex character classes only match each single character.
So a range with more than one character on one end (20) won't work:
http://www.regular-expressions.info/charclass.html
You can see that by running this code in-game with your old filter and
it will kick you:
player setVariable ["hit_glass3",1,true];
Adding the + on the end makes it match the character class one or more
times, so now it will match any integer >= 0.
When switching back to category view the item count was overwritten
from:
https://github.com/EpochModTeam/DayZ-Epoch/commit/12a9e9f83edc78c4ec147d86e6b1d77f91323250
It is no longer needed to set it in changeBuySell since calcPrice runs
every time changeBuySell does. The one exception is when switching back
to category view, but in that case it stays in buy mode anyway.
You forgot to add it for single currency as well @oiad
There is no point in setting inTraderCity = "Any"; since you can use the
isInTraderCity variable to check if a player is in any trader city. Also
"Any" will return false for isNil, so the only time "Unknown Trader
City" was being used was when the player had not entered any city yet.
If they left a known trader and went to an unknown one the RPT message
would say "bought x at Any". Now it will correctly say "Unknown Trader"
anytime a purchase is made without inTraderCity being set.
The menu already says "Buying in" or "Selling from" Gear in the top left
so having it again in the top right is redundant. It was my mistake
adding it there originally.
The buying list now acts like a shopping cart. It is no longer cleared
when switching between categories or containers. Closing the dialog or
switching to sell mode still clears it.
Also fixed:
- Filter button in sell mode
- Bug where filtering sellable list readded items already moved to
selling list
- Visual price display not clearing when remove all button is used on
buying list
- Gear container picture showing rank instead of portrait in buy mode
- Dialog is no longer closed when trying to sell zero items
- LbCurSel is now reset when the buyable list is cleared
- Category is no longer opened onLbSelChanged. Instead you need to
double click or use the "View" button, so the arrow keys can be used for
selecting too.
Since we changed the alignment back to default the ctrlSetPosition I
added is no longer needed. #1709. With the alignment changed it would
actually run off the background if the category list was too long.
Thanks @oiad
When localizing vanilla strings please do not put "EPOCH" in their name
or include them in the dayz_epoch package of the stringtable. This
creates more work to backport common translation updates and vice versa.
Vanilla development commit:
https://github.com/DayZMod/DayZ/commit/af9e009bae1c1b6446d610338019d6c0446845b8
- renamed magazines for better sorting
- renamed attachments for better sorting ([A] prefix added) some fixes,
some strings moved to proper section
- Remington 870 added to new attachment system (weapon flashlight)
- Double-barrel shotgun will now spawns with pellets and has Doubleshot
option (maybe this will make it more popular?)
Access control for upgrade and downgrade is now included in
fn_selfActions as per #1706
I moved _upgrade down in fn_selfActions so it is only checked it if the
right conditions are met.
Since door management uses the inventory field to store doorFriends the
last condition was always returning false and locked doors would never
get damage set on them.
@AirwavesMan - For future reference, if you notice any more new stuff we
forgot to add to the traders we probably forgot to add them to R3F
weight too.
I did not realize lootPosSmall positions can only fit small objects like
soda cans etc., so it is not okay to merge them with the main lootPos
arrays. This separates them back out.
This solution will work like 1.0.5.1 CfgLootSmall. <GroupName>Small is
used to spawn additional loot if the building type has lootPosSmall
positions available. It is not necessary to add a <GroupName>Small for
types that do not have lootPosSmall positions.
Some of these objects may still be too big or too small (knife,
binoculars, matchbox, etc.) for the positions and look out of place. If
that is the case please submit a pull with any problematic ones removed
from the <GroupName>Small groups (check if they aren't in 1051
CfgLootSmall first). Balance and rates may need adjustment as I just
took the normal groups and removed large objects from them while trying
to keep similar items to 1.0.5.1 CfgLootSmall.
Epoch has custom loot positions for many buildings. Most lootPos have
not changed in vanilla since pre 1.7.x.
The vanilla lootPos are now commented out and custom Epoch ones are
added back. LootPosSmall positions are now included in lootPos and
marked with //DZE EXTRA
LootPosSmall are included and used by default in 1051, so it is simpler
to add them to the main lootPos lists instead of having a separate loop
in buildingSpawnLoot.sqf for them.
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.
It is unnecessary to specify default values in configVariables.sqf
comments. All values in this file will be defaults at release. It can't
be edited by admins directly. They need to copy the variables to their
mission to change them, so they will always be able to reference it for
the defaults.
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.