mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 13:41:31 +00:00
Update IsTaskActivityCompleted, GetTaskActivityDoneCount, GetTaskActivityState
This commit is contained in:
parent
cf30056cf6
commit
0600b6834a
@ -1011,7 +1011,7 @@ public:
|
|||||||
inline bool IsTaskStateLoaded() { return taskstate != nullptr; }
|
inline bool IsTaskStateLoaded() { return taskstate != nullptr; }
|
||||||
inline bool IsTaskActive(int TaskID) { return (taskstate ? taskstate->IsTaskActive(TaskID) : false); }
|
inline bool IsTaskActive(int TaskID) { return (taskstate ? taskstate->IsTaskActive(TaskID) : false); }
|
||||||
inline bool IsTaskActivityActive(int TaskID, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityActive(TaskID, ActivityID) : false); }
|
inline bool IsTaskActivityActive(int TaskID, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityActive(TaskID, ActivityID) : false); }
|
||||||
inline ActivityState GetTaskActivityState(int index, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityState(index, ActivityID) : ActivityHidden); }
|
inline ActivityState GetTaskActivityState(TaskType type, int index, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityState(type, index, ActivityID) : ActivityHidden); }
|
||||||
inline void UpdateTaskActivity(int TaskID, int ActivityID, int Count, bool ignore_quest_update = false) { if (taskstate) taskstate->UpdateTaskActivity(this, TaskID, ActivityID, Count, ignore_quest_update); }
|
inline void UpdateTaskActivity(int TaskID, int ActivityID, int Count, bool ignore_quest_update = false) { if (taskstate) taskstate->UpdateTaskActivity(this, TaskID, ActivityID, Count, ignore_quest_update); }
|
||||||
inline void ResetTaskActivity(int TaskID, int ActivityID) { if(taskstate) taskstate->ResetTaskActivity(this, TaskID, ActivityID); }
|
inline void ResetTaskActivity(int TaskID, int ActivityID) { if(taskstate) taskstate->ResetTaskActivity(this, TaskID, ActivityID); }
|
||||||
inline void UpdateTasksOnKill(int NPCTypeID) { if(taskstate) taskstate->UpdateTasksOnKill(this, NPCTypeID); }
|
inline void UpdateTasksOnKill(int NPCTypeID) { if(taskstate) taskstate->UpdateTasksOnKill(this, NPCTypeID); }
|
||||||
@ -1037,8 +1037,8 @@ public:
|
|||||||
inline int GetActiveTaskCount() { return (taskstate ? taskstate->GetActiveTaskCount() : 0); }
|
inline int GetActiveTaskCount() { return (taskstate ? taskstate->GetActiveTaskCount() : 0); }
|
||||||
inline int GetActiveTaskID(int index) { return (taskstate ? taskstate->GetActiveTaskID(index) : -1); }
|
inline int GetActiveTaskID(int index) { return (taskstate ? taskstate->GetActiveTaskID(index) : -1); }
|
||||||
inline int GetTaskStartTime(int index) { return (taskstate ? taskstate->GetTaskStartTime(index) : -1); }
|
inline int GetTaskStartTime(int index) { return (taskstate ? taskstate->GetTaskStartTime(index) : -1); }
|
||||||
inline bool IsTaskActivityCompleted(int index, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityCompleted(index, ActivityID) : false); }
|
inline bool IsTaskActivityCompleted(TaskType type, int index, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityCompleted(type, index, ActivityID) : false); }
|
||||||
inline int GetTaskActivityDoneCount(int ClientTaskIndex, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID) :0); }
|
inline int GetTaskActivityDoneCount(TaskType type, int ClientTaskIndex, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCount(type, ClientTaskIndex, ActivityID) :0); }
|
||||||
inline int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCountFromTaskID(TaskID, ActivityID) :0); }
|
inline int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCountFromTaskID(TaskID, ActivityID) :0); }
|
||||||
inline int ActiveTasksInSet(int TaskSet) { return (taskstate ? taskstate->ActiveTasksInSet(TaskSet) :0); }
|
inline int ActiveTasksInSet(int TaskSet) { return (taskstate ? taskstate->ActiveTasksInSet(TaskSet) :0); }
|
||||||
inline int CompletedTasksInSet(int TaskSet) { return (taskstate ? taskstate->CompletedTasksInSet(TaskSet) :0); }
|
inline int CompletedTasksInSet(int TaskSet) { return (taskstate ? taskstate->CompletedTasksInSet(TaskSet) :0); }
|
||||||
|
|||||||
@ -2648,10 +2648,10 @@ void TaskManager::SendTaskActivityLong(Client *c, int TaskID, int ActivityID, in
|
|||||||
buf.WriteString(Tasks[TaskID]->Activity[ActivityID].desc_override);
|
buf.WriteString(Tasks[TaskID]->Activity[ActivityID].desc_override);
|
||||||
|
|
||||||
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
||||||
buf.WriteUInt32(c->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID));
|
buf.WriteUInt32(c->GetTaskActivityDoneCount(Tasks[TaskID]->type, ClientTaskIndex, ActivityID));
|
||||||
else
|
else
|
||||||
// For internal activity types, DoneCount is either 1 if the activity is complete, 0 otherwise.
|
// For internal activity types, DoneCount is either 1 if the activity is complete, 0 otherwise.
|
||||||
buf.WriteUInt32((c->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID) >= Tasks[TaskID]->Activity[ActivityID].GoalCount));
|
buf.WriteUInt32((c->GetTaskActivityDoneCount(Tasks[TaskID]->type, ClientTaskIndex, ActivityID) >= Tasks[TaskID]->Activity[ActivityID].GoalCount));
|
||||||
|
|
||||||
buf.WriteUInt32(1); // unknown
|
buf.WriteUInt32(1); // unknown
|
||||||
|
|
||||||
@ -2706,10 +2706,10 @@ void TaskManager::SendTaskActivityNew(Client *c, int TaskID, int ActivityID, int
|
|||||||
buf.WriteString(Tasks[TaskID]->Activity[ActivityID].desc_override); // description override
|
buf.WriteString(Tasks[TaskID]->Activity[ActivityID].desc_override); // description override
|
||||||
|
|
||||||
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
||||||
buf.WriteUInt32(c->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID)); // DoneCount
|
buf.WriteUInt32(c->GetTaskActivityDoneCount(Tasks[TaskID]->type, ClientTaskIndex, ActivityID)); // DoneCount
|
||||||
else
|
else
|
||||||
// For internal activity types, DoneCount is either 1 if the activity is complete, 0 otherwise.
|
// For internal activity types, DoneCount is either 1 if the activity is complete, 0 otherwise.
|
||||||
buf.WriteUInt32((c->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID) >= Tasks[TaskID]->Activity[ActivityID].GoalCount));
|
buf.WriteUInt32((c->GetTaskActivityDoneCount(Tasks[TaskID]->type, ClientTaskIndex, ActivityID) >= Tasks[TaskID]->Activity[ActivityID].GoalCount));
|
||||||
|
|
||||||
buf.WriteUInt8(1); // unknown9
|
buf.WriteUInt8(1); // unknown9
|
||||||
|
|
||||||
@ -2738,7 +2738,7 @@ void TaskManager::SendActiveTasksToClient(Client *c, bool TaskComplete)
|
|||||||
|
|
||||||
int Sequence = 0;
|
int Sequence = 0;
|
||||||
for(int Activity=0; Activity<GetActivityCount(TaskID); Activity++) {
|
for(int Activity=0; Activity<GetActivityCount(TaskID); Activity++) {
|
||||||
if(c->GetTaskActivityState(TaskIndex, Activity) != ActivityHidden) {
|
if(c->GetTaskActivityState(Tasks[TaskID]->type, TaskIndex, Activity) != ActivityHidden) {
|
||||||
Log(Logs::General, Logs::Tasks, "[UPDATE] Long: %i, %i, %i Complete=%i", TaskID, Activity, TaskIndex, TaskComplete);
|
Log(Logs::General, Logs::Tasks, "[UPDATE] Long: %i, %i, %i Complete=%i", TaskID, Activity, TaskIndex, TaskComplete);
|
||||||
if(Activity==GetActivityCount(TaskID)-1)
|
if(Activity==GetActivityCount(TaskID)-1)
|
||||||
SendTaskActivityLong(c, TaskID, Activity, TaskIndex,
|
SendTaskActivityLong(c, TaskID, Activity, TaskIndex,
|
||||||
@ -2886,21 +2886,57 @@ void TaskManager::SendActiveTaskDescription(Client *c, int TaskID, ClientTaskInf
|
|||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClientTaskState::IsTaskActivityCompleted(int index, int ActivityID) {
|
bool ClientTaskState::IsTaskActivityCompleted(TaskType type, int index, int ActivityID)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case TaskType::Task:
|
||||||
|
if (index != 0)
|
||||||
|
return false;
|
||||||
|
return ActiveTask.Activity[ActivityID].State == ActivityCompleted;
|
||||||
|
case TaskType::Shared:
|
||||||
|
return false; // TODO: shared tasks
|
||||||
|
case TaskType::Quest:
|
||||||
|
if (index < MAXACTIVEQUESTS)
|
||||||
|
return ActiveQuests[index].Activity[ActivityID].State == ActivityCompleted;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return (ActiveQuests[index].Activity[ActivityID].State == ActivityCompleted);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ActivityState ClientTaskState::GetTaskActivityState(int index, int ActivityID) {
|
// should we be defaulting to hidden?
|
||||||
|
ActivityState ClientTaskState::GetTaskActivityState(TaskType type, int index, int ActivityID)
|
||||||
|
{
|
||||||
return ActiveQuests[index].Activity[ActivityID].State;
|
switch (type) {
|
||||||
|
case TaskType::Task:
|
||||||
|
if (index != 0)
|
||||||
|
return ActivityHidden;
|
||||||
|
return ActiveTask.Activity[ActivityID].State;
|
||||||
|
case TaskType::Shared:
|
||||||
|
return ActivityHidden; // TODO: shared tasks
|
||||||
|
case TaskType::Quest:
|
||||||
|
if (index < MAXACTIVEQUESTS)
|
||||||
|
return ActiveQuests[index].Activity[ActivityID].State;
|
||||||
|
default:
|
||||||
|
return ActivityHidden;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ClientTaskState::GetTaskActivityDoneCount(int index, int ActivityID) {
|
int ClientTaskState::GetTaskActivityDoneCount(TaskType type, int index, int ActivityID)
|
||||||
|
{
|
||||||
return ActiveQuests[index].Activity[ActivityID].DoneCount;
|
switch (type) {
|
||||||
|
case TaskType::Task:
|
||||||
|
if (index != 0)
|
||||||
|
return 0;
|
||||||
|
return ActiveTask.Activity[ActivityID].DoneCount;
|
||||||
|
case TaskType::Shared:
|
||||||
|
return 0; // TODO: shared tasks
|
||||||
|
case TaskType::Quest:
|
||||||
|
if (index < MAXACTIVEQUESTS)
|
||||||
|
return ActiveQuests[index].Activity[ActivityID].DoneCount;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ClientTaskState::GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID){
|
int ClientTaskState::GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID){
|
||||||
|
|||||||
@ -196,8 +196,8 @@ public:
|
|||||||
void ShowClientTasks(Client *c);
|
void ShowClientTasks(Client *c);
|
||||||
inline int GetActiveTaskCount() { return ActiveTaskCount; }
|
inline int GetActiveTaskCount() { return ActiveTaskCount; }
|
||||||
int GetActiveTaskID(int index);
|
int GetActiveTaskID(int index);
|
||||||
bool IsTaskActivityCompleted(int index, int ActivityID);
|
bool IsTaskActivityCompleted(TaskType type, int index, int ActivityID);
|
||||||
int GetTaskActivityDoneCount(int index, int ActivityID);
|
int GetTaskActivityDoneCount(TaskType type, int index, int ActivityID);
|
||||||
int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID);
|
int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID);
|
||||||
int GetTaskStartTime(int index);
|
int GetTaskStartTime(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);
|
||||||
@ -206,7 +206,7 @@ public:
|
|||||||
int IsTaskCompleted(int TaskID);
|
int IsTaskCompleted(int TaskID);
|
||||||
bool IsTaskActive(int TaskID);
|
bool IsTaskActive(int TaskID);
|
||||||
bool IsTaskActivityActive(int TaskID, int ActivityID);
|
bool IsTaskActivityActive(int TaskID, int ActivityID);
|
||||||
ActivityState GetTaskActivityState(int index, int ActivityID);
|
ActivityState GetTaskActivityState(TaskType type, int index, int ActivityID);
|
||||||
void UpdateTaskActivity(Client *c, int TaskID, int ActivityID, int Count, bool ignore_quest_update = false);
|
void UpdateTaskActivity(Client *c, int TaskID, int ActivityID, int Count, bool ignore_quest_update = false);
|
||||||
void ResetTaskActivity(Client *c, int TaskID, int ActivityID);
|
void ResetTaskActivity(Client *c, int TaskID, int ActivityID);
|
||||||
void CancelTask(Client *c, int SequenceNumber, TaskType type, bool RemoveFromDB = true);
|
void CancelTask(Client *c, int SequenceNumber, TaskType type, bool RemoveFromDB = true);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user