mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 13:41:31 +00:00
DisableTask converted to QueryDatabase
This commit is contained in:
parent
2c275f603a
commit
5f11e91da2
@ -728,28 +728,31 @@ void ClientTaskState::EnableTask(int characterID, int taskCount, int *tasks) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientTaskState::DisableTask(int CharID, int TaskCount, int *TaskList) {
|
void ClientTaskState::DisableTask(int charID, int taskCount, int *taskList) {
|
||||||
|
|
||||||
// Check if the Task is enabled for this client
|
// Check if the Task is enabled for this client
|
||||||
//
|
//
|
||||||
std::vector<int> TasksDisabled;
|
std::vector<int> tasksDisabled;
|
||||||
std::vector<int>::iterator Iterator;
|
|
||||||
|
|
||||||
for(int i=0; i<TaskCount; i++) {
|
for(int i=0; i<taskCount; i++) {
|
||||||
Iterator = EnabledTasks.begin();
|
auto iterator = EnabledTasks.begin();
|
||||||
bool RemoveTask = false;
|
bool removeTask = false;
|
||||||
|
|
||||||
while(Iterator != EnabledTasks.end()) {
|
while(iterator != EnabledTasks.end()) {
|
||||||
if((*Iterator) == TaskList[i]) {
|
if((*iterator) == taskList[i]) {
|
||||||
RemoveTask = true;
|
removeTask = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if((*Iterator) > TaskList[i]) break;
|
|
||||||
++Iterator;
|
if((*iterator) > taskList[i])
|
||||||
|
break;
|
||||||
|
|
||||||
|
++iterator;
|
||||||
}
|
}
|
||||||
if(RemoveTask) {
|
|
||||||
EnabledTasks.erase(Iterator);
|
if(removeTask) {
|
||||||
TasksDisabled.push_back(TaskList[i]);
|
EnabledTasks.erase(iterator);
|
||||||
|
tasksDisabled.push_back(taskList[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -757,40 +760,20 @@ void ClientTaskState::DisableTask(int CharID, int TaskCount, int *TaskList) {
|
|||||||
for(unsigned int i=0; i<EnabledTasks.size(); i++)
|
for(unsigned int i=0; i<EnabledTasks.size(); i++)
|
||||||
_log(TASKS__UPDATE, "%i ", EnabledTasks[i]);
|
_log(TASKS__UPDATE, "%i ", EnabledTasks[i]);
|
||||||
|
|
||||||
if(TasksDisabled.size() == 0) return;
|
if(tasksDisabled.size() == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
std::string TaskQuery="DELETE FROM character_enabledtasks WHERE ";
|
std::stringstream queryStream(StringFormat("DELETE FROM character_enabledtasks WHERE charid = %i AND (", charID));
|
||||||
|
|
||||||
const char *ERR_MYSQLERROR = "[TASKS]Error in ClientTaskState::DisableTask %s %s";
|
for(unsigned int i=0; i<tasksDisabled.size(); i++)
|
||||||
|
queryStream << i ? StringFormat("taskid = %i ", tasksDisabled[i]): StringFormat("OR taskid = %i ", tasksDisabled[i]);
|
||||||
|
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
queryStream << ")";
|
||||||
char* query = 0;
|
std::string query = queryStream.str();
|
||||||
|
_log(TASKS__UPDATE, "Executing query %s", query.c_str());
|
||||||
char *buf = 0;
|
auto results = database.QueryDatabase(query);
|
||||||
|
if(!results.Success())
|
||||||
MakeAnyLenString(&buf, "charid=%i AND (", CharID);
|
LogFile->write(EQEMuLog::Error, "[TASKS]Error in ClientTaskState::DisableTask %s %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
TaskQuery += buf;
|
|
||||||
safe_delete_array(buf);
|
|
||||||
|
|
||||||
for(unsigned int i=0; i<TasksDisabled.size(); i++) {
|
|
||||||
if(i==0)
|
|
||||||
MakeAnyLenString(&buf, "taskid=%i", TasksDisabled[i]);
|
|
||||||
else
|
|
||||||
MakeAnyLenString(&buf, " OR taskid=%i", TasksDisabled[i]);
|
|
||||||
|
|
||||||
TaskQuery += buf;
|
|
||||||
safe_delete_array(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
TaskQuery = TaskQuery + ")";
|
|
||||||
_log(TASKS__UPDATE, "Executing query %s", TaskQuery.c_str());
|
|
||||||
|
|
||||||
if(!database.RunQuery(query,MakeAnyLenString(&query, TaskQuery.c_str()), errbuf)) {
|
|
||||||
|
|
||||||
LogFile->write(EQEMuLog::Error, ERR_MYSQLERROR, query, errbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
safe_delete_array(query);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClientTaskState::IsTaskEnabled(int TaskID) {
|
bool ClientTaskState::IsTaskEnabled(int TaskID) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user