|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
19.07.2014, 17:48 | #1 |
Гость
Сообщений: n/a
|
Вопрос-ответ(Нужная тема)
Добрый день уважаемые. Хотелось бы узнать у Вас о парочке важных для меня вещей. Описываю чтоб меня поняли правильно: Скриптую (а точнее пробую) Тюрьму Штормграда(Не смейтесь сильно)) я новичок, начинать с чего то надо...) В общем много чего заскриптовал удачно, но столкнулся с парочкой проблем:
1 босс. Рэндольф Молох: -Можно ли через: Код:
void ReceiveEmote -Когда он использует http://ru.wowhead.com/spell=55964 на оффе происходит визуальный эффект на подобие маленького вихря, но у меня он просто исчезает и все... (добавлял способность себе: эффект вихря присутствует, у моба по прежнему нету( -При использовании того же самого спелла http://ru.wowhead.com/spell=55964, босс после первого исчезновения(75% хп) появляется со 100% и снова произносит фразу аггро и нападает, при втором ванише(35%) он появляеться с 75% хп и опять кидает фразу аггро, и только после этого его можно добить оканчательно... в общем кидаю код. Буду очень благодарен за любую помощь! Код:
//Created by BeingHuman (Felzewell) /* ScriptData SDName: Boss_Randolph SD%Complete: 70% SDComment: Исправить скилл Vanish решить проблему с его эффектом, добавить как нибудь поклон в начале... SDCategory: Stockade EndScriptData */ #include "precompiled.h" #include "stockade.h" enum { SAY_AGGRO = -1800000, SAY_DEATH = -1800001, SAY_VANISH = -1800002, SPELL_WILDLY_STABBING = 86726, SPELL_SWEEP = 86729, SPELL_VANISH = 55964, }; struct MANGOS_DLL_DECL boss_randolphAI : public ScriptedAI { boss_randolphAI(Creature* pCreature) : ScriptedAI(pCreature) { m_pInstance = (instance_stockade*)pCreature->GetInstanceData(); Reset(); } instance_stockade* m_pInstance; uint32 m_uiWildlyStabbingTimer; uint32 m_uiSweepTimer; uint32 m_uiVanishTimer; bool m_bFirstVanish; bool m_bSecondVanish; void Reset() override { m_uiWildlyStabbingTimer = 3000; m_uiSweepTimer = 6000; m_uiVanishTimer = 0; m_bFirstVanish = false; m_bSecondVanish = false; } void Aggro(Unit* /*pWho*/) override { DoScriptText(SAY_AGGRO, m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_RANDOLPH, IN_PROGRESS); } void JustDied(Unit* /*pKiller*/) override { DoScriptText(SAY_DEATH, m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_RANDOLPH, DONE); } void JustReachedHome() override { if (m_pInstance) m_pInstance->SetData(TYPE_RANDOLPH, FAIL); } void AttackedBy(Unit* pAttacker) override { if (m_creature->getVictim()) return; AttackStart(pAttacker); } void AttackStart(Unit* pWho) override { if (m_creature->Attack(pWho, true)) { m_creature->AddThreat(pWho); m_creature->SetInCombatWith(pWho); pWho->SetInCombatWith(m_creature); m_creature->GetMotionMaster()->MoveChase(pWho); } } void MovementInform(uint32 uiMotionType, uint32 /*uiPointId*/) override { if (uiMotionType != POINT_MOTION_TYPE) return; m_creature->SetSheath(SHEATH_STATE_UNARMED); m_creature->SetStandState(UNIT_STAND_STATE_KNEEL); } void UpdateAI(const uint32 uiDiff) override { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; //Wildly Stabbing if (m_uiWildlyStabbingTimer < uiDiff) { if (DoCastSpellIfCan(m_creature, SPELL_WILDLY_STABBING) == CAST_OK) m_uiWildlyStabbingTimer = urand(20000, 25000); } else m_uiWildlyStabbingTimer -= uiDiff; //Sweep if (m_uiSweepTimer < uiDiff) { if (DoCastSpellIfCan(m_creature, SPELL_SWEEP) == CAST_OK) m_uiSweepTimer = urand(10000, 12000); } else m_uiSweepTimer -= uiDiff; //Vanish if (!m_bFirstVanish && m_creature->GetHealthPercent() <= 65.0f) { if (DoCastSpellIfCan(m_creature, SPELL_VANISH) == CAST_OK) { DoScriptText(SAY_VANISH, m_creature); m_bFirstVanish = true; m_uiVanishTimer = 5000; } } else m_uiVanishTimer -= uiDiff; if (!m_bSecondVanish && m_bFirstVanish && m_creature->GetHealthPercent() <= 35.0f) { if (DoCastSpellIfCan(m_creature, SPELL_VANISH) == CAST_OK) { DoScriptText(SAY_VANISH, m_creature); m_bSecondVanish = true; m_uiVanishTimer = 5000; } } else m_uiVanishTimer -= uiDiff; DoMeleeAttackIfReady(); } }; CreatureAI* GetAI_boss_randolph(Creature* pCreature) { return new boss_randolphAI(pCreature); } void AddSC_boss_randolph() { Script* pNewScript; pNewScript = new Script; pNewScript->Name = "boss_randolph"; pNewScript->GetAI = &GetAI_boss_randolph; pNewScript->RegisterSelf(); } |
Метки |
вопрос, вопрос-ответ, ответ |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Флуд-тема или помоги ближнему своему | StinK | Флудильня | 17 | 13.02.2013 20:07 |
Вопрос по dbc | Mediv | Новичкам | 17 | 26.07.2011 14:40 |
Вопрос по LOS | BloodWarrior | Новичкам | 4 | 23.04.2011 06:03 |
Вопрос по git | impylse | Новичкам | 2 | 23.09.2010 07:58 |