mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-09 17:32:29 +00:00
Rework accepted_time for shared_tasks
This commit is contained in:
parent
32e04cd264
commit
b972ec581f
@ -159,6 +159,7 @@ void SharedTaskManager::HandleTaskRequest(ServerPacket *pack)
|
|||||||
buf.WriteInt32(id); // shared task's ID
|
buf.WriteInt32(id); // shared task's ID
|
||||||
buf.WriteInt32(task_id); // ID of the task's data
|
buf.WriteInt32(task_id); // ID of the task's data
|
||||||
buf.WriteInt32(npc_id); // NPC we're requesting from
|
buf.WriteInt32(npc_id); // NPC we're requesting from
|
||||||
|
buf.WriteInt32(task.GetAcceptedTime()); // time we accepted it
|
||||||
buf.WriteString(leader_name); // leader's name
|
buf.WriteString(leader_name); // leader's name
|
||||||
task.SerializeMembers(buf, false); // everyone but leader
|
task.SerializeMembers(buf, false); // everyone but leader
|
||||||
|
|
||||||
@ -548,3 +549,7 @@ void SharedTask::InitActivities()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SharedTask::UnlockActivities()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|||||||
@ -20,8 +20,8 @@ struct SharedTaskMember {
|
|||||||
|
|
||||||
class SharedTask {
|
class SharedTask {
|
||||||
public:
|
public:
|
||||||
SharedTask() : id(0), task_id(0), accepted_time(0), locked(false) {}
|
SharedTask() : id(0), task_id(0), locked(false) {}
|
||||||
SharedTask(int id, int task_id) : id(id), task_id(task_id), accepted_time(0), locked(false) {}
|
SharedTask(int id, int task_id) : id(id), task_id(task_id), locked(false) {}
|
||||||
~SharedTask() {}
|
~SharedTask() {}
|
||||||
|
|
||||||
void AddMember(std::string name, ClientListEntry *cle = nullptr, bool leader = false)
|
void AddMember(std::string name, ClientListEntry *cle = nullptr, bool leader = false)
|
||||||
@ -43,17 +43,19 @@ public:
|
|||||||
void SerializeMembers(SerializeBuffer &buf, bool include_leader = true) const;
|
void SerializeMembers(SerializeBuffer &buf, bool include_leader = true) const;
|
||||||
void SetCLESharedTasks();
|
void SetCLESharedTasks();
|
||||||
void InitActivities();
|
void InitActivities();
|
||||||
|
bool UnlockActivities();
|
||||||
|
|
||||||
void Save() const; // save to database
|
void Save() const; // save to database
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline void SetID(int in) { id = in; }
|
inline void SetID(int in) { id = in; }
|
||||||
inline void SetTaskID(int in) { task_id = in; }
|
inline void SetTaskID(int in) { task_id = in; }
|
||||||
inline void SetAcceptedTime(int in) { accepted_time = in; }
|
inline void SetAcceptedTime(int in) { task_state.AcceptedTime = in; }
|
||||||
inline void SetLocked(bool in) { locked = in; }
|
inline void SetLocked(bool in) { locked = in; }
|
||||||
|
|
||||||
|
inline int GetAcceptedTime() const { return task_state.AcceptedTime; }
|
||||||
int id; // id we have in our map
|
int id; // id we have in our map
|
||||||
int task_id; // ID of the task we're on
|
int task_id; // ID of the task we're on
|
||||||
int accepted_time; // timestamp of when accepted, initially set by zone
|
|
||||||
bool locked;
|
bool locked;
|
||||||
std::string leader_name;
|
std::string leader_name;
|
||||||
std::vector<SharedTaskMember> members;
|
std::vector<SharedTaskMember> members;
|
||||||
|
|||||||
@ -1026,7 +1026,7 @@ public:
|
|||||||
inline bool IsTaskEnabled(int TaskID) { return (taskstate ? taskstate->IsTaskEnabled(TaskID) : false); }
|
inline bool IsTaskEnabled(int TaskID) { return (taskstate ? taskstate->IsTaskEnabled(TaskID) : false); }
|
||||||
inline void ProcessTaskProximities(float X, float Y, float Z) { if(taskstate) taskstate->ProcessTaskProximities(this, X, Y, Z); }
|
inline void ProcessTaskProximities(float X, float Y, float Z) { if(taskstate) taskstate->ProcessTaskProximities(this, X, Y, Z); }
|
||||||
inline void AssignTask(int TaskID, int NPCID, bool enforce_level_requirement = false) { if (taskstate) taskstate->AcceptNewTask(this, TaskID, NPCID, enforce_level_requirement); }
|
inline void AssignTask(int TaskID, int NPCID, bool enforce_level_requirement = false) { if (taskstate) taskstate->AcceptNewTask(this, TaskID, NPCID, enforce_level_requirement); }
|
||||||
inline void AssignSharedTask(int TaskID, int NPCID, int id, std::vector<std::string> &members) { if (taskstate) taskstate->AcceptNewSharedTask(this, TaskID, NPCID, id, members); }
|
inline void AssignSharedTask(int TaskID, int NPCID, int id, int accepted_time, std::vector<std::string> &members) { if (taskstate) taskstate->AcceptNewSharedTask(this, TaskID, NPCID, id, accepted_time, members); }
|
||||||
inline int ActiveSpeakTask(int NPCID) { if(taskstate) return taskstate->ActiveSpeakTask(NPCID); else return 0; }
|
inline int ActiveSpeakTask(int NPCID) { if(taskstate) return taskstate->ActiveSpeakTask(NPCID); else return 0; }
|
||||||
inline int ActiveSpeakActivity(int NPCID, int TaskID) { if(taskstate) return taskstate->ActiveSpeakActivity(NPCID, TaskID); else return 0; }
|
inline int ActiveSpeakActivity(int NPCID, int TaskID) { if(taskstate) return taskstate->ActiveSpeakActivity(NPCID, TaskID); else return 0; }
|
||||||
inline void FailTask(int TaskID) { if(taskstate) taskstate->FailTask(this, TaskID); }
|
inline void FailTask(int TaskID) { if(taskstate) taskstate->FailTask(this, TaskID); }
|
||||||
|
|||||||
@ -3475,7 +3475,8 @@ void ClientTaskState::PendSharedTask(Client *c, int TaskID, int NPCID, bool enfo
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientTaskState::AcceptNewSharedTask(Client *c, int TaskID, int NPCID, int id, std::vector<std::string> &members)
|
void ClientTaskState::AcceptNewSharedTask(Client *c, int TaskID, int NPCID, int id, int accepted_time,
|
||||||
|
std::vector<std::string> &members)
|
||||||
{
|
{
|
||||||
// all of this data should have been verified already
|
// all of this data should have been verified already
|
||||||
// first we need to create the new SharedTaskState
|
// first we need to create the new SharedTaskState
|
||||||
@ -3489,7 +3490,7 @@ void ClientTaskState::AcceptNewSharedTask(Client *c, int TaskID, int NPCID, int
|
|||||||
auto task_activity = task_state->GetActivity();
|
auto task_activity = task_state->GetActivity();
|
||||||
|
|
||||||
task_activity->TaskID = TaskID;
|
task_activity->TaskID = TaskID;
|
||||||
task_activity->AcceptedTime = time(nullptr);
|
task_activity->AcceptedTime = accepted_time;
|
||||||
task_activity->Updated = true;
|
task_activity->Updated = true;
|
||||||
task_activity->CurrentStep = -1;
|
task_activity->CurrentStep = -1;
|
||||||
|
|
||||||
|
|||||||
@ -146,7 +146,7 @@ public:
|
|||||||
int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID);
|
int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID);
|
||||||
int GetTaskStartTime(TaskType type, int index);
|
int GetTaskStartTime(TaskType type, int index);
|
||||||
void AcceptNewTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement = false);
|
void AcceptNewTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement = false);
|
||||||
void AcceptNewSharedTask(Client *c, int TaskID, int NPCID, int id, std::vector<std::string> &members);
|
void AcceptNewSharedTask(Client *c, int TaskID, int NPCID, int id, int accepted_time, std::vector<std::string> &members);
|
||||||
void PendSharedTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement = false);
|
void PendSharedTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement = false);
|
||||||
void FailTask(Client *c, int TaskID);
|
void FailTask(Client *c, int TaskID);
|
||||||
int TaskTimeLeft(int TaskID);
|
int TaskTimeLeft(int TaskID);
|
||||||
|
|||||||
@ -1947,6 +1947,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
|||||||
int id = pack->ReadUInt32();
|
int id = pack->ReadUInt32();
|
||||||
int task_id = pack->ReadUInt32();
|
int task_id = pack->ReadUInt32();
|
||||||
int taskmaster_id = pack->ReadUInt32();
|
int taskmaster_id = pack->ReadUInt32();
|
||||||
|
int accepted_time = pack->ReadUInt32();
|
||||||
char name[64] = { 0 };
|
char name[64] = { 0 };
|
||||||
pack->ReadString(name);
|
pack->ReadString(name);
|
||||||
auto client = entity_list.GetClientByName(name);
|
auto client = entity_list.GetClientByName(name);
|
||||||
@ -1957,7 +1958,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
|||||||
pack->ReadString(name);
|
pack->ReadString(name);
|
||||||
members.push_back(name);
|
members.push_back(name);
|
||||||
}
|
}
|
||||||
client->AssignSharedTask(task_id, taskmaster_id, id, members);
|
client->AssignSharedTask(task_id, taskmaster_id, id, accepted_time, members);
|
||||||
} else {
|
} else {
|
||||||
// TODO: something failed, tell world to clean up
|
// TODO: something failed, tell world to clean up
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user