Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

С++ скрипт Мандокир Повелитель Крови - Форум

  • Сторінка 1 з 1
  • 1
С++ скрипт Мандокир Повелитель Крови
DarkensandДата: Понеділок, 21.02.2011, 04:31 | Сообщение # 1



Darkensand
Главный Админ
Лучший из лучших
Группа: Администратор
Сообщений: 8083



Оффлайн
Скрипт на босса: http://ru.wowhead.com/npc=11382
В данный момент скрипт не является 100% рабочим

Code
//Координаты спавна духов  
static Coords SpiritSpawns[] =  
{  
    {},  
       {-12150.9f, -1956.24f, 133.407f, 2.57835f},  
       {-12157.1f, -1972.78f, 133.947f, 2.64903f},  
       {-12172.3f, -1982.63f, 134.061f, 1.48664f},  
       {-12194.0f, -1979.54f, 132.194f, 1.45916f},  
       {-12211.3f, -1978.49f, 133.580f, 1.35705f},  
       {-12228.4f, -1977.10f, 132.728f, 1.25495f},  
       {-12250.0f, -1964.78f, 135.066f, 0.92901f},  
       {-12264.0f, -1953.08f, 134.072f, 0.62663f},  
       {-12289.0f, -1924.00f, 132.620f, 5.37829f},  
       {-12267.3f, -1902.26f, 131.328f, 5.32724f},  
       {-12255.3f, -1893.53f, 134.026f, 5.06413f},  
       {-12229.9f, -1891.39f, 134.704f, 4.40047f},  
       {-12215.9f, -1889.09f, 137.273f, 4.70285f},  
       {-12200.5f, -1890.69f, 135.777f, 4.84422f},  
       {-12186.0f, -1890.12f, 134.261f, 4.36513f},  
       {-12246.3f, -1890.09f, 135.475f, 4.73427f},  
       {-12170.7f, -1894.85f, 133.852f, 3.51690f},  
       {-12279.0f, -1931.92f, 136.130f, 0.04151f},  
       {-12266.1f, -1940.72f, 132.606f, 0.70910f}  
};  

//основной скрипт на босса  

class BloodlordMandokirAI : public MoonScriptBossAI  
{  
    UnitArray duh;  

    MOONSCRIPT_FACTORY_FUNCTION(BloodlordMandokirAI, MoonScriptBossAI);  
    BloodlordMandokirAI(Creature* pCreature) : MoonScriptBossAI(pCreature)  
    {  
     AddSpell(MANDOKIR_CLEAVE, Target_Current, 75, 0, 7);  
     AddSpell(MANDOKIR_WHIRLWIND, Target_Current, 90, 0, 18);  

     //эмоции и озвучка  
     AddEmote(Event_OnCombatStart, "I'll feed your souls to Hakkar himself!", Text_Yell, 8413);  

     mount = AddSpell(MANDOKIR_MOUNT, Target_Self, 0, 0, 0);  

     mortalstrike = AddSpell(MANDOKIR_MORTAL_STRIKE, Target_Current, 0, 0, 0);  

     enrage = AddSpell(MANDOKIR_ENRAGE, Target_Self, 0, 0, 0);  

    }  

    void OnCombatStart(Unit* pTarget)  
    {  
     RemoveAura(23243);  
     for (uint i=1;i<20;i++)  
     {  
      MoonScriptCreatureAI *spirit;  
      spirit = SpawnCreature(CHAINED_SPIRIT, SpiritSpawns[i].mX, SpiritSpawns[i].mY, SpiritSpawns[i].mZ, SpiritSpawns[i].mO);  
      if(spirit)  
       duh.push_back(TO_UNIT(spirit));  
     }  
     MoonScriptCreatureAI *Ohgan = NULL;  

     Ohgan = SpawnCreature(ZG_OHGAN, (_unit->GetPositionX()+RandomFloat(2)-2), (_unit->GetPositionY()+RandomFloat(2)-2),  
     _unit->GetPositionZ(), _unit->GetOrientation(), true);  

     MortalStrikeTimer = AddTimer(15000);  

     ParentClass::OnCombatStart( pTarget );  
    }  

    void OnCombatStop(Unit* pTarget)  
    {  
     for(UnitArray::iterator itr = duh.begin(); itr!=duh.end(); ++itr)  
      if ((*itr)!=NULL && (*itr)->isAlive() && (*itr)->GetEntry() == CHAINED_SPIRIT)  
       (*itr)->Delete();  
     duh.clear();  
        
     Ohgan = (MoonScriptBossAI*)GetNearestCreature(ZG_OHGAN);  

      if(Ohgan != NULL)  
       Ohgan->Despawn(2000, 0);  

     CastSpell(mount);  

     ParentClass::OnCombatStop(pTarget);  
    }  

    void OnDied(Unit* pKiller)  
    {  
     ParentClass::OnDied(pKiller);  
    }  

    void OnTargetDied(Unit *pTarget)  
    {  
     float range;  
     Unit *Spirit;  
     for(UnitArray::iterator itr=duh.begin(); itr!=duh.end(); ++itr)  
     {  
      if((*itr)!=NULL && (*itr)->GetEntry() == CHAINED_SPIRIT && (*itr)->isAlive())  
       if(range > (*itr)->CalcDistance(TO_OBJECT(pTarget)))  
       {  
        range = (*itr)->CalcDistance(TO_OBJECT(pTarget));  
        Spirit = TO_UNIT(*itr);  
       }  
     }  

       if(RandomUInt(100) < 10)  
           if(pTarget!=NULL && pTarget->IsPlayer() && !pTarget->isAlive())  
               Spirit->CastSpell(pTarget, SPIRIT_REVIVE, false);  
}  

    void AIUpdate()  
    {  
     if(_unit->IsPlayer() && _unit->GetHealthPct() <= 50)  
     {  
      if(IsTimerFinished(MortalStrikeTimer))  
      {  
       CastSpell(mortalstrike);  
       ResetTimer(MortalStrikeTimer, 15000);  
      }  
     }  

     ParentClass::AIUpdate();  
    }  

    SpellDesc* mount;  
    SpellDesc* mortalstrike;  
    SpellDesc* enrage;  
    int32 MortalStrikeTimer;  
    MoonScriptBossAI* Ohgan;  
};  

// Скрипт на Раптора  
class OhganAI : public MoonScriptCreatureAI  
{  
    MOONSCRIPT_FACTORY_FUNCTION(OhganAI, MoonScriptCreatureAI);  
       OhganAI(Creature *pCreature) : MoonScriptCreatureAI(pCreature)    
    {  
     AddSpell(OHGAN_SUNDERARMOR, Target_Current, 100, 0, 12);  

    }  

void OnDied(Unit* pKiller)  
    {  

     //Mandokir = NULL;  
     Mandokir = (MoonScriptBossAI*)GetNearestCreature(ZG_MANDOKIR);  

     if(Mandokir && Mandokir->IsAlive() )  
     {  
         
      for (unordered_set<Player *>::iterator itr = Mandokir->GetUnit()->GetInRangePlayerSetBegin(); itr != Mandokir->GetUnit()->GetInRangePlayerSetEnd(); ++itr)    
      {  
       Player *pPlayer = TO_PLAYER(*itr);  
       pPlayer->GetSession()->SystemMessage("Bloodlord Mandokir goes into a rage after seeing his raptor fall in battle!");  
      }  
      Mandokir->CastSpell(enrage);  
     }  
     ParentClass::OnDied(pKiller);  
    }  
MoonScriptBossAI* Mandokir;  
SpellDesc* enrage;  
};  

void SetupZulGurub(ScriptMgr * mgr)  
{  

    mgr->register_creature_script(ZG_MANDOKIR, &BloodlordMandokirAI::Create);  
    mgr->register_creature_script(ZG_OHGAN, &OhganAI::Create);  
}
 
  • Сторінка 1 з 1
  • 1
Пошук:

Новые сообщения в темах
Сдам в аренду сервер и хостинг · (Хост Предложения)
Автор: redlaine
Последнее сообщение в 23:53
хаха :D · (Приколы)
Автор: [N1ke]Medved
Последнее сообщение в 18:40
Autobattle - новый боевой бот ... · (Боты для WoW)
Автор: terrikon
Последнее сообщение в 18:39
PvE руководство для Чернокнижн... · (Чернокнижник)
Автор: Darkensand
Последнее сообщение в 18:38
Пустой свиток (Часть 11) · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:37
Друиды в Катаклизме: Официальн... · (Друид)
Автор: Darkensand
Последнее сообщение в 18:37
[Баг 3.3.5] Фарм ледяных бадже... · (Читы для WoW)
Автор: Darkensand
Последнее сообщение в 18:35
FarmBot (Бот для фарма руды и ... · (Боты для WoW)
Автор: homma
Последнее сообщение в 18:34
Почему мы сражаемся: ролевая и... · (Воин)
Автор: Darkensand
Последнее сообщение в 18:34
Книги по Wold of Warcraft · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:33
Маг огня в Cataclysm · (Маг)
Автор: Darkensand
Последнее сообщение в 18:33
Как начать играть в World of W... · (Полезно знать)
Автор: Belkmondesh
Последнее сообщение в 18:32
Характеризация профессий · (Профессии)
Автор: Darkensand
Последнее сообщение в 18:31
Что значит для арканов бета те... · (Маг)
Автор: Darkensand
Последнее сообщение в 18:31

Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2025 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz