Новые сообщения · Участники · Правила форума · Поиск · RSS
  • Страница 1 из 1
  • 1
C++ fun script - Король лич должен существовать всегда
Дата: Понедельник, 15.09.2014, 11:03 | Сообщение # 1
Постоянный
Сообщений:
1365
Награды:
1
Репутация:
16
Замечания:
0%
Идею стырил из линейки, там тоже был демонический меч зарич, который выпадал при убийстве игрока...

Суть патча:

На БГ "Ущелье песни войны" первый вошедший получает морф Лича и вещь в
карман (в данном скрипте стоит Темная Скорбь, но я советую вам
нарисовать Ледяную Скорбь и заменить 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;  
  +    }  
      }
  • Страница 1 из 1
  • 1
Поиск: