mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-03 12:13:38 +00:00
48 lines
971 B
C++
48 lines
971 B
C++
|
#include "MonCoreNookDoors.h"
|
||
|
#include "GameMessages.h"
|
||
|
#include "EntityManager.h"
|
||
|
#include "dZoneManager.h"
|
||
|
|
||
|
void MonCoreNookDoors::OnStartup(Entity* self)
|
||
|
{
|
||
|
SpawnDoor(self);
|
||
|
}
|
||
|
|
||
|
void MonCoreNookDoors::SpawnDoor(Entity* self)
|
||
|
{
|
||
|
const auto doorNum = self->GetVarAsString(u"number");
|
||
|
|
||
|
if (doorNum.empty())
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
const auto spawners = dZoneManager::Instance()->GetSpawnersByName("MonCoreNookDoor0" + doorNum);
|
||
|
|
||
|
if (spawners.empty())
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
auto* spawner = spawners[0];
|
||
|
|
||
|
spawner->Reset();
|
||
|
spawner->Activate();
|
||
|
}
|
||
|
|
||
|
void MonCoreNookDoors::OnFireEventServerSide(Entity *self, Entity *sender, std::string args, int32_t param1, int32_t param2, int32_t param3)
|
||
|
{
|
||
|
if (args == "DoorSmashed")
|
||
|
{
|
||
|
self->AddTimer("RespawnDoor", 30);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void MonCoreNookDoors::OnTimerDone(Entity* self, std::string timerName)
|
||
|
{
|
||
|
if (timerName == "RespawnDoor")
|
||
|
{
|
||
|
SpawnDoor(self);
|
||
|
}
|
||
|
}
|