eluna-scripts-ornfelt/lua/WowEmulationScriptPack/C++/gurubashi.cpp

49 lines
1.7 KiB
C++
Raw Permalink Normal View History

2023-08-16 00:50:59 +02:00
#include "ScriptPCH.h"
#include "Player.h"
const Position allyPositions[1] =
{
{ -13286.6f, 292.655f, 47.9457f, 6.06654f }
};
const Position hordePositions[1] =
{
{ -13286.6f, 292.655f, 47.9457f, 6.06654f }
};
class mob_gurubashi_ressurect : public PlayerScript
{
public:
mob_gurubashi_ressurect() : PlayerScript("mob_gurubashi_ressurect") {}
void OnPVPKill(Player*/*Creature* */ killer, Player* killed)
{
if (killer->GetAreaId() == 2177) /*&& killed->GetMapId() == 33*/
{
if (killed->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION))
killed->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
killer->AddItem(43307, 1);//<2F><><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD>-<2D><>.
killed->KillPlayer();
killed->ResurrectPlayer(40.0f, true);
if (Aura * aur = killed->GetAura(15007))
aur->SetDuration(0.3*MINUTE*IN_MILLISECONDS); // 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
killed->CastSpell(killed, 13874, true);
if (Aura * aur = killed->GetAura(13874))
aur->SetDuration(0.3*MINUTE*IN_MILLISECONDS); // 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
uint32 rnd = urand(0,1);
if (killed->GetTeam() == ALLIANCE)
killed->TeleportTo(0, allyPositions[rnd].GetPositionX(), allyPositions[rnd].GetPositionY(), allyPositions[rnd].GetPositionZ(), allyPositions[rnd].GetOrientation());
else
killed->TeleportTo(0, hordePositions[rnd].GetPositionX(), hordePositions[rnd].GetPositionY(), hordePositions[rnd].GetPositionZ(), hordePositions[rnd].GetOrientation());
}
}
};
void AddSC_mob_gurubashi_ressurect()
{
new mob_gurubashi_ressurect();
}