[Quest API] Add Override Parameters to ScaleNPC() in Perl/Lua. (#2816)

# Perl
- Add `$npc->ScaleNPC(level, always_scale_stats)`.
- Add `$npc->ScaleNPC(level, always_scale_stats, always_scale_special_abilities)`.

# Lua
- Add `npc:ScaleNPC(level, always_scale_stats)`.
- Add `npc:ScaleNPC(level, always_scale_stats, always_scale_special_abilities)`.

# Notes
- Allows operators to not have to set stats to 0 in order for scaling to kick in when scripting.
- Special ability override is separate in case you don't want to override some inherent special abilities the NPC has from a script or otherwise.
This commit is contained in:
Alex King
2023-01-31 21:11:05 -05:00
committed by GitHub
parent 2e575652f6
commit f410c89815
7 changed files with 150 additions and 92 deletions
+18 -6
View File
@@ -594,11 +594,6 @@ void Perl_NPC_RecalculateSkills(NPC* self) // @categories Skills and Recipes
self->RecalculateSkills();
}
void Perl_NPC_ScaleNPC(NPC* self, uint8 npc_level)
{
return self->ScaleNPC(npc_level);
}
bool Perl_NPC_IsRaidTarget(NPC* self)
{
return self->IsRaidTarget();
@@ -750,6 +745,21 @@ void Perl_NPC_SetLDoNTrapDetected(NPC* self, bool is_detected)
self->SetLDoNTrapDetected(is_detected);
}
void Perl_NPC_ScaleNPC(NPC* self, uint8 npc_level)
{
return self->ScaleNPC(npc_level);
}
void Perl_NPC_ScaleNPC(NPC* self, uint8 npc_level, bool always_scale_stats)
{
return self->ScaleNPC(npc_level, always_scale_stats);
}
void Perl_NPC_ScaleNPC(NPC* self, uint8 npc_level, bool always_scale_stats, bool always_scale_special_abilities)
{
return self->ScaleNPC(npc_level, always_scale_stats, always_scale_special_abilities);
}
void perl_register_npc()
{
perl::interpreter perl(PERL_GET_THX);
@@ -872,7 +882,9 @@ void perl_register_npc()
package.add("SaveGuardSpot", (void(*)(NPC*))&Perl_NPC_SaveGuardSpot);
package.add("SaveGuardSpot", (void(*)(NPC*, bool))&Perl_NPC_SaveGuardSpot);
package.add("SaveGuardSpot", (void(*)(NPC*, float, float, float, float))&Perl_NPC_SaveGuardSpot);
package.add("ScaleNPC", &Perl_NPC_ScaleNPC);
package.add("ScaleNPC", (void(*)(NPC*, uint8))&Perl_NPC_ScaleNPC);
package.add("ScaleNPC", (void(*)(NPC*, uint8, bool))&Perl_NPC_ScaleNPC);
package.add("ScaleNPC", (void(*)(NPC*, uint8, bool, bool))&Perl_NPC_ScaleNPC);
package.add("SendPayload", (void(*)(NPC*, int))&Perl_NPC_SendPayload);
package.add("SendPayload", (void(*)(NPC*, int, std::string))&Perl_NPC_SendPayload);
package.add("SetCopper", &Perl_NPC_SetCopper);