[Quest API] Add DisableRespawnTimers to Perl and Lua (#4691)

* [Quest API] Add DisableRespawnTimers to Perl and Lua

* Update lua_zone.h

* Update lua_zone.cpp

* Change up how we're doing this

---------

Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
Alex King 2025-02-20 01:26:46 -05:00 committed by GitHub
parent 753d83c499
commit f8837d0926
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 27 additions and 0 deletions

View File

@ -67,6 +67,12 @@ void Lua_Zone::Despawn(uint32 spawngroup_id)
self->Despawn(spawngroup_id);
}
void Lua_Zone::DisableRespawnTimers()
{
Lua_Safe_Call_Void();
self->DisableRespawnTimers();
}
float Lua_Zone::GetAAEXPModifier(Lua_Client c)
{
Lua_Safe_Call_Real();
@ -735,6 +741,7 @@ luabind::scope lua_register_zone() {
.def("Depop", (void(Lua_Zone::*)(void))&Lua_Zone::Depop)
.def("Depop", (void(Lua_Zone::*)(bool))&Lua_Zone::Depop)
.def("Despawn", &Lua_Zone::Despawn)
.def("DisableRespawnTimers", &Lua_Zone::DisableRespawnTimers)
.def("GetAAEXPModifier", &Lua_Zone::GetAAEXPModifier)
.def("GetAAEXPModifierByCharacterID", &Lua_Zone::GetAAEXPModifierByCharacterID)
.def("GetBucket", (std::string(Lua_Zone::*)(const std::string&))&Lua_Zone::GetBucket)

View File

@ -37,6 +37,7 @@ public:
void Depop();
void Depop(bool start_spawn_timers);
void Despawn(uint32 spawngroup_id);
void DisableRespawnTimers();
float GetAAEXPModifier(Lua_Client c);
float GetAAEXPModifierByCharacterID(uint32 character_id);
std::string GetContentFlags();

View File

@ -56,6 +56,11 @@ void Perl_Zone_Despawn(Zone* self, uint32 spawngroup_id)
self->Despawn(spawngroup_id);
}
void Perl_Zone_DisableRespawnTimers(Zone* self)
{
self->DisableRespawnTimers();
}
float Perl_Zone_GetAAEXPModifier(Zone* self, Client* c)
{
return self->GetAAEXPModifier(c);
@ -572,6 +577,7 @@ void perl_register_zone()
package.add("Depop", (void(*)(Zone*))&Perl_Zone_Depop);
package.add("Depop", (void(*)(Zone*, bool))&Perl_Zone_Depop);
package.add("Despawn", &Perl_Zone_Despawn);
package.add("DisableRespawnTimers", &Perl_Zone_DisableRespawnTimers);
package.add("GetAAEXPModifier", &Perl_Zone_GetAAEXPModifier);
package.add("GetAAEXPModifierByCharacterID", &Perl_Zone_GetAAEXPModifierByCharacterID);
package.add("GetBucket", &Perl_Zone_GetBucket);

View File

@ -3190,4 +3190,16 @@ std::string Zone::GetBucketRemaining(const std::string& bucket_name)
return DataBucket::GetDataRemaining(k);
}
void Zone::DisableRespawnTimers()
{
LinkedListIterator<Spawn2*> e(spawn2_list);
e.Reset();
while (e.MoreElements()) {
e.GetData()->SetRespawnTimer(std::numeric_limits<uint32_t>::max());
e.Advance();
}
}
#include "zone_loot.cpp"

View File

@ -154,6 +154,7 @@ public:
bool Process();
bool SaveZoneCFG();
bool DoesAlternateCurrencyExist(uint32 currency_id);
void DisableRespawnTimers();
char *adv_data;