* POLLOG* macros use the new formatting
removed all old logging functions
* removed old fmt lib from everything except StreamWriter
removed unneeded functions
* fixed review comments
* removed pol_distance/inrange* functions
replaced lastxyz with Pos4d
* replaced WorldIterator::InVisualRange with InMaxVisualRange returning
all objects in maximum update range. Adapted each caller, they now have
to check in_visual_range
Multis should now be send to clients with its footprint in mind.
added testscript for boat moving in/out of range
* removed non pos InRange/InBox functions
gamestate.update_range doesnt need to be a Vector, renamed
* corrected send_action_to_inrange
* replaced clip methods with general numeric type clamp function
* added Range2d constructor with radius
* splitted update_range. chr has now a los_size (how far can it see) and
an object has a visible_size (0 for objects 1/2 footprint for multis)
* use in_range instead of pol_distance
* corrected order of checks
* fixed warnings
* fixed visual size of multis
testclient added wornitems pkt support
added tests for los
* corechanges
* Add Character member .parrychance_mod, additive modificator of the parry_chance from the defender when it has shield equipped. Add parrychance_mod to parry formula.
* Add repsys.cfg General section PartyHarmFullCountsAsCriminal 1/0 default 1. If 0 OnHarm does not set mobile to criminal when they are in the same party.
* fix settings/party namespace
* fix pointer
* add ServSpecOpt UndoGetItemEnableRangeCheck and UndoGetItemDropHere undo getItem behaviour options
* fix code style len
* add missing comas
* special case for no drop item
* if no drop item and was not able to return to original container try to put to backpack
* fix remove item in range (was still displaying item in container, but was not really present there)
* add first simple test
* remove all tests
* remove all tests
* do not export test function
* ReloadConfiguration add reload servspecopt; Testsuite add fileaccess and servspecopt files; Add test fro undo get item
* check what produce SanitizerBuild fail
* run all test to fail on ThreadSanitizer Build
* Add repsys.cfg General section PartyHarmFullCountsAsCriminal 1/0 default 1. If 0 OnHarm does not set mobile to criminal when they are in the same party.
* add ServSpecOpt UndoGetItemEnableRangeCheck and UndoGetItemDropHere undo getItem behaviour options
* add missing comas
* fix remove item in range (was still displaying item in container, but was not really present there)
* remove all tests
* check what produce SanitizerBuild fail
* run all test to fail on ThreadSanitizer Build
* test new reload conf fix
* double check that build successful
* fix test comments; fix change log
* add DefaultAccessibleRange = 2 for tests
* delete unnecessary servspecopt file
* change check to toplevel_pos; add test for toplevel_pos
* try to update backpacks for client; increase distance to on drop backpack
* add heavy robe for tests; use robe instead flooding client with arrows
* fix test messages
---------
Co-authored-by: Oleksii Rebreniuk <oleksii.rebreniuk@shopit.se>
* Fix overflow of new HSA packets when a boat has too many items on the deck. These packets will now be truncated.
* Added setting in ssopt to control the refresh of the decay timer for items on deck after a boat movement
Authors are not forced to use the clang-format setting, but should
atleast be inspired by the style.
The only thing which is now not allowed are tabs for ident/alignment!
Currently plib/systemstate, pol/uvars, pol/ucfg, pol/multi/multidef
Next step should be to split them based on usage, since its currently a bit of include hell...
Fixed: Guild and alliance messages no longer send as regular speech messages. They are sent to all guild or alliance members online.
Added: servspecopt.cfg CoreGuildMessages=0/1 default 1 to determine if core should handle guild and alliance messages.
Added: servspecopt.cfg SeperateSpeechTokens=1/0 default 0 when set RegisterForSpeechEvents() and EnableEvents/DisableEvents behave different
Added: uo:RegisterForSpeechEvents Flags LISTENPT_HEAR_TOKENS,LISTENPT_ONLY_HEAR_TOKENS
Added: SYSEVENT_TOKEN_SPEECH:=0x4000 and SYSEVENT_TOKEN_GHOST_SPEECH:=0x8000 for uo:EnableEvents/DisableEvents
Note: if SeperateSpeechTokens is set you can control which events you get,
for NPCs you only get speech with tokens if you set SYSEVENT_TOKEN_SPEECH/SYSEVENT_TOKEN_GHOST_SPEECH
and non Token speech with SYSEVENT_SPEECH,SYSEVENT_GHOST_SPEECH
for RegisterForSpeechEvents() you get speech with and without Tokens when setting LISTENPT_HEAR_TOKENS and only speech with Tokens
setting LISTENPT_ONLY_HEAR_TOKENS
Note: Token and nonToken Eventtype is still the same (SYSEVENT_SPEECH)
Added: house.cancelediting(chr, drop_changes) will stop editing mode.
drop_changes 1/0 if true drops all non committed changes
Errors: "House is not custom","House is currently not been edited","Character is not editing this house"
Added: Syshook CloseCustomHouse(mobile, house)
called after client quits editing, or when house.cancelediting() is called
return value is ignored
Added: servspecopt.cfg
"SpeedHack_MountRunDelay" default 80 ms
"SpeedHack_MountWalkDelay" default 180 ms
"SpeedHack_FootRunDelay" default 180 ms
"SpeedHack_FootWalkDelay" default 380 ms
Change them on your own risk
Changed: (Tomi) gargoyle char create equips 0x1F03 robe
Added: (Tomi) ssopt.NewbieStartingEquipment 1/0 (default 1) to determine if equipped items
created during the character creation should be newbied or not.
Changed: misc/oncreate.src added third param profession
some clients doesnt send skillvalues if profession is given now core doesnt stop char creation,
based on third param you can set the skillvalues in oncreate
Added: more errorchecks to char create, it now checks if hair/beard/face can be equipped (fixes crash with latest OSI
tiledata where facial horn has the same layer as "normal" horn)
Added: polcfg Max_Tile_ID 0x3FFF / 0x7FFF (default 0x3FFF)
since client 7.0.0.0 item graphic can be definied up to 0x7FFF - Tomi
Added: "SA" for expansion type. This includes sending 0x187DF with packet 0xB9. - Tomi
Added: support of new map TerMur - Tomi
Note: uoconvert param:
realm=termur mapid=5 width=1280 height=4096
Added: Gargoyle support (race = uo:RACE_GARGOYLE)
Note: graphics are:
UOBJ_GARGOYLE_MALE 0x029A
UOBJ_GARGOYLE_FEMALE 0x029B
UOBJ_GARGOYLE_MALE_GHOST 0x02B6
UOBJ_GARGOYLE_FEMALE_GHOST 0x02B7
Added: support of UO:KR/SA char create packet 0x8D
Added: new gargoyle hair & beard 0x4258-0x425F & 0x42AD-0x42B0
Added: UO:KR/SA face support
Added: ssopt.SupportFaces 0/1/2 (default 0)
set it to 1 to support basic faces
set it to 2 to support roleplay faces (sets 0x2000 flag in 0xB9 packet)
Note: Faces are normal items (like hair/beard) with layer 15, objtype 0x3B44-0x3B57
roleplay faces 0x3B4E-0x3B57
bitfield to determine which tags are displayed on singleclick, current used bits are:
0x1 [title_guild]
0x2 [frozen]
0x4 [paralyzed]
0x8 [squelched]
0x10 [deafened]
Added: [paralyzed] & [deafened] @ singleclick packet - Tomi
Added: ServSpecOpt CoreSendsSeason 1/0 (default 1)
Determines if the core should send season packet on char creation/logon/reconnect and realm
change based on the season entry in realm.cfg.
ServSpecOpt CoreHandledTags 1/0 (default 1)
if true then core handles the tags in the name for singleclick packet when char is
frozen, paralyzed, squelched or deafened. - Tomi
Removed: "You cannot insert that item into the container." sysmsg after container CanInsert script
returns 0 - Tomi
Changed: uo::UpdateMobile(who, flags:=0)
if flags is 0 old behaviour it sends update Mobile packet 0x77,
if set to 1 it sends recreate packet 0x78 - Tomi