mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-18 20:48:26 +00:00
[Quest API] Add AreTasksCompleted() to Perl/Lua. (#4456)
* [Quest API] Add AreTasksCompleted() to Perl/Lua. * Bool
This commit is contained in:
+36
-2
@@ -1409,9 +1409,9 @@ void Lua_Client::FailTask(int task) {
|
||||
self->FailTask(task);
|
||||
}
|
||||
|
||||
bool Lua_Client::IsTaskCompleted(int task) {
|
||||
bool Lua_Client::IsTaskCompleted(int task_id) {
|
||||
Lua_Safe_Call_Bool();
|
||||
return self->IsTaskCompleted(task) != 0;
|
||||
return self->IsTaskCompleted(task_id);
|
||||
}
|
||||
|
||||
bool Lua_Client::IsTaskActive(int task) {
|
||||
@@ -3379,6 +3379,39 @@ uint8 Lua_Client::GetSkillTrainLevel(int skill_id)
|
||||
return self->GetSkillTrainLevel(static_cast<EQ::skills::SkillType>(skill_id), self->GetClass());
|
||||
}
|
||||
|
||||
bool Lua_Client::AreTasksCompleted(luabind::object task_ids)
|
||||
{
|
||||
Lua_Safe_Call_Int();
|
||||
|
||||
if (luabind::type(task_ids) != LUA_TTABLE) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<int> v;
|
||||
int index = 1;
|
||||
while (luabind::type(task_ids[index]) != LUA_TNIL) {
|
||||
auto current_id = task_ids[index];
|
||||
int task_id = 0;
|
||||
if (luabind::type(current_id) != LUA_TNIL) {
|
||||
try {
|
||||
task_id = luabind::object_cast<int>(current_id);
|
||||
} catch(luabind::cast_failed &) {
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
v.push_back(task_id);
|
||||
++index;
|
||||
}
|
||||
|
||||
if (v.empty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return self->AreTasksCompleted(v);
|
||||
}
|
||||
|
||||
luabind::scope lua_register_client() {
|
||||
return luabind::class_<Lua_Client, Lua_Mob>("Client")
|
||||
.def(luabind::constructor<>())
|
||||
@@ -3425,6 +3458,7 @@ luabind::scope lua_register_client() {
|
||||
.def("ApplySpellRaid", (void(Lua_Client::*)(int,int,int,bool))&Lua_Client::ApplySpellRaid)
|
||||
.def("ApplySpellRaid", (void(Lua_Client::*)(int,int,int,bool,bool))&Lua_Client::ApplySpellRaid)
|
||||
.def("ApplySpellRaid", (void(Lua_Client::*)(int,int,int,bool,bool,bool))&Lua_Client::ApplySpellRaid)
|
||||
.def("AreTasksCompleted", (bool(Lua_Client::*)(luabind::object))&Lua_Client::AreTasksCompleted)
|
||||
.def("AssignTask", (void(Lua_Client::*)(int))&Lua_Client::AssignTask)
|
||||
.def("AssignTask", (void(Lua_Client::*)(int,int))&Lua_Client::AssignTask)
|
||||
.def("AssignTask", (void(Lua_Client::*)(int,int,bool))&Lua_Client::AssignTask)
|
||||
|
||||
Reference in New Issue
Block a user