Здравствуйте. Я совсем еще новичек, недавно скачал чистые исходники и начал копаться в коде. Нашел в сд2 пустой скрипт малигоса, решил потренироваться на нем, добавить ему дыхание и текст от лоскутика. Текст при пуле и смерти босса срабатывал исправно, но вот дыхание почему-то не работало. Ид спелла 56272 я взял из скрипта малигоса из исходников rsa.
Гугл, ytdb вики о таблицах базы и поиск по форуму ничего не дали. Возможно я пропустил что-то важное. Например, добавить указанный спелл в базу или что-то подобное. Помогите
Код:
#include "precompiled.h"
enum
{
SPELL_ARCANE_BREATH = 56272, // Дыхание
SAY_AGGRO = -1533017, // пул лоскутика
SAY_DEATH = -1533020, // смерть лоскутика
};
struct MANGOS_DLL_DECL boss_malygosAI : public ScriptedAI
{
boss_malygosAI(Creature* pCreature) : ScriptedAI(pCreature)
{
Reset();
}
uint32 m_uiArcaneBreathTimer;
void Reset()
{
m_uiArcaneBreathTimer = 10000;
}
void Aggro(Unit* pWho)
{
DoScriptText(SAY_AGGRO, m_creature);
// m_creature->RemoveSplineFlag(SPLINEFLAG_FLYING);
}
void JustDied(Unit* pKiller)
{
DoScriptText(SAY_DEATH, m_creature);
}
void UpdateAI(const uint32 uiDiff)
{
if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
return;
// Дыхание
if (m_uiArcaneBreathTimer < uiDiff)
{
if (DoCastSpellIfCan(m_creature->getVictim(), SPELL_ARCANE_BREATH) == CAST_OK)
{
m_uiArcaneBreathTimer = 10000;
DoScriptText(SAY_DEATH, m_creature); // проверка, срабатывает ли код вообще
}
}
else
m_uiArcaneBreathTimer -= uiDiff;
// Мили атака
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI_boss_malygos(Creature* pCreature)
{
return new boss_malygosAI(pCreature);
}
void AddSC_boss_malygos()
{
Script *newscript;
newscript = new Script;
newscript->Name = "boss_malygos";
newscript->GetAI = &GetAI_boss_malygos;
newscript->RegisterSelf();
}
Вставлял другие спеллы вроде дыхания ониксии, халиона и синдрагосы - кастует. Но вот именно собственный 56272 не хочет никак.