mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
Change the ActivityInformation::Text*s to std::string
This commit is contained in:
parent
6b64a8183d
commit
9e64132261
129
zone/tasks.cpp
129
zone/tasks.cpp
@ -48,11 +48,6 @@ TaskManager::TaskManager() {
|
|||||||
TaskManager::~TaskManager() {
|
TaskManager::~TaskManager() {
|
||||||
for(int i=0; i<MAXTASKS; i++) {
|
for(int i=0; i<MAXTASKS; i++) {
|
||||||
if(Tasks[i] != nullptr) {
|
if(Tasks[i] != nullptr) {
|
||||||
for(int j=0; j<Tasks[i]->ActivityCount; j++) {
|
|
||||||
safe_delete_array(Tasks[i]->Activity[j].Text1);
|
|
||||||
safe_delete_array(Tasks[i]->Activity[j].Text2);
|
|
||||||
safe_delete_array(Tasks[i]->Activity[j].Text3);
|
|
||||||
}
|
|
||||||
safe_delete_array(Tasks[i]->Title);
|
safe_delete_array(Tasks[i]->Title);
|
||||||
safe_delete_array(Tasks[i]->Description);
|
safe_delete_array(Tasks[i]->Description);
|
||||||
safe_delete_array(Tasks[i]->Reward);
|
safe_delete_array(Tasks[i]->Reward);
|
||||||
@ -98,12 +93,6 @@ bool TaskManager::LoadSingleTask(int TaskID) {
|
|||||||
|
|
||||||
// If this task already exists in memory, free all the dynamically allocated strings.
|
// If this task already exists in memory, free all the dynamically allocated strings.
|
||||||
if(Tasks[TaskID]) {
|
if(Tasks[TaskID]) {
|
||||||
|
|
||||||
for(int j=0; j<Tasks[TaskID]->ActivityCount; j++) {
|
|
||||||
safe_delete_array(Tasks[TaskID]->Activity[j].Text1);
|
|
||||||
safe_delete_array(Tasks[TaskID]->Activity[j].Text2);
|
|
||||||
safe_delete_array(Tasks[TaskID]->Activity[j].Text3);
|
|
||||||
}
|
|
||||||
safe_delete_array(Tasks[TaskID]->Title);
|
safe_delete_array(Tasks[TaskID]->Title);
|
||||||
safe_delete_array(Tasks[TaskID]->Description);
|
safe_delete_array(Tasks[TaskID]->Description);
|
||||||
safe_delete_array(Tasks[TaskID]->Reward);
|
safe_delete_array(Tasks[TaskID]->Reward);
|
||||||
@ -119,8 +108,8 @@ void TaskManager::ReloadGoalLists() {
|
|||||||
Log(Logs::Detail, Logs::Tasks,"TaskManager::LoadTasks LoadLists failed");
|
Log(Logs::Detail, Logs::Tasks,"TaskManager::LoadTasks LoadLists failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TaskManager::LoadTasks(int singleTask) {
|
bool TaskManager::LoadTasks(int singleTask)
|
||||||
|
{
|
||||||
// If TaskID !=0, then just load the task specified.
|
// If TaskID !=0, then just load the task specified.
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] TaskManager::LoadTasks Called");
|
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] TaskManager::LoadTasks Called");
|
||||||
|
|
||||||
@ -135,13 +124,14 @@ bool TaskManager::LoadTasks(int singleTask) {
|
|||||||
query = StringFormat("SELECT `id`, `duration`, `title`, `description`, `reward`, "
|
query = StringFormat("SELECT `id`, `duration`, `title`, `description`, `reward`, "
|
||||||
"`rewardid`, `cashreward`, `xpreward`, `rewardmethod`, "
|
"`rewardid`, `cashreward`, `xpreward`, `rewardmethod`, "
|
||||||
"`startzone`, `minlevel`, `maxlevel`, `repeatable` "
|
"`startzone`, `minlevel`, `maxlevel`, `repeatable` "
|
||||||
"FROM `tasks` WHERE `id` < %i", MAXTASKS);
|
"FROM `tasks` WHERE `id` < %i",
|
||||||
}
|
MAXTASKS);
|
||||||
else
|
} else
|
||||||
query = StringFormat("SELECT `id`, `duration`, `title`, `description`, `reward`, "
|
query = StringFormat("SELECT `id`, `duration`, `title`, `description`, `reward`, "
|
||||||
"`rewardid`, `cashreward`, `xpreward`, `rewardmethod`, "
|
"`rewardid`, `cashreward`, `xpreward`, `rewardmethod`, "
|
||||||
"`startzone`, `minlevel`, `maxlevel`, `repeatable` "
|
"`startzone`, `minlevel`, `maxlevel`, `repeatable` "
|
||||||
"FROM `tasks` WHERE `id` = %i",singleTask);
|
"FROM `tasks` WHERE `id` = %i",
|
||||||
|
singleTask);
|
||||||
|
|
||||||
const char *ERR_MYSQLERROR = "[TASKS]Error in TaskManager::LoadTasks: %s";
|
const char *ERR_MYSQLERROR = "[TASKS]Error in TaskManager::LoadTasks: %s";
|
||||||
|
|
||||||
@ -156,7 +146,8 @@ bool TaskManager::LoadTasks(int singleTask) {
|
|||||||
|
|
||||||
if ((taskID <= 0) || (taskID >= MAXTASKS)) {
|
if ((taskID <= 0) || (taskID >= MAXTASKS)) {
|
||||||
// This shouldn't happen, as the SELECT is bounded by MAXTASKS
|
// This shouldn't happen, as the SELECT is bounded by MAXTASKS
|
||||||
Log(Logs::General, Logs::Error, "[TASKS]Task ID %i out of range while loading tasks from database", taskID);
|
Log(Logs::General, Logs::Error,
|
||||||
|
"[TASKS]Task ID %i out of range while loading tasks from database", taskID);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,28 +171,30 @@ bool TaskManager::LoadTasks(int singleTask) {
|
|||||||
Tasks[taskID]->SequenceMode = ActivitiesSequential;
|
Tasks[taskID]->SequenceMode = ActivitiesSequential;
|
||||||
Tasks[taskID]->LastStep = 0;
|
Tasks[taskID]->LastStep = 0;
|
||||||
|
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] TaskID: %5i, Duration: %8i, StartZone: %3i Reward: %s MinLevel %i MaxLevel %i Repeatable: %s",
|
Log(Logs::General, Logs::Tasks,
|
||||||
|
"[GLOBALLOAD] TaskID: %5i, Duration: %8i, StartZone: %3i Reward: %s MinLevel %i MaxLevel %i "
|
||||||
|
"Repeatable: %s",
|
||||||
taskID, Tasks[taskID]->Duration, Tasks[taskID]->StartZone, Tasks[taskID]->Reward,
|
taskID, Tasks[taskID]->Duration, Tasks[taskID]->StartZone, Tasks[taskID]->Reward,
|
||||||
Tasks[taskID]->MinLevel, Tasks[taskID]->MaxLevel,
|
Tasks[taskID]->MinLevel, Tasks[taskID]->MaxLevel, Tasks[taskID]->Repeatable ? "Yes" : "No");
|
||||||
Tasks[taskID]->Repeatable ? "Yes" : "No");
|
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Title: %s", Tasks[taskID]->Title);
|
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Title: %s", Tasks[taskID]->Title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (singleTask == 0)
|
if (singleTask == 0)
|
||||||
query = StringFormat("SELECT `taskid`, `step`, `activityid`, `activitytype`, "
|
query = StringFormat("SELECT `taskid`, `step`, `activityid`, `activitytype`, "
|
||||||
"`text1`, `text2`, `text3`, `goalid`, `goalmethod`, "
|
"`text1`, `text2`, `text3`, `goalid`, `goalmethod`, "
|
||||||
"`goalcount`, `delivertonpc`, `zoneid`, `optional` "
|
"`goalcount`, `delivertonpc`, `zoneid`, `optional` "
|
||||||
"FROM `activities` "
|
"FROM `activities` "
|
||||||
"WHERE `taskid` < %i AND `activityid` < %i "
|
"WHERE `taskid` < %i AND `activityid` < %i "
|
||||||
"ORDER BY taskid, activityid ASC", MAXTASKS, MAXACTIVITIESPERTASK);
|
"ORDER BY taskid, activityid ASC",
|
||||||
|
MAXTASKS, MAXACTIVITIESPERTASK);
|
||||||
else
|
else
|
||||||
query = StringFormat("SELECT `taskid`, `step`, `activityid`, `activitytype`, "
|
query = StringFormat("SELECT `taskid`, `step`, `activityid`, `activitytype`, "
|
||||||
"`text1`, `text2`, `text3`, `goalid`, `goalmethod`, "
|
"`text1`, `text2`, `text3`, `goalid`, `goalmethod`, "
|
||||||
"`goalcount`, `delivertonpc`, `zoneid`, `optional` "
|
"`goalcount`, `delivertonpc`, `zoneid`, `optional` "
|
||||||
"FROM `activities` "
|
"FROM `activities` "
|
||||||
"WHERE `taskid` = %i AND `activityid` < %i "
|
"WHERE `taskid` = %i AND `activityid` < %i "
|
||||||
"ORDER BY taskid, activityid ASC", singleTask, MAXACTIVITIESPERTASK);
|
"ORDER BY taskid, activityid ASC",
|
||||||
|
singleTask, MAXACTIVITIESPERTASK);
|
||||||
results = database.QueryDatabase(query);
|
results = database.QueryDatabase(query);
|
||||||
if (!results.Success()) {
|
if (!results.Success()) {
|
||||||
Log(Logs::General, Logs::Error, ERR_MYSQLERROR, results.ErrorMessage().c_str());
|
Log(Logs::General, Logs::Error, ERR_MYSQLERROR, results.ErrorMessage().c_str());
|
||||||
@ -216,13 +209,17 @@ bool TaskManager::LoadTasks(int singleTask) {
|
|||||||
|
|
||||||
if ((taskID <= 0) || (taskID >= MAXTASKS) || (activityID < 0) || (activityID >= MAXACTIVITIESPERTASK)) {
|
if ((taskID <= 0) || (taskID >= MAXTASKS) || (activityID < 0) || (activityID >= MAXACTIVITIESPERTASK)) {
|
||||||
// This shouldn't happen, as the SELECT is bounded by MAXTASKS
|
// This shouldn't happen, as the SELECT is bounded by MAXTASKS
|
||||||
Log(Logs::General, Logs::Error, "[TASKS]Task or Activity ID (%i, %i) out of range while loading "
|
Log(Logs::General, Logs::Error,
|
||||||
"activities from database", taskID, activityID);
|
"[TASKS]Task or Activity ID (%i, %i) out of range while loading "
|
||||||
|
"activities from database",
|
||||||
|
taskID, activityID);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tasks[taskID] == nullptr) {
|
if (Tasks[taskID] == nullptr) {
|
||||||
Log(Logs::General, Logs::Error, "[TASKS]Activity for non-existent task (%i, %i) while loading activities from database", taskID, activityID);
|
Log(Logs::General, Logs::Error,
|
||||||
|
"[TASKS]Activity for non-existent task (%i, %i) while loading activities from database",
|
||||||
|
taskID, activityID);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,33 +236,23 @@ bool TaskManager::LoadTasks(int singleTask) {
|
|||||||
// ERR_NOTASK errors.
|
// ERR_NOTASK errors.
|
||||||
// Change to (activityID != (Tasks[taskID]->ActivityCount + 1)) to index from 1
|
// Change to (activityID != (Tasks[taskID]->ActivityCount + 1)) to index from 1
|
||||||
if (activityID != Tasks[taskID]->ActivityCount) {
|
if (activityID != Tasks[taskID]->ActivityCount) {
|
||||||
Log(Logs::General, Logs::Error, "[TASKS]Activities for Task %i are not sequential starting at 0. Not loading task.", taskID, activityID);
|
Log(Logs::General, Logs::Error,
|
||||||
|
"[TASKS]Activities for Task %i are not sequential starting at 0. Not loading task.", taskID,
|
||||||
|
activityID);
|
||||||
Tasks[taskID] = nullptr;
|
Tasks[taskID] = nullptr;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Type = atoi(row[3]);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Type = atoi(row[3]);
|
||||||
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text1 = new char[strlen(row[4]) + 1];
|
if (row[4][0])
|
||||||
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text1 = row[4];
|
||||||
|
|
||||||
if(strlen(row[4])>0)
|
if (row[5][0])
|
||||||
strcpy(Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text1, row[4]);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text2 = row[5];
|
||||||
else
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text1[0]=0;
|
|
||||||
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text2 = new char[strlen(row[5]) + 1];
|
if (row[6][0])
|
||||||
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text3 = row[6];
|
||||||
if(strlen(row[5])>0)
|
|
||||||
strcpy(Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text2, row[5]);
|
|
||||||
else
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text2[0]=0;
|
|
||||||
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text3 = new char[strlen(row[6]) + 1];
|
|
||||||
|
|
||||||
if(strlen(row[6])>0)
|
|
||||||
strcpy(Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text3, row[6]);
|
|
||||||
else
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text3[0]=0;
|
|
||||||
|
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].GoalID = atoi(row[7]);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].GoalID = atoi(row[7]);
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].GoalMethod = (TaskMethodType)atoi(row[8]);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].GoalMethod = (TaskMethodType)atoi(row[8]);
|
||||||
@ -274,7 +261,8 @@ bool TaskManager::LoadTasks(int singleTask) {
|
|||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].ZoneID = atoi(row[11]);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].ZoneID = atoi(row[11]);
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Optional = atoi(row[12]);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Optional = atoi(row[12]);
|
||||||
|
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Activity Slot %2i: ID %i for Task %5i. Type: %3i, GoalID: %8i, "
|
Log(Logs::General, Logs::Tasks,
|
||||||
|
"[GLOBALLOAD] Activity Slot %2i: ID %i for Task %5i. Type: %3i, GoalID: %8i, "
|
||||||
"GoalMethod: %i, GoalCount: %3i, ZoneID:%3i",
|
"GoalMethod: %i, GoalCount: %3i, ZoneID:%3i",
|
||||||
Tasks[taskID]->ActivityCount, activityID, taskID,
|
Tasks[taskID]->ActivityCount, activityID, taskID,
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Type,
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Type,
|
||||||
@ -283,9 +271,12 @@ bool TaskManager::LoadTasks(int singleTask) {
|
|||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].GoalCount,
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].GoalCount,
|
||||||
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].ZoneID);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].ZoneID);
|
||||||
|
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Text1: %s", Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text1);
|
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Text1: %s",
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Text2: %s", Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text2);
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text1.c_str());
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Text3: %s", Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text3);
|
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Text2: %s",
|
||||||
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text2.c_str());
|
||||||
|
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Text3: %s",
|
||||||
|
Tasks[taskID]->Activity[Tasks[taskID]->ActivityCount].Text3.c_str());
|
||||||
|
|
||||||
Tasks[taskID]->ActivityCount++;
|
Tasks[taskID]->ActivityCount++;
|
||||||
}
|
}
|
||||||
@ -2348,10 +2339,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) +
|
||||||
strlen(Task->Activity[i].Text1) + 1 +
|
Task->Activity[i].Text1.size() + 1 +
|
||||||
strlen(Task->Activity[i].Text2) + 1 +
|
Task->Activity[i].Text2.size() + 1 +
|
||||||
sizeof(TaskHistoryReplyData2_Struct) +
|
sizeof(TaskHistoryReplyData2_Struct) +
|
||||||
strlen(Task->Activity[i].Text3) + 1;
|
Task->Activity[i].Text3.size() + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2371,8 +2362,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);
|
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].Text1.c_str());
|
||||||
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].Text2);
|
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].Text2.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;
|
||||||
@ -2380,7 +2371,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);
|
VARSTRUCT_ENCODE_STRING(Ptr, Task->Activity[i].Text3.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2562,9 +2553,9 @@ void TaskManager::SendTaskActivityLong(Client *c, int TaskID, int ActivityID, in
|
|||||||
TaskActivityTrailer_Struct* tat;
|
TaskActivityTrailer_Struct* tat;
|
||||||
|
|
||||||
long PacketLength = sizeof(TaskActivityHeader_Struct) + +sizeof(TaskActivityData1_Struct) + sizeof(TaskActivityTrailer_Struct);
|
long PacketLength = sizeof(TaskActivityHeader_Struct) + +sizeof(TaskActivityData1_Struct) + sizeof(TaskActivityTrailer_Struct);
|
||||||
PacketLength = PacketLength + strlen(Tasks[TaskID]->Activity[ActivityID].Text1) + 1 +
|
PacketLength = PacketLength + Tasks[TaskID]->Activity[ActivityID].Text1.size() + 1 +
|
||||||
strlen(Tasks[TaskID]->Activity[ActivityID].Text2) + 1 +
|
Tasks[TaskID]->Activity[ActivityID].Text2.size() + 1 +
|
||||||
strlen(Tasks[TaskID]->Activity[ActivityID].Text3) + 1;
|
Tasks[TaskID]->Activity[ActivityID].Text3.size() + 1;
|
||||||
|
|
||||||
auto outapp = new EQApplicationPacket(OP_TaskActivity, PacketLength);
|
auto outapp = new EQApplicationPacket(OP_TaskActivity, PacketLength);
|
||||||
|
|
||||||
@ -2587,10 +2578,10 @@ void TaskManager::SendTaskActivityLong(Client *c, int TaskID, int ActivityID, in
|
|||||||
tah->unknown5 = 0x00000000;
|
tah->unknown5 = 0x00000000;
|
||||||
// One of these unknown fields maybe related to the 'Use On' activity types
|
// One of these unknown fields maybe related to the 'Use On' activity types
|
||||||
Ptr = (char *) tah + sizeof(TaskActivityHeader_Struct);
|
Ptr = (char *) tah + sizeof(TaskActivityHeader_Struct);
|
||||||
sprintf(Ptr, "%s", Tasks[TaskID]->Activity[ActivityID].Text1);
|
sprintf(Ptr, "%s", Tasks[TaskID]->Activity[ActivityID].Text1.c_str());
|
||||||
Ptr = Ptr + strlen(Ptr) + 1;
|
Ptr = Ptr + strlen(Ptr) + 1;
|
||||||
|
|
||||||
sprintf(Ptr, "%s", Tasks[TaskID]->Activity[ActivityID].Text2);
|
sprintf(Ptr, "%s", Tasks[TaskID]->Activity[ActivityID].Text2.c_str());
|
||||||
Ptr = Ptr + strlen(Ptr) + 1;
|
Ptr = Ptr + strlen(Ptr) + 1;
|
||||||
|
|
||||||
tad1 = (TaskActivityData1_Struct*)Ptr;
|
tad1 = (TaskActivityData1_Struct*)Ptr;
|
||||||
@ -2614,7 +2605,7 @@ void TaskManager::SendTaskActivityLong(Client *c, int TaskID, int ActivityID, in
|
|||||||
tad1->unknown3 = 0x00000000;
|
tad1->unknown3 = 0x00000000;
|
||||||
|
|
||||||
Ptr = (char *) tad1 + sizeof(TaskActivityData1_Struct);
|
Ptr = (char *) tad1 + sizeof(TaskActivityData1_Struct);
|
||||||
sprintf(Ptr, "%s", Tasks[TaskID]->Activity[ActivityID].Text3);
|
sprintf(Ptr, "%s", Tasks[TaskID]->Activity[ActivityID].Text3.c_str());
|
||||||
Ptr = Ptr + strlen(Ptr) + 1;
|
Ptr = Ptr + strlen(Ptr) + 1;
|
||||||
|
|
||||||
tat = (TaskActivityTrailer_Struct*)Ptr;
|
tat = (TaskActivityTrailer_Struct*)Ptr;
|
||||||
@ -2641,9 +2632,9 @@ void TaskManager::SendTaskActivityNew(Client *c, int TaskID, int ActivityID, int
|
|||||||
String2Len = 4;
|
String2Len = 4;
|
||||||
|
|
||||||
long PacketLength = 29 + 4 + 8 + 4 + 4 + 5;
|
long PacketLength = 29 + 4 + 8 + 4 + 4 + 5;
|
||||||
PacketLength = PacketLength + strlen(Tasks[TaskID]->Activity[ActivityID].Text1) + 1 +
|
PacketLength = PacketLength + Tasks[TaskID]->Activity[ActivityID].Text1.size() + 1 +
|
||||||
strlen(Tasks[TaskID]->Activity[ActivityID].Text2) + 1 +
|
Tasks[TaskID]->Activity[ActivityID].Text2.size() + 1 +
|
||||||
strlen(Tasks[TaskID]->Activity[ActivityID].Text3) + 1 +
|
Tasks[TaskID]->Activity[ActivityID].Text3.size() + 1 +
|
||||||
((strlen(itoa(Tasks[TaskID]->Activity[ActivityID].ZoneID)) + 1) * 2) +
|
((strlen(itoa(Tasks[TaskID]->Activity[ActivityID].ZoneID)) + 1) * 2) +
|
||||||
3 + String2Len;
|
3 + String2Len;
|
||||||
|
|
||||||
@ -2666,10 +2657,10 @@ void TaskManager::SendTaskActivityNew(Client *c, int TaskID, int ActivityID, int
|
|||||||
outapp->WriteUInt8(0); // unknown5
|
outapp->WriteUInt8(0); // unknown5
|
||||||
|
|
||||||
// One of these unknown fields maybe related to the 'Use On' activity types
|
// One of these unknown fields maybe related to the 'Use On' activity types
|
||||||
outapp->WriteString(Tasks[TaskID]->Activity[ActivityID].Text1);
|
outapp->WriteString(Tasks[TaskID]->Activity[ActivityID].Text1.c_str());
|
||||||
|
|
||||||
outapp->WriteUInt32((strlen(Tasks[TaskID]->Activity[ActivityID].Text2) + 1)); // String Length - Add in null terminator
|
outapp->WriteUInt32(Tasks[TaskID]->Activity[ActivityID].Text2.size() + 1); // String Length - Add in null terminator
|
||||||
outapp->WriteString(Tasks[TaskID]->Activity[ActivityID].Text2);
|
outapp->WriteString(Tasks[TaskID]->Activity[ActivityID].Text2.c_str());
|
||||||
|
|
||||||
// Goal Count
|
// Goal Count
|
||||||
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
||||||
@ -2693,7 +2684,7 @@ void TaskManager::SendTaskActivityNew(Client *c, int TaskID, int ActivityID, int
|
|||||||
outapp->WriteString(itoa(Tasks[TaskID]->Activity[ActivityID].ZoneID));
|
outapp->WriteString(itoa(Tasks[TaskID]->Activity[ActivityID].ZoneID));
|
||||||
outapp->WriteUInt32(0); // unknown7
|
outapp->WriteUInt32(0); // unknown7
|
||||||
|
|
||||||
outapp->WriteString(Tasks[TaskID]->Activity[ActivityID].Text3);
|
outapp->WriteString(Tasks[TaskID]->Activity[ActivityID].Text3.c_str());
|
||||||
|
|
||||||
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
if(Tasks[TaskID]->Activity[ActivityID].Type != ActivityGiveCash)
|
||||||
outapp->WriteUInt32(c->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID)); // DoneCount
|
outapp->WriteUInt32(c->GetTaskActivityDoneCount(ClientTaskIndex, ActivityID)); // DoneCount
|
||||||
|
|||||||
@ -24,6 +24,7 @@ Copyright (C) 2001-2004 EQEMu Development Team (http://eqemulator.net)
|
|||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#define MAXTASKS 10000
|
#define MAXTASKS 10000
|
||||||
#define MAXTASKSETS 1000
|
#define MAXTASKSETS 1000
|
||||||
@ -101,9 +102,9 @@ typedef enum { METHODSINGLEID = 0, METHODLIST = 1, METHODQUEST = 2 } TaskMethodT
|
|||||||
struct ActivityInformation {
|
struct ActivityInformation {
|
||||||
int StepNumber;
|
int StepNumber;
|
||||||
int Type;
|
int Type;
|
||||||
char *Text1;
|
std::string Text1;
|
||||||
char *Text2;
|
std::string Text2;
|
||||||
char *Text3;
|
std::string Text3;
|
||||||
int GoalID;
|
int GoalID;
|
||||||
TaskMethodType GoalMethod;
|
TaskMethodType GoalMethod;
|
||||||
int GoalCount;
|
int GoalCount;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user