|
|
Модератор форума: Dimitro |
Форум ArcEmu ArcEmu С++ скрипт на реализацию босса Верховной жрицы Мар'ли |
С++ скрипт на реализацию босса Верховной жрицы Мар'ли |
С++ скрипт на реализацию босса Верховной жрицы Мар'ли. http://ru.wowhead.com/npc=14510
Code #include "StdAfx.h" #include "Setup.h" #include "../Common/Base.h" // HighPriestessMarliAI #define ZG_MARLI 14510 // Спеллы для трасформации в паука и обратно #define MARLI_SPIDER_FORM 24084 // #define MARLI_TRANSFORM_BACK 24085 //не работает // Заклинания в форме троля #define MARLI_POISONVOLLEY 24099 #define MARLI_DRAIN_LIFE 24300 // Заклинания в форме паука #define MARLI_ENVELOPINGWEBS 24110 #define MARLI_CORROSIVE_POISON 24111 #define MARLI_CHARGE 22911 // Spiders #define MARLI_HATCH 24083 //визуальный эффект #define MARLI_ADDS 15041 //The Spider Spells #define SPIDER_LEVELUP 24312 //визуальный эффект class HighPriestessMarliAI : public MoonScriptBossAI { MOONSCRIPT_FACTORY_FUNCTION(HighPriestessMarliAI, MoonScriptBossAI); HighPriestessMarliAI(Creature* pCreature) : MoonScriptBossAI(pCreature) { AddPhaseSpell(1, AddSpell(MARLI_POISONVOLLEY, Target_Current, 75, 0, 14)); AddPhaseSpell(1, AddSpell(MARLI_DRAIN_LIFE, Target_RandomPlayer, 60, 0, 24)); AddPhaseSpell(1, AddSpell(MARLI_HATCH, Target_RandomPlayer, 100, 0, 19)); AddPhaseSpell(2, AddSpell(MARLI_ENVELOPINGWEBS, Target_Current, 70, 0, 15)); AddPhaseSpell(2, AddSpell(MARLI_CORROSIVE_POISON, Target_Current, 75, 0, 30)); AddPhaseSpell(2, AddSpell(MARLI_CHARGE, Target_RandomPlayer, 80, 0, 12)); AddEmote(Event_OnCombatStart, "Draw me to your web , mistress Shadra , unleash your venom!", Text_Yell, 8418); AddEmote(Event_OnDied, "Bless you, mortals, for this release...Hakkar controls me no longer.", Text_Yell, 8423); Morph = AddSpell(24084, Target_Self, 0, 0, 0, 0, 0, false, "Shadra, make of me your avatar!", Text_Yell, 0); } void OnCombatStart(Unit* pTarget) { MorphTimer = AddTimer(45000); SpiderSummon = AddTimer(20000); ParentClass::OnCombatStart( pTarget ); } void OnCombatStop(Unit* pTarget) { SetDisplayId(15226); RemoveAura(24084); ParentClass::OnCombatStop(pTarget); } void OnDied(Unit* pKiller) { SetDisplayId(15220); RemoveAura(24084); ParentClass::OnDied(pKiller); } void AIUpdate() { if(IsTimerFinished(MorphTimer) && GetPhase() == 1) { SetPhase(2, Morph); ResetTimer(MorphTimer, 55000); } else if(IsTimerFinished(MorphTimer) && GetPhase() == 2) { RemoveAura(24084); SetDisplayId(15220); SetPhase(1); ResetTimer(MorphTimer, 60000); Emote("The brood shall not fall!", Text_Yell, 0); } if(IsTimerFinished(SpiderSummon) && GetPhase() == 1) { MoonScriptCreatureAI *Spider = NULL; // Spawn 4 spiders for(int x=0; x<4; x++) { Spider = SpawnCreature(MARLI_ADDS, (_unit->GetPositionX()+RandomFloat(2)-2), (_unit->GetPositionY()+RandomFloat(2)-2), _unit->GetPositionZ(), _unit->GetOrientation(), true); if(Spider) { Spider->AggroNearestUnit(); Spider->SetDespawnWhenInactive(true); } } Spider = NULL; Emote("Aid me my brood!", Text_Yell, 0); ResetTimer(SpiderSummon, 20000); } ParentClass::AIUpdate(); } SpellDesc* Morph; int32 MorphTimer; SpellDesc* Spider; int32 SpiderSummon; }; // Скрипт на пауков class MarliSpidersAI : public MoonScriptCreatureAI { MOONSCRIPT_FACTORY_FUNCTION(MarliSpidersAI, MoonScriptCreatureAI); MarliSpidersAI(Creature *pCreature) : MoonScriptCreatureAI(pCreature) { // LevelUP AddSpell(SPIDER_LEVELUP, Target_Self, 100, 0, 3); } }; void SetupZulGurub(ScriptMgr * mgr) { mgr->register_creature_script(ZG_MARLI, &HighPriestessMarliAI::Create); mgr->register_creature_script(MARLI_ADDS, &MarliSpidersAI::Create); }
Помогаю ставить сервера Trinity, Mangos,ArcEmu.
Сообщение # 1 написано 14.09.2010 в 11:47
|
| |||
| |||