mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-18 19:41:30 +00:00
Bunch more functions
This commit is contained in:
parent
b59a41829b
commit
9b229779db
@ -2480,10 +2480,10 @@ void ClientTaskState::SendTaskHistory(Client *c, int TaskIndex) {
|
|||||||
if(CompletedTasks[AdjustedTaskIndex].ActivityDone[i]) {
|
if(CompletedTasks[AdjustedTaskIndex].ActivityDone[i]) {
|
||||||
CompletedActivityCount++;
|
CompletedActivityCount++;
|
||||||
PacketLength = PacketLength + sizeof(TaskHistoryReplyData1_Struct) +
|
PacketLength = PacketLength + sizeof(TaskHistoryReplyData1_Struct) +
|
||||||
Task->Activity[i].Text1.size() + 1 +
|
Task->Activity[i].target_name.size() + 1 +
|
||||||
Task->Activity[i].Text2.size() + 1 +
|
Task->Activity[i].item_list.size() + 1 +
|
||||||
sizeof(TaskHistoryReplyData2_Struct) +
|
sizeof(TaskHistoryReplyData2_Struct) +
|
||||||
Task->Activity[i].Text3.size() + 1;
|
Task->Activity[i].desc_override.size() + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2503,8 +2503,8 @@ void ClientTaskState::SendTaskHistory(Client *c, int TaskIndex) {
|
|||||||
thd1 = (TaskHistoryReplyData1_Struct*)Ptr;
|
thd1 = (TaskHistoryReplyData1_Struct*)Ptr;
|
||||||
thd1->ActivityType = Task->Activity[i].Type;
|
thd1->ActivityType = Task->Activity[i].Type;
|
||||||
Ptr = (char *)thd1 + sizeof(TaskHistoryReplyData1_Struct);
|
Ptr = (char *)thd1 + sizeof(TaskHistoryReplyData1_Struct);
|
||||||
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].Text1.c_str());
|
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].target_name.c_str());
|
||||||
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].Text2.c_str());
|
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].item_list.c_str());
|
||||||
thd2 = (TaskHistoryReplyData2_Struct*)Ptr;
|
thd2 = (TaskHistoryReplyData2_Struct*)Ptr;
|
||||||
thd2->GoalCount = Task->Activity[i].GoalCount;
|
thd2->GoalCount = Task->Activity[i].GoalCount;
|
||||||
thd2->unknown04 = 0xffffffff;
|
thd2->unknown04 = 0xffffffff;
|
||||||
@ -2512,7 +2512,7 @@ void ClientTaskState::SendTaskHistory(Client *c, int TaskIndex) {
|
|||||||
thd2->ZoneID = Task->Activity[i].ZoneID;
|
thd2->ZoneID = Task->Activity[i].ZoneID;
|
||||||
thd2->unknown16 = 0x00000000;
|
thd2->unknown16 = 0x00000000;
|
||||||
Ptr = (char *)thd2 + sizeof(TaskHistoryReplyData2_Struct);
|
Ptr = (char *)thd2 + sizeof(TaskHistoryReplyData2_Struct);
|
||||||
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].Text3.c_str());
|
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].desc_override.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2799,34 +2799,35 @@ void TaskManager::SendActiveTasksToClient(Client *c, bool TaskComplete)
|
|||||||
if (!state)
|
if (!state)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (int TaskIndex=0; TaskIndex<MAXACTIVEQUESTS; TaskIndex++) {
|
for (int TaskIndex = 0; TaskIndex < MAXACTIVEQUESTS + 1; TaskIndex++) {
|
||||||
int TaskID = c->GetActiveTaskID(TaskIndex);
|
int TaskID = state->ActiveTasks[TaskIndex].TaskID;
|
||||||
if((TaskID==0) || (Tasks[TaskID] ==0)) continue;
|
if ((TaskID == 0) || (Tasks[TaskID] == 0))
|
||||||
int StartTime = c->GetTaskStartTime(Tasks[TaskID]->type, TaskIndex);
|
continue;
|
||||||
|
int StartTime = state->ActiveTasks[TaskIndex].AcceptedTime;
|
||||||
|
|
||||||
SendActiveTaskDescription(c, TaskID, state->ActiveQuests[TaskIndex], StartTime, Tasks[TaskID]->Duration, false);
|
SendActiveTaskDescription(c, TaskID, state->ActiveTasks[TaskIndex], StartTime, Tasks[TaskID]->Duration,
|
||||||
Log(Logs::General, Logs::Tasks, "[UPDATE] SendActiveTasksToClient: Task %i, Activities: %i", TaskID, GetActivityCount(TaskID));
|
false);
|
||||||
|
Log(Logs::General, Logs::Tasks, "[UPDATE] SendActiveTasksToClient: Task %i, Activities: %i", TaskID,
|
||||||
|
GetActivityCount(TaskID));
|
||||||
|
|
||||||
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(Tasks[TaskID]->type, 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,
|
||||||
if(Activity==GetActivityCount(TaskID)-1)
|
Activity, TaskIndex, TaskComplete);
|
||||||
|
if (Activity == GetActivityCount(TaskID) - 1)
|
||||||
SendTaskActivityLong(c, TaskID, Activity, TaskIndex,
|
SendTaskActivityLong(c, TaskID, Activity, TaskIndex,
|
||||||
Tasks[TaskID]->Activity[Activity].Optional,
|
Tasks[TaskID]->Activity[Activity].Optional, TaskComplete);
|
||||||
TaskComplete);
|
|
||||||
else
|
else
|
||||||
SendTaskActivityLong(c, TaskID, Activity, TaskIndex,
|
SendTaskActivityLong(c, TaskID, Activity, TaskIndex,
|
||||||
Tasks[TaskID]->Activity[Activity].Optional, 0);
|
Tasks[TaskID]->Activity[Activity].Optional, 0);
|
||||||
}
|
} else {
|
||||||
else {
|
Log(Logs::General, Logs::Tasks, "[UPDATE] Short: %i, %i, %i", TaskID, Activity,
|
||||||
Log(Logs::General, Logs::Tasks, "[UPDATE] Short: %i, %i, %i", TaskID, Activity, TaskIndex);
|
TaskIndex);
|
||||||
SendTaskActivityShort(c, TaskID, Activity, TaskIndex);
|
SendTaskActivityShort(c, TaskID, Activity, TaskIndex);
|
||||||
}
|
}
|
||||||
Sequence++;
|
Sequence++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3089,20 +3090,37 @@ void ClientTaskState::RemoveTask(Client *c, int sequenceNumber, TaskType type)
|
|||||||
int characterID = c->CharacterID();
|
int characterID = c->CharacterID();
|
||||||
Log(Logs::General, Logs::Tasks, "[UPDATE] ClientTaskState Cancel Task %i ", sequenceNumber);
|
Log(Logs::General, Logs::Tasks, "[UPDATE] ClientTaskState Cancel Task %i ", sequenceNumber);
|
||||||
|
|
||||||
|
int task_id = -1;
|
||||||
|
switch (type) {
|
||||||
|
case TaskType::Task:
|
||||||
|
if (sequenceNumber == 0)
|
||||||
|
task_id = ActiveTask.TaskID;
|
||||||
|
break;
|
||||||
|
case TaskType::Quest:
|
||||||
|
if (sequenceNumber < MAXACTIVEQUESTS)
|
||||||
|
task_id = ActiveQuests[sequenceNumber].TaskID;
|
||||||
|
break;
|
||||||
|
case TaskType::Shared: // TODO:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
std::string query = StringFormat("DELETE FROM character_activities WHERE charid=%i AND taskid = %i",
|
std::string query = StringFormat("DELETE FROM character_activities WHERE charid=%i AND taskid = %i",
|
||||||
characterID, ActiveQuests[sequenceNumber].TaskID);
|
characterID, task_id);
|
||||||
auto results = database.QueryDatabase(query);
|
auto results = database.QueryDatabase(query);
|
||||||
if(!results.Success()) {
|
if (!results.Success()) {
|
||||||
Log(Logs::General, Logs::Error, "[TASKS] Error in CientTaskState::CancelTask %s", results.ErrorMessage().c_str());
|
Log(Logs::General, Logs::Error, "[TASKS] Error in CientTaskState::CancelTask %s",
|
||||||
|
results.ErrorMessage().c_str());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log(Logs::General, Logs::Tasks, "[UPDATE] CancelTask: %s", query.c_str());
|
Log(Logs::General, Logs::Tasks, "[UPDATE] CancelTask: %s", query.c_str());
|
||||||
|
|
||||||
query = StringFormat("DELETE FROM character_tasks WHERE charid=%i AND taskid = %i AND type=%i",
|
query = StringFormat("DELETE FROM character_tasks WHERE charid=%i AND taskid = %i AND type=%i", characterID,
|
||||||
characterID, ActiveQuests[sequenceNumber].TaskID, static_cast<int>(type));
|
task_id, static_cast<int>(type));
|
||||||
results = database.QueryDatabase(query);
|
results = database.QueryDatabase(query);
|
||||||
if(!results.Success())
|
if (!results.Success())
|
||||||
Log(Logs::General, Logs::Error, "[TASKS] Error in CientTaskState::CancelTask %s", results.ErrorMessage().c_str());
|
Log(Logs::General, Logs::Error, "[TASKS] Error in CientTaskState::CancelTask %s",
|
||||||
|
results.ErrorMessage().c_str());
|
||||||
|
|
||||||
Log(Logs::General, Logs::Tasks, "[UPDATE] CancelTask: %s", query.c_str());
|
Log(Logs::General, Logs::Tasks, "[UPDATE] CancelTask: %s", query.c_str());
|
||||||
|
|
||||||
@ -3121,7 +3139,6 @@ void ClientTaskState::RemoveTask(Client *c, int sequenceNumber, TaskType type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ClientTaskState::AcceptNewTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement)
|
void ClientTaskState::AcceptNewTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement)
|
||||||
{
|
{
|
||||||
if (!taskmanager || TaskID < 0 || TaskID >= MAXTASKS) {
|
if (!taskmanager || TaskID < 0 || TaskID >= MAXTASKS) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user