Дата: Понедельник, 15.09.2014, 11:03 | Сообщение # 1
Идею стырил из линейки, там тоже был демонический меч зарич, который выпадал при убийстве игрока...
Суть патча:
На БГ "Ущелье песни войны" первый вошедший получает морф Лича и вещь в карман (в данном скрипте стоит Темная Скорбь, но я советую вам нарисовать Ледяную Скорбь и заменить ID в скрипте), при убийстве этого игрока, с него спадает морф и забирается вещь, и она появляется у его убийцы вместе с морфом, и так до конца БГ, после конца БГ морф снимается, вещь забирается.
Немного кривой код, конечно, но рабочий. Захотите, доработаете, или я помогу.
Укажу только то, что нужно еще дополнительно учитывать классы и уровень персонажей, и в связи с этим, выдавать разные айтемы. Код 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; + } }
|