From 7a6f84679306614f36ccffa8fa71d0a6ac31b45c Mon Sep 17 00:00:00 2001 From: Aldori Date: Mon, 23 Jun 2025 11:51:47 -0400 Subject: [PATCH 1/2] New GetCreatureSpawnId and SetCorpseDelay functions - Implemented new function to get the creatures spawn ID: - Example: - In Lua, write "creature:GetCreatureSpawnId()" - Implemented new function to set a creatures corpse delay: - Example: - In Lua, write "creature:SetCorpseDelay(5000)" Thanks Sylian! --- src/LuaEngine/LuaFunctions.cpp | 2 ++ src/LuaEngine/methods/CreatureMethods.h | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/LuaEngine/LuaFunctions.cpp b/src/LuaEngine/LuaFunctions.cpp index ce757d6557..0c5aae201d 100644 --- a/src/LuaEngine/LuaFunctions.cpp +++ b/src/LuaEngine/LuaFunctions.cpp @@ -776,6 +776,7 @@ ElunaRegister CreatureMethods[] = { "GetRespawnDelay", &LuaCreature::GetRespawnDelay }, { "GetWanderRadius", &LuaCreature::GetWanderRadius }, { "GetCurrentWaypointId", &LuaCreature::GetCurrentWaypointId }, + { "GetCreatureSpawnId", &LuaCreature::GetCreatureSpawnId }, { "GetWaypointPath", &LuaCreature::GetWaypointPath }, { "GetLootMode", &LuaCreature::GetLootMode }, { "GetLootRecipient", &LuaCreature::GetLootRecipient }, @@ -795,6 +796,7 @@ ElunaRegister CreatureMethods[] = { "SetHover", &LuaCreature::SetHover }, { "SetDisableGravity", &LuaCreature::SetDisableGravity }, { "SetAggroEnabled", &LuaCreature::SetAggroEnabled }, + { "SetCorpseDelay", &LuaCreature::SetCorpseDelay }, { "SetNoCallAssistance", &LuaCreature::SetNoCallAssistance }, { "SetNoSearchAssistance", &LuaCreature::SetNoSearchAssistance }, { "SetDefaultMovementType", &LuaCreature::SetDefaultMovementType }, diff --git a/src/LuaEngine/methods/CreatureMethods.h b/src/LuaEngine/methods/CreatureMethods.h index 10cd4444e0..ffb9307abe 100644 --- a/src/LuaEngine/methods/CreatureMethods.h +++ b/src/LuaEngine/methods/CreatureMethods.h @@ -434,6 +434,17 @@ namespace LuaCreature return 1; } + /** + * Returns the spawn ID for this [Creature]. + * + * @return uint32 spawnId + */ + int GetCreatureSpawnId(lua_State* L, Creature* creature) + { + Eluna::Push(L, creature->GetSpawnId()); + return 1; + } + /** * Returns the default movement type for this [Creature]. * @@ -1134,6 +1145,18 @@ namespace LuaCreature return 0; } + /** + * Sets the time it takes for the [Creature]'s corpse to despawn when killed. + * + * @param uint32 delay : the delay, in seconds + */ + int SetCorpseDelay(lua_State* L, Creature* creature) + { + uint32 delay = Eluna::CHECKVAL(L, 2); + creature->SetCorpseDelay(delay); + return 0; + } + /** * Make the [Creature] start following its waypoint path. */ From fe088e600b62291d4f6863648015992015f34c8b Mon Sep 17 00:00:00 2001 From: Aldori Date: Fri, 22 Aug 2025 14:29:29 -0400 Subject: [PATCH 2/2] Rename function --- src/LuaEngine/LuaFunctions.cpp | 2 +- src/LuaEngine/methods/CreatureMethods.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/LuaEngine/LuaFunctions.cpp b/src/LuaEngine/LuaFunctions.cpp index 0c5aae201d..78253ef579 100644 --- a/src/LuaEngine/LuaFunctions.cpp +++ b/src/LuaEngine/LuaFunctions.cpp @@ -776,7 +776,7 @@ ElunaRegister CreatureMethods[] = { "GetRespawnDelay", &LuaCreature::GetRespawnDelay }, { "GetWanderRadius", &LuaCreature::GetWanderRadius }, { "GetCurrentWaypointId", &LuaCreature::GetCurrentWaypointId }, - { "GetCreatureSpawnId", &LuaCreature::GetCreatureSpawnId }, + { "GetSpawnId", &LuaCreature::GetSpawnId }, { "GetWaypointPath", &LuaCreature::GetWaypointPath }, { "GetLootMode", &LuaCreature::GetLootMode }, { "GetLootRecipient", &LuaCreature::GetLootRecipient }, diff --git a/src/LuaEngine/methods/CreatureMethods.h b/src/LuaEngine/methods/CreatureMethods.h index ffb9307abe..52f5f1ffac 100644 --- a/src/LuaEngine/methods/CreatureMethods.h +++ b/src/LuaEngine/methods/CreatureMethods.h @@ -439,7 +439,7 @@ namespace LuaCreature * * @return uint32 spawnId */ - int GetCreatureSpawnId(lua_State* L, Creature* creature) + int GetSpawnId(lua_State* L, Creature* creature) { Eluna::Push(L, creature->GetSpawnId()); return 1;