| Maydie | Дата: Вівторок, 30.11.2010, 01:35 | Сообщение # 1 |
Капрал
Группа: Пользователи
|
С++ скрипт на реализацию босса Верховной жрицы Мар'ли. 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); }
|
| |
|
|