|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
16.08.2010, 22:09 | #1 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
SPELL_AURA_PERIODIC_TRIGGER_SPELL
Нашёл спелл: http://ru.wowhead.com/spell=42464
Он триггерит нужный нам спелл http://ru.wowhead.com/spell=42454 Но вот беда - неверно он как-то это делает... Триггерный спелл триггерится каждые 2 секунды, получается ещё раньше чем кончается действие самого триггерного спелла (оно длится 3 секунды). В результате бафф сбивается, теряется и всякая хрень с ним происходит. Попытался сделать таки образом, чтобы если на цели триггерного спелла уже висит аура - не кастовать снова. Выплыл к void Aura::TriggerSpell() Но тут никак не проверить цель именно триггерного спелла, а она весьма интересна: Targets (22, 7) (TARGET_CASTER_COORDINATES, TARGET_AREAEFFECT_INSTANT) В результате провести проверку на наличие ауры нельзя. Кто что может сказать? |
16.08.2010, 22:14 | #2 |
Администратор
|
Может, проверять через bool Unit::HasAura(uint32 spellId, SpellEffectIndex effIndex) const и в случае наличия ауры не кастовать снова?
|
16.08.2010, 22:18 | #3 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Я знаю чем определить наличие ауры, но дело в том, что невозможно получить цель триггерного спелла, т.е. кричера на которого триггерный спелл будет наложен, а значит и определять наличие ауры тупо не у кого... |
|
16.08.2010, 22:28 | #4 |
Администратор
|
Что-то я не догнал.
Код:
&Aura::HandlePeriodicTriggerSpell, // 23 SPELL_AURA_PERIODIC_TRIGGER_SPELL Код:
void Aura::HandlePeriodicTriggerSpell(bool apply, bool /*Real*/) { m_isPeriodic = apply; Unit *target = GetTarget(); if (!apply) { switch(GetId()) Или я снова не понял? |
16.08.2010, 23:03 | #5 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
НО! Там идёт такая приблизительно строка: triggerTarget->CastSpell(triggerTarget, triggeredSpellInfo, true, NULL, this, casterGUID); Всё бы ничего, но вот незадача - цель спелла 42454 - TARGET_AREAEFFECT_INSTANT. Т.е. пофиг, что указано в triggerTarget - выборка целей идёт в обработке цели TARGET_AREAEFFECT_INSTANT. Можно указать даже triggerTarget=caster - спелл всё равно сработает на того кого надо, отбирая цели в TARGET_AREAEFFECT_INSTANT. Как я недавно понял, исключение в данном случае для спелла этого нужно делать как раз в обработчике целей. Понятнее так? |
|
16.08.2010, 23:48 | #6 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Target 7 выбирает мобов по entry.
Надо смотреть на оффе, с какой периодичностью срабатывает. |
23.09.2010, 22:21 | #8 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Ап, есть продвижения по данному виду таргета?
|
24.09.2010, 10:51 | #9 | ||
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
А причем тут таргеты - они как-раз даже по описанию правильно отрабатывают
Какая цель может быть у арейного каста - только автоматически выбираемая и выбирается корректно. По самой проблеме которая как сам KiriX написал связана не с целями: B рекомендуется читать английские комментарии: Цитата:
Цитата:
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 24.09.2010 в 11:09. |
||
24.09.2010, 12:03 | #10 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Допустим спелл 20553 имеет такие же таргеты (1.12). Применяется боссом Магмадар, в мк (тригерится от пассивной ауры с периодичностью 2 сек и должен накладываться на его аддов, которых надо отводить от самого босса чтобы они не попадали под бафф(дебафф). В итоге накладывается на всех подряд вокруг и именно на врагов - т.е босс кастует этот спел на рейд
Аналогично с рефлектом у Мажордомо, кастит щиты на рейд |
25.09.2010, 08:25 | #11 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Проблемы с 20553 связаны с неправильным определением позитивности спела - к изначальной теме никакого отношения все равно нет.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
01.04.2011, 20:01 | #12 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Что-то похожее и у спела 38437 (+ еще таких хватает).
Код:
if (triggerTarget->IsAllTotemSlotsUsed()) triggerTarget->CastSpell(triggerTarget, 38437, true, NULL, this); else triggerTarget->RemoveAurasDueToSpell(38437); return; Может проверку такую выставлять ? Код:
if (triggerTarget->GetAura(38437, EFFECT_INDEX_0)) return; Последний раз редактировалось Den; 01.04.2011 в 20:04. |