mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-18 12:28:26 +00:00
[Tasks] Make Task Selector Cooldown Optional (#2420)
Some live npcs ignore the request cooldown timer (tutorialb) A separate function had to be used for perl because the apis use an array instead of array reference which won't allow a bool overload This also replaces the fixed array and count args with a vector
This commit is contained in:
+21
-4
@@ -1088,12 +1088,22 @@ void Perl__taskselector(perl::array task_ids)
|
||||
throw std::runtime_error(fmt::format("Exceeded max number of task offers [{}]", MAXCHOOSERENTRIES));
|
||||
}
|
||||
|
||||
int tasks[MAXCHOOSERENTRIES];
|
||||
std::vector<int> tasks;
|
||||
for (int i = 0; i < task_ids.size(); ++i)
|
||||
{
|
||||
tasks[i] = task_ids[i];
|
||||
tasks.push_back(task_ids[i]);
|
||||
}
|
||||
quest_manager.taskselector(static_cast<int>(task_ids.size()), tasks);
|
||||
quest_manager.taskselector(tasks);
|
||||
}
|
||||
|
||||
void Perl__taskselector_nocooldown(perl::array task_ids)
|
||||
{
|
||||
std::vector<int> tasks;
|
||||
for (int i = 0; i < task_ids.size() && i < MAXCHOOSERENTRIES; ++i)
|
||||
{
|
||||
tasks.push_back(task_ids[i]);
|
||||
}
|
||||
quest_manager.taskselector(tasks, true);
|
||||
}
|
||||
|
||||
void Perl__task_setselector(int task_set_id)
|
||||
@@ -1101,6 +1111,11 @@ void Perl__task_setselector(int task_set_id)
|
||||
quest_manager.tasksetselector(task_set_id);
|
||||
}
|
||||
|
||||
void Perl__task_setselector(int task_set_id, bool ignore_cooldown)
|
||||
{
|
||||
quest_manager.tasksetselector(task_set_id, ignore_cooldown);
|
||||
}
|
||||
|
||||
void Perl__enabletask(perl::array task_ids)
|
||||
{
|
||||
int count = 0;
|
||||
@@ -4240,7 +4255,9 @@ void perl_register_quest()
|
||||
package.add("surname", &Perl__surname);
|
||||
package.add("targlobal", &Perl__targlobal);
|
||||
package.add("taskselector", &Perl__taskselector);
|
||||
package.add("task_setselector", &Perl__task_setselector);
|
||||
package.add("taskselector_nocooldown", &Perl__taskselector_nocooldown);
|
||||
package.add("task_setselector", (void(*)(int))&Perl__task_setselector);
|
||||
package.add("task_setselector", (void(*)(int, bool))&Perl__task_setselector);
|
||||
package.add("tasktimeleft", &Perl__tasktimeleft);
|
||||
package.add("toggle_spawn_event", &Perl__toggle_spawn_event);
|
||||
package.add("toggledoorstate", &Perl__toggledoorstate);
|
||||
|
||||
Reference in New Issue
Block a user