Add Group and Raid method DoesAnyMemberHaveExpeditionLockout
This is required by some expeditions that perform a manual check for
custom dialogue (Ikkinz group expeditions)
This implements the new behavior from live's September 16, 2020
(test server's September 8, 2020) patch
Expeditions can be created even when the client's group or raid
exceeds the expedition's max player requirement. Members are added
until the max player count is reached and the rest are ignored.
Raid members are added ordered by their raid group number with
ungrouped members having the lowest priority
Rename expedition request method ValidateMembers to CanMembersJoin
Change some expedition messages to System color (live changes)
When the group is disbanded, set the leader to null.
When setting a new raid leader, make sure we have a new raid leader. If we don't, avoid a crash and disband the raid. It's better than zones falling apart, and will resolve itself on the next VerifyRaid call.
If a member zones, set the leader pointer to nullptr. This fixes an issue where the leader pointer is freed later (MemberZoned normally cleans up the Client object), but referenced by other entities, allowing the leader to be used in the same server process tick, post-cleanup - as the leader won't exist.
* Cache EntityList::GetRaidByClient
* Adjustments [skip ci]
* Update entity [skip ci]
* More cleanup [skip ci]
* More tweaks [skip ci]
* Cleanup [skip ci]
* Fix bugs with UCS reconnection on crash / exit, not adding soft deleted characters, put main loop on UV lib
* Reduce log spam that should be debugging; send keepalives to clients so that they properly prune from the connection list
* Shutdown the eventloop to properly shutdown the zone versus calling a hard exit
This still doesn't add support for /autosplit in a raid, how should that
work?
This changes the Raid::SplitMoney to take a group ID and fails when
provided with RAID_GROUPLESS. This does change behavior, but I'm not
sure if it was ever used so ...
Raid/Group Mana/Endurance updates should now update real-time once again
Fixed an issue with clients looking like they are 'skipping' when they are moving in view of another client
Fixed an issue with NPC's who are ghosted in plain view of a client when they are not really there
This should cause the auto haters to be shared with other toons who might be
interested (group/raid) like live.
There maybe some bugs since there is a lot of complex interactions here.
Implemented target type (32) AE Target HateList
Implemented target type (36) Area Client Only
Implemented target type (37) Area PC Only
Implemented target type (39) Group No Pet
Note: This does not allow the raid leader to share raid leader XP
and since the raid leader doesn't gain group leadership, they can't
share that either.