[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
+20 -6
View File
@@ -573,12 +573,6 @@ void Lua_NPC::RecalculateSkills()
self->RecalculateSkills();
}
void Lua_NPC::ScaleNPC(uint8 npc_level)
{
Lua_Safe_Call_Void();
self->ScaleNPC(npc_level);
}
bool Lua_NPC::IsRaidTarget()
{
Lua_Safe_Call_Bool();
@@ -761,6 +755,24 @@ void Lua_NPC::SetLDoNTrapDetected(bool is_detected) {
self->SetLDoNTrapDetected(is_detected);
}
void Lua_NPC::ScaleNPC(uint8 npc_level)
{
Lua_Safe_Call_Void();
self->ScaleNPC(npc_level);
}
void Lua_NPC::ScaleNPC(uint8 npc_level, bool always_scale_stats)
{
Lua_Safe_Call_Void();
self->ScaleNPC(npc_level, always_scale_stats);
}
void Lua_NPC::ScaleNPC(uint8 npc_level, bool always_scale_stats, bool always_scale_special_abilities)
{
Lua_Safe_Call_Void();
self->ScaleNPC(npc_level, always_scale_stats, always_scale_special_abilities);
}
luabind::scope lua_register_npc() {
return luabind::class_<Lua_NPC, Lua_Mob>("NPC")
.def(luabind::constructor<>())
@@ -874,6 +886,8 @@ luabind::scope lua_register_npc() {
.def("SaveGuardSpot", (void(Lua_NPC::*)(bool))&Lua_NPC::SaveGuardSpot)
.def("SaveGuardSpot", (void(Lua_NPC::*)(float,float,float,float))&Lua_NPC::SaveGuardSpot)
.def("ScaleNPC", (void(Lua_NPC::*)(uint8))&Lua_NPC::ScaleNPC)
.def("ScaleNPC", (void(Lua_NPC::*)(uint8,bool))&Lua_NPC::ScaleNPC)
.def("ScaleNPC", (void(Lua_NPC::*)(uint8,bool,bool))&Lua_NPC::ScaleNPC)
.def("SendPayload", (void(Lua_NPC::*)(int))&Lua_NPC::SendPayload)
.def("SendPayload", (void(Lua_NPC::*)(int,std::string))&Lua_NPC::SendPayload)
.def("SetCopper", (void(Lua_NPC::*)(uint32))&Lua_NPC::SetCopper)