Code:
// ||:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:||
// || _________ ||
// || \ \ / /________ \ S ||
// || \ \ Founder: Paul Walsh / /| \ \ C ||
// || \ \ / / | | | R ||
// || \ \ / /| | | | I ||
// || \ \ / /\ \ / / | | | | P ||
// || \ \ / / \ \ / / | |_________/ / T ||
// || \ \==/ / \ \==/ / | |_________ / S ||
// || Walshie Developments ||
// || www.walshiedevelopments.com ||
// ||:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:||
#include "StdAfx.h"
#include "..\..\WDev_Controller\Setup.h"
#include "..\..\WDev_Controller\Defines.h"
// ::Script Start::
class ResHandler
{
public:
void Res(Player *Plr)
{
if (Plr->getDeathState() != CORPSE)
return;
Plr->ResurrectPlayer();
ST(1, 0, 16201.511, 16205.163, 0.1330, 0.0);
Plr->SetUInt32Value(UNIT_FIELD_HEALTH, Plr->GetUInt32Value(UNIT_FIELD_MAXHEALTH));
Plr->SetUInt32Value(UNIT_FIELD_POWER1, Plr->GetUInt32Value(UNIT_FIELD_MAXPOWER1));
CastSpell(46165, 0);
}
};
class Count10
{
public:
void C10(Player *Plr)
{
Bcast("Ressurect in: %s10 sec|r", TEXT_WHITE);
}
};
class Count3
{
public:
void C3(Player *Plr)
{
Bcast("Ressurect in: %s3 sec|r", TEXT_WHITE);
}
};
class Count2
{
public:
void C2(Player *Plr)
{
Bcast("Ressurect in: %s2 sec|r", TEXT_WHITE);
}
};
class Count1
{
public:
void C1(Player *Plr)
{
Bcast("Ressurect in: %s1 sec|r", TEXT_WHITE);
}
};
void Release(Player *Plr)
{
if (pX() >= 15620 && pX() >= 15630 && pX() <= 16920 && pX() <= 16900)
{
ResHandler mc0;
TimedEvent *te0 = TimedEvent::Allocate(&mc0, new CallbackP1<ResHandler, Player*>(&mc0, &ResHandler::Res, Plr), 0, 20000, 1);
Count10 mc10;
TimedEvent *te10 = TimedEvent::Allocate(&mc10, new CallbackP1<Count10, Player*>(&mc10, &Count10::C10, Plr), 0, 10000, 1);
Count3 mc3;
TimedEvent *te3 = TimedEvent::Allocate(&mc3, new CallbackP1<Count3, Player*>(&mc3, &Count3::C3, Plr), 0, 17000, 1);
Count2 mc2;
TimedEvent *te2 = TimedEvent::Allocate(&mc2, new CallbackP1<Count2, Player*>(&mc2, &Count2::C2, Plr), 0, 18000, 1);
Count1 mc1;
TimedEvent *te1 = TimedEvent::Allocate(&mc1, new CallbackP1<Count1, Player*>(&mc1, &Count1::C1, Plr), 0, 19000, 1);
AddEvent(te0);
AddEvent(te10);
AddEvent(te3);
AddEvent(te2);
AddEvent(te1);
Bcast("[%sWorld Event|r] This Event will automatically resurrect you in %s20 seconds|r.", TEXT_GREEN, TEXT_WHITE);
}
}
// ::Handlers::
void SetupSCResurrectHandler(ScriptMgr * mgr)
{
sLog.outColor(TBLUE, "[Loaded] Staircase: Resurrect Handler LU10.0611");
sLog.outColor(TNORMAL, "\n");
mgr->register_hook(SERVER_HOOK_EVENT_ON_REPOP, Release);
}