* Added a check to stop Bard song for Mezz/Stun
* Cleaned Song stun / mezz stop
* Update client_process.cpp
* removed bard check & added else where
* code clean up
Co-authored-by: ProducerZekServer <go@away.com>
This isn't the exactly the right way, but it's behavior is much closer
to live than current for Solon's Song of the Sirens (725), the other
bard charms don't repulse due to mana cost
* Bards song with a mana cost shouldn't repulse
* Bard songs with SE_TemporaryPets shouldn't repulse
This is mostly just an issue with Vet AAs, the actually songs have a
recast, so are already handled
* SE_Familiar should be prevented as well
This creates an abstract class in common so zone and world can share
most of the implementation. World now has access to the same dz data and
api as zone.
Rename CharacterChange to AddRemoveCharacter for clarity
Rename GetRemainingDuration to GetDurationRemaining for consistency
Move dynamic zone queries to custom repository methods
Move early empty shutdown and process rate rules to DynamicZone scope
This decouples the expired status check from expeditions into an
internal dz method that can be called by its owning system
- Add quest::GetZoneShortName(zone_id) to Perl.
- Add quest::GetZoneLongNameByID(zone_id) to Perl.
- Add eq.get_zone_id_by_name(zone_name) to Lua.
- Add eq.get_zone_short_name_by_id(zone_id) to Lua.
- Add eq.get_zone_long_name_by_id(zone_id) to Lua.
- Add eq.get_zone_long_name_by_name(zone_name) to Lua.
* Fix x/y offsets from client to reflect EQ x/y instead of boat heading x/y
* Use std version of math calls and reduce the # of calls
* Remove errant instrumentation
Co-authored-by: Noudess <noudess@gmail.com>
Use internal dz messages to process duration and location changes
Add world DynamicZone class (later this will inherit from a base)
Add FindDynamicZoneByID to get dz from zone and world system caches
Only zone requires to be linked to lua, so let's not link EVERYTHING.
There is probably more clean up we could do, but I know for a fact Lua
is only used by zone.
This probably has some measurable benefits that probably don't really
matter that much :)
Move ExpeditionLockoutTimer to common
This simplifies expedition request conflict checks and uses repository
for the queries instead of processing the query result directly.
* Update command.cpp
Fixed typo in the command description.
* Bugfix for #flymode zone crash
Bugfix for #flymode zone crash when invalid values are passed. Also, when entering #flymode without parameters, the correct syntax is now displayed.
* Changed as requested
This fixes unnecessary leader processing on mass dzquits
Also marks leader dirty for empty expeditions in case something goes
wrong (shouldn't be possible after 62e480fe)
* Rename dynamic zone source files
* Store description and leader name on dz
Removes the DynamicZoneInfo struct used for switch list window. This
data can be stored on DynamicZone and kept updated by its owning system
* Separate create compass packet method
Cleanup MarkSingleCompassLoc
==2317==ERROR: AddressSanitizer: heap-use-after-free on address 0x6170000633c0 at pc 0x55ed1d8e8d8b bp 0x7ffda4bef580 sp 0x7ffda4bef578
WRITE of size 8 at 0x6170000633c0 thread T0
#0 0x55ed1d8e8d8a in Group::SetLeader(Mob*) ../zone/groups.h:80
#1 0x55ed1d8e8d8a in Group::DisbandGroup(bool) ../zone/groups.cpp:1016
ASan didn't like this