Отличный и интересный скрипт, разработанный пользователем Dimitro.
Суть проста: на "Ущелье песни войны", тому кто зашёл первый даётся морф Короля Лича, и Тёмная скорбь в сумку. Когда этого игрока убивают - морф Лича и само оружие даётся его убийце. И так до конца бг. В конце бг морф Лича и оружие забирается. Очень интересный скрипт, единственное что нужно - сделать проверку на класс/спек и выдавать разные оружия. Тому, кому нужно - доработает:
Code
diff -r 53648bd13f2f src/server/game/Battlegrounds/Battleground.cpp
--- a/src/server/game/Battlegrounds/Battleground.cpp Wed Aug 24 12:21:26 2011 +0300
+++ b/src/server/game/Battlegrounds/Battleground.cpp Fri Aug 26 23:58:55 2011 +0300
@@ -784,6 +784,9 @@
if (plr->HasAuraType(SPELL_AURA_SPIRIT_OF_REDEMPTION))
plr->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
+ plr->DeMorph();
+ plr->DestroyItemCount(49623, 1, true, true);//Замените 49623 на ID вашей рисовки
+
if (!plr->isAlive())
{
plr->ResurrectPlayer(1.0f);
diff -r 53648bd13f2f src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp Wed Aug 24 12:21:26 2011 +0300
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp Fri Aug 26 23:58:55 2011 +0300
@@ -28,6 +28,10 @@
#include "World.h"
#include "WorldPacket.h"
+uint64 FROSTMOURNE_ID = 49623;//Тут ид вашей рисовки
+uint64 lichGUID;
+bool lich_exists = false;
+
// these variables aren't used outside of this file, so declare them only here
enum BG_WSG_Rewards
{
@@ -209,6 +214,16 @@
BattlegroundWGScore* sc = new BattlegroundWGScore;
m_PlayerScores[plr->GetGUID()] = sc;
+
+ if (!lich_exists)
+ {
+ plr->SetDisplayId(24191);//Lich King
+ plr->Whisper("Король-Лич должен существовать всегда...", LANG_UNIVERSAL, plr->GetGUID());
+ plr->Whisper("Вы можете найти ледяную скорбь в своем инвертаре...", LANG_UNIVERSAL, plr->GetGUID());
+ plr->AddItem(FROSTMOURNE_ID, 1);
+ lichGUID = plr->GetGUID();
+ lich_exists = true;
+ }
}
void BattlegroundWS::RespawnFlag(uint32 Team, bool captured)
@@ -748,6 +763,17 @@
{
if (GetStatus() != STATUS_IN_PROGRESS)
return;
+
+ if (player->GetGUID() == lichGUID)
+ {
+ player->DeMorph();
+ player->DestroyItemCount(FROSTMOURNE_ID, 1, true, true);
+ player->Whisper("Король-Лич должен существовать всегда...", LANG_UNIVERSAL, killer->GetGUID());
+ player->Whisper("Вы можете найти Ледяную Скорбь в своем инвертаре...", LANG_UNIVERSAL, killer->GetGUID());
+ killer->SetDisplayId(24191);//Lich King
+ killer->AddItem(FROSTMOURNE_ID, 1);
+ lichGUID = killer->GetGUID();
+ }
EventPlayerDroppedFlag(player);