[Quest API] Add option to Ignore Mods to CalcEXP (#2704)

# Perl
- Add `$client->CalcEXP(consider_level, ignore_modifiers)`.

# Lua
- Add `client:CalcEXP(consider_level)`.
- Add `client:CalcEXP(consider_level, ignore_modifiers)`.

# Notes
- Allows operators to calculate experience based on consider level as well as ignore modifiers to get a baseline of experience that should be expected when killing a mob.
This commit is contained in:
Aeadoin
2023-01-05 20:38:08 -05:00
committed by GitHub
parent d9f437d90f
commit 143c4fe6aa
5 changed files with 82 additions and 77 deletions
+9 -3
View File
@@ -1597,9 +1597,14 @@ float Perl_Client_GetTargetRingZ(Client* self) // @categories Script Utility
return self->GetTargetRingZ();
}
uint32_t Perl_Client_CalcEXP(Client* self, uint8 conlevel)
uint64_t Perl_Client_CalcEXP(Client* self, uint8 consider_level)
{
return self->CalcEXP(conlevel);
return self->CalcEXP(consider_level);
}
uint64_t Perl_Client_CalcEXP(Client* self, uint8 consider_level, bool ignore_modifiers)
{
return self->CalcEXP(consider_level, ignore_modifiers);
}
void Perl_Client_QuestReward(Client* self, Mob* mob) // @categories Currency and Points, Experience and Level, Inventory and Items, Faction
@@ -2914,7 +2919,8 @@ void perl_register_client()
package.add("AssignToInstance", &Perl_Client_AssignToInstance);
package.add("AutoSplitEnabled", &Perl_Client_AutoSplitEnabled);
package.add("BreakInvis", &Perl_Client_BreakInvis);
package.add("CalcEXP", &Perl_Client_CalcEXP);
package.add("CalcEXP", (uint64(*)(Client*, uint8))&Perl_Client_CalcEXP);
package.add("CalcEXP", (uint64(*)(Client*, uint8, bool))&Perl_Client_CalcEXP);
package.add("CalcPriceMod", (float(*)(Client*))&Perl_Client_CalcPriceMod);
package.add("CalcPriceMod", (float(*)(Client*, Mob*))&Perl_Client_CalcPriceMod);
package.add("CalcPriceMod", (float(*)(Client*, Mob*, bool))&Perl_Client_CalcPriceMod);