Цитата:
Сообщение от MaS0n
Unit.cpp - HandleDummyAuraProc
прокаем ауру, висящую на мече, от кастов, каст игрока в данном случае будет procSpell, и ничего не мешает задать маску в spell_proc_event для конкретных спеллов и написать что-то вроде
Код:
// Dancing Rune Weapon
if (dummySpell->Id == 49028)
{
// 1 dummy aura for dismiss rune blade
if (effIndex!=2)
return false;
if (!pVictim)
return false;
if (!procSpell)
return false;
Unit * caster = triggeredByAura->GetCaster();
if (!caster || caster != this)
return false;
Unit * rune_weapon = caster->GetPet();
if (!rune_weapon)
return false;
rune_weapon->CastSpell(caster->getVictim(), procSpell->Id, true);
break;
}
На скорую руку накатал как пример - возможно где-то лишние или недостающие проверки
|
Попробывал сделать так, оружие меня игнорирует
Может что не так в табличке с проками?
Там изначально было в поле "procFlags" <65552>, так и должно быть? <65536> + <16>, тоесть PROC_FLAG_DODGE и PROC_FLAG_CRIT_SPELL, или я что-то не так понял?
В "ProcEx" <65536>, тоесть PROC_EX_EX_TRIGGER_ALWAYS - ну тут вроде верно.
Как я понимаю SpellFamilyMask из DBC брать, посмотрел, поля нашол , дальше так и заполнить 0-1-1 в таблицу ?
И ещё вопрос можно ли сделать через код, есть сильная разница?
Я имею введу дюжину подобных условий...
Код:
if(procSpell && procSpell->Id == H_STRIKE)
{
rune_weapon->CastSpell(caster->getVictim(), procSpell->Id, true);
}
Так просто глазам приятнее, и понятнее.