[Quest API] Add GetSpawn() to Perl and Lua (#4702)

* [Quest API] Add GetSpawn() to Perl and Lua

* Push

* Update npc.h
This commit is contained in:
Alex King 2025-02-21 23:57:41 -05:00 committed by GitHub
parent aa4869c6e9
commit 486c7c44be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 18 additions and 4 deletions

View File

@ -9,6 +9,7 @@
#include "lua_client.h"
#include "lua_item.h"
#include "lua_iteminst.h"
#include "lua_spawn.h"
struct Lua_NPC_Loot_List {
std::vector<uint32> entries;
@ -932,6 +933,12 @@ void Lua_NPC::ReturnHandinItems(Lua_Client c)
self->ReturnHandinItems(c);
}
Lua_Spawn Lua_NPC::GetSpawn(lua_State* L)
{
Lua_Safe_Call_Class(Lua_Spawn);
return Lua_Spawn(self->GetSpawn());
}
luabind::scope lua_register_npc() {
return luabind::class_<Lua_NPC, Lua_Mob>("NPC")
.def(luabind::constructor<>())
@ -1009,6 +1016,7 @@ luabind::scope lua_register_npc() {
.def("GetSilver", (uint32(Lua_NPC::*)(void))&Lua_NPC::GetSilver)
.def("GetSlowMitigation", (int(Lua_NPC::*)(void))&Lua_NPC::GetSlowMitigation)
.def("GetSp2", (uint32(Lua_NPC::*)(void))&Lua_NPC::GetSp2)
.def("GetSpawn", (Lua_Spawn(Lua_NPC::*)(void))&Lua_NPC::GetSpawn)
.def("GetSpawnKillCount", (int(Lua_NPC::*)(void))&Lua_NPC::GetSpawnKillCount)
.def("GetSpawnPointH", (float(Lua_NPC::*)(void))&Lua_NPC::GetSpawnPointH)
.def("GetSpawnPointID", (int(Lua_NPC::*)(void))&Lua_NPC::GetSpawnPointID)

View File

@ -10,6 +10,7 @@ class Lua_NPC;
class Lua_Client;
struct Lua_NPC_Loot_List;
class Lua_Inventory;
class Lua_Spawn;
namespace luabind {
struct scope;
@ -196,6 +197,7 @@ public:
luabind::adl::object items_table
);
void ReturnHandinItems(Lua_Client c);
Lua_Spawn GetSpawn(lua_State* L);
};
#endif

View File

@ -2751,10 +2751,7 @@ void NPC::LevelScale() {
uint32 NPC::GetSpawnPointID() const
{
if (respawn2) {
return respawn2->GetID();
}
return 0;
return respawn2 ? respawn2->GetID() : 0;
}
void NPC::NPCSlotTexture(uint8 slot, uint32 texture)

View File

@ -248,6 +248,7 @@ public:
uint16 GetWaypointMax() const { return wp_m; }
int32 GetGrid() const { return grid; }
Spawn2* GetSpawn() { return respawn2 ? respawn2 : nullptr; }
uint32 GetSpawnGroupId() const { return spawn_group_id; }
uint32 GetSpawnPointID() const;

View File

@ -875,6 +875,11 @@ void Perl_NPC_ReturnHandinItems(NPC *self, Client* c)
self->ReturnHandinItems(c);
}
Spawn2* Perl_NPC_GetSpawn(NPC* self)
{
return self->GetSpawn();
}
void perl_register_npc()
{
perl::interpreter perl(PERL_GET_THX);
@ -953,6 +958,7 @@ void perl_register_npc()
package.add("GetSilver", &Perl_NPC_GetSilver);
package.add("GetSlowMitigation", &Perl_NPC_GetSlowMitigation);
package.add("GetSp2", &Perl_NPC_GetSp2);
package.add("GetSpawn", &Perl_NPC_GetSpawn);
package.add("GetSpawnKillCount", &Perl_NPC_GetSpawnKillCount);
package.add("GetSpawnPointH", &Perl_NPC_GetSpawnPointH);
package.add("GetSpawnPointID", &Perl_NPC_GetSpawnPointID);