Add Optional Enforce Task Level Requirement

Affected:
quest::assigntask
$client->AssignTask

This is to allow those task level requirements in DB to be used,
optionally. It defaults to do not enforce (translated: no change for
current servers), but can be set with an additional flag to both
commands (see below). The LUA bit was added thanks to help from demonstar55.

quest::assigntask(703); # works
quest::assigntask(703, 1); # denies user
$client->AssignTask(701, $npc->GetID()); # works
$client->AssignTask(701, $npc->GetID(), 1); # denies user
This commit is contained in:
hateborne
2015-07-15 19:16:51 -04:00
parent 3cd474e960
commit d64f79cb2a
9 changed files with 69 additions and 15 deletions
+11 -3
View File
@@ -2383,11 +2383,19 @@ XS(XS__assigntask)
{
dXSARGS;
unsigned int taskid;
if(items == 1) {
bool enforce_level_requirement = false;
if(items == 1 || items == 2) {
taskid = (int)SvIV(ST(0));
quest_manager.assigntask(taskid);
if (items == 2)
{
if ((int)SvIV(ST(1)) == 1)
{
enforce_level_requirement = true;
}
}
quest_manager.assigntask(taskid, enforce_level_requirement);
} else {
Perl_croak(aTHX_ "Usage: assigntask(taskid)");
Perl_croak(aTHX_ "Usage: assigntask(taskid, enforce_level_requirement)");
}
XSRETURN_EMPTY;