* initial work, need to clean up gm commands still
* cleaned up command, works without kicking char select now
* remove thj-specific methods
* add script hooks
* actually clear flag
* rework questmgr::rename
* remove unnecessary logging
* revert
* added missing binding to perl api and updated some text
* don't return a value
* Fix some bad argument types.
* adjust case
* alpha order
* refactor some old string stuff
* don't quote integers, bob
---------
Co-authored-by: Zimp <zimp@zenryo.xyz>
Co-authored-by: Chris Miles <akkadius1@gmail.com>
When dynamic zones are cached on zone boot each dz requests member
statuses from world separately. This causes a lot of network traffic
between world and booted zones when there are a lot of active dzs.
This changes it to make a single request to world on zone boot and a
single bulk reply back.
* [Zone] State saving improvements
* Make sure we load spawn enabled off of the state row
* Update npc.h
* Update spawn2.cpp
* Update database_instances.cpp
* Update database_instances.cpp
* [Bots] Fix taunting bots positioning
- Fixes taunting bots liking to hug their target on certain models or chosen positions.
- Makes bots have a more realistic combat range in comparison to players.
- Removed unnecessary rules and checks for melee distance.
* Update ruletypes.h
* Check for valid JSON before using it
* Do not allow nested keys to set be set an expiration
* Prevent overwriting of existing object or array
* Nested deletion support
* Update data_bucket.cpp
* Test cases
* More test cases, fix
* Update databuckets.cpp
* Update databuckets.cpp
* Basic databucket tests
* Update databuckets.cpp
* Update databuckets.cpp
* refactor AddItemBonuses
* typo
* simplify some syntax
* fix indents
* Revert "fix indents"
This reverts commit 8e660707a96090105213fcee924d0e492fc44ddd.
* fix indents without blowing up entire file
* Revert "fix indents without blowing up entire file"
This reverts commit 6b21d1bcc96608e1dc620962b426401540cedbbf.
* ok for real though
* Undo spaces in formatting, source uses tabs
* Spaces to tabs take 2
---------
Co-authored-by: Akkadius <akkadius1@gmail.com>
* Save spawns
* Update base_zone_state_spawns_repository.h
* Zone state save work
* Code cleanup
* More cleanup
* Database migration
* Update database_update_manifest.cpp
* Revert decay at storage model
* Code cleanup
* More cleanup
* More cleanup
* More cleanup
* Entity variables
* Add entity variables to the schema
* Post rebase
* Checkpoint
* Serialize / deserialize buffs
* Current hp / mana / end save / load
* Save / load current_waypoint
* Add zone spawn protection
* Finishing touches
* Cleanup
* Update zone_save_state.cpp
* Cleanup
* Update zone_save_state.cpp
* Update npc.cpp
* Update npc.cpp
* More
* Update perl_npc.cpp
* Update zone_loot.cpp
This removes the separate Expedition class and moves lockout code and
/dz command handlers into DynamicZone classes. It also refactors some
code to reduce bloat and some database usage.
This completes the effort of moving everything to DynamicZone that
started when implementing shared tasks. It also makes sense to do this
since expeditions are just dynamic zones internally despite dzs being
used for other types. Expedition specific things are just handled with
dz type checks.
Functionally nothing should change. This is mainly internal refactoring
and moving code around along with some bug fixes and reduced database
usage.
Main changes:
- The `expeditions` database table has been removed
- Expeditions no longer use a separate id, the expedition id is just the dz id
- Expedition lock state and replay timer option were moved to the
`dynamic_zones` table
- Expeditions no longer have a separate cache from dynamic zones
- Expedition creation no longer has every zone query the database to cache it
- Expedition internal lockouts are now stored on DynamicZone
- The `expedition_lockouts` table has been renamed to `dynamic_zone_lockouts`
- Fixed a small bug with the UpdateLockoutDuration api where the
internal lockout would get the time added twice in memory in the
initiating zone (this api is likely rarely used)
- Fixed an issue where use of the group/raid DoesAnyMemberHaveExpeditionLockout
api would query once for every out of zone character.
- This api now checks all members in the current zone first and only
performs a single bulk query for out of zone members if that check
is exhausted
- Deprecated the max_check_count param of DoesAnyMemberHaveExpeditionLockout,
the quest api still exists to avoid api break but a passed arg has no effect
* Fix two parcel bugs
Fix two Parcel Bugs
- If a player was at their parcel limit and perform a bazaar purchase via parcel delivery, their money would be lost
- If a container with items was delivered via parcel, the parcel under certain inventory conditions could be delivered into an incorrect slot resulting in the container being lost.
* Incorrect field used for BagSize vs ItemSize. Silly mistake.
* Remove duplicate check and reorder stacking check
* Fix edge case when Parcel Window remains open and Bazaar purchases are made.
* Repair
- bazaar purchase of items with charges reverting to 1 charge in error
- bazaar visual error with selling price. Was caused by the parcel fee not being properly reflected in the client
- corrected a type mismatch with parcel fee uint32 vs uin64
- corrected a few TraderPurchase and TraderSell event data points by splitting quantity and charges
* Formatting
* Use pre-existing AddMoney and TakeMoney and remove unnecessary routines
* Updates after rebase
* First pass of a re-write of Guild Bank to enable RoF2 features
* Testing - Corrected a few bugs with merging, splitting and withdrawing
* Testing - Corrected a few bugs with depositing of bags
* Added player event logging for deposit, withdrawal and movement between deposit to main area.
* Fix the guilddelete routine
Fix the guilddelete routine as a result of the new guild_bank table structure
* Fix an issue with items not being withdrawn correctly.
* Final Testing Phase 1 - A few failures to be resolved yet.
* Final Testing Phase 2 - Looks good
* Final Testing Phase 3 - Repair a visual bug with withdrawal of items with charges
* Cleanup
* Formatting feedback updates
* Rebase and fix version.h
* Fix manifest issue after changes
- Added all TargetedAE types to IsTargetableAESpell
- Added IsTargetableAESpell to IsAnyAESpell and changed order for earlier escapes
- IsPBAESpell now checks all PBAE types
- The rule Spells, TargetedAOEMaxTargets will now check all Targeted AE types
- The rule Spells, PointBlankAOEMaxTargets will now check all remaining types that can be a PBAE and not only Nuke PBAEs
- Prevents casting on ineligible targets due to target type, stacking, etc.
- Adjust the rules Bots, MezChance, Bots, MezSuccessDelay and Bots, MezFailDelay