mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-04 22:56:37 +00:00
[Shared Tasks] Implement Activity Locking (#2339)
* Add shared task element locking This adds the `lock_activity_id` field to the tasks table which will automatically lock a shared task when that element becomes active. A method was added to world analogous to zone's UnlockActivities to determine when an activity is active with respect to task steps. Also adds quest apis to manually lock or unlock a client's shared task * Add comment
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#define ServerOP_SharedTaskPlayerList 0x0313 // zone -> world /taskplayerlist command
|
||||
#define ServerOP_SharedTaskMemberChange 0x0314 // world -> zone. Send shared task single member added/removed (client also handles message)
|
||||
#define ServerOP_SharedTaskKickPlayers 0x0315 // zone -> world /kickplayers task
|
||||
#define ServerOP_SharedTaskLock 0x0316 // zone -> world
|
||||
|
||||
enum class SharedTaskRequestGroupType {
|
||||
Solo = 0,
|
||||
@@ -105,6 +106,8 @@ struct SharedTaskActivityStateEntry {
|
||||
uint32 max_done_count; // goalcount
|
||||
uint32 updated_time;
|
||||
uint32 completed_time;
|
||||
int step;
|
||||
bool optional;
|
||||
};
|
||||
|
||||
struct ServerSharedTaskActivityUpdate_Struct {
|
||||
@@ -162,6 +165,12 @@ struct ServerSharedTaskKickPlayers_Struct {
|
||||
uint32 task_id;
|
||||
};
|
||||
|
||||
struct ServerSharedTaskLock_Struct {
|
||||
uint32 source_character_id;
|
||||
uint32 task_id;
|
||||
bool lock;
|
||||
};
|
||||
|
||||
class SharedTask {
|
||||
public:
|
||||
// used in both zone and world validation
|
||||
|
||||
Reference in New Issue
Block a user