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

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

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

C++ скрипт Верховная жрица Мар'ли - Форум

  • Сторінка 1 з 1
  • 1
C++ скрипт Верховная жрица Мар'ли
HammeRДата: Середа, 01.12.2010, 12:33 | Сообщение # 1



HammeR
Рыцарь
Группа: Пользователи
Сообщений: 449

Замечания:

Оффлайн
Всем привет.
Хочу представить вам свой первый скрипт для эмуляторов семейства Ascent.
С++ скрипт на реализацию босса Верховной жрицы Мар'ли. http://ru.wowhead.com/npc=14510

Quote
#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);
}

TODO:
- добавить рандомные таймеры. В разработке...
- синхронизировать визуальный спелл-эффект MARLI_HATCH (см скрипт).
- нужна реализация спеллов CHARGE (22911) и TRANSFORM BACK (24085).
- немного подкорректировать пауков.
- реализовать разговор босса со своим прислужником.
- и конечно же clean up.
И после этого скрипт можно считать 100% оффлайк.



 
  • Сторінка 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 портал © 2026 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz