|
Баг-репорты Описываем проблемы и ошибки работы ядра |
|
Опции темы | Поиск в этой теме | Опции просмотра |
26.08.2010, 22:41 | #1 |
Администратор
|
Обработка эффектов спеллов
Как я понял, на данный момент ядро не может обрабатывать каждый эффект спелла в полной мере и переходить к другому.
Примеры: 1. Спелл 17016 суммонит го и активирует его (по словам на форуме СД2). Если не ошибаюсь, то го появляется только в void Map::Update(const uint32 &t_diff), когда все эффекты уже давно обработаны, поэтому го не попадает в цель второго эффекта. 2. http://ru-mangos.ru/showthread.php?t=2178 Первый эффект должен отработать в полной мере, т.е. перенести игрока на землю, а потом уже должен отработать эффект нанесения урона при приземлении. Возможно, второй пример немного не по теме, но первый точно сюда. Предполагается ли подобная реализация в ядре? |
27.08.2010, 01:09 | #2 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Размытое описание: вопрос отдельно, запрос отдельно.
1) Map::Update делает свою роль — обновляет объекты на карте, не важно, GO или Unit. В данном случае, первый вызов Map::Update после создания ГО — конкретно добавляет объект клиентам. Выставьте gameObjTarget в первом эффекте, делов-то? 2) Накладывает думми ауру. После приземления игрока используется время полета из movementInfo для расчета урона, затем идет каст спеллов (у нас CastCustomSpell будет). ИМО: Какие-то несуществующие проблемы, вы, virusav, постоянно решаете. :/ |
27.08.2010, 09:27 | #4 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
В void Spell::EffectSummonObject(SpellEffectIndex eff_idx) есть:
Код:
GameObject* pGameObj = new GameObject; Код:
gameObjTarget = pGameObj; |
27.08.2010, 10:12 | #5 |
Администратор
|
Может, проще сразу патчем выложить, чтобы в ядро приняли?
|
27.08.2010, 10:18 | #6 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Да, патчем наверное проще. Выкладывайте!
А если серьезно, то с нашей бюрократией простой if (spell_id == 12345) gameObjTarget = pGameObj; не примут в ядро. |
27.08.2010, 10:50 | #7 |
Администратор
|
В том-то и дело, что нужен вариант, который примут в ядро.
По идее, можно же проверить, что суммонится го или нпц и делать соответствующие операции. При этом привязка к кодам спеллов будет не нужна. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Каст триггерных спеллов | virusav | Баг-репорты | 1 | 08.12.2010 16:54 |
[10740] Названия эффектов спеллов | virusav | Принятые патчи | 1 | 19.11.2010 05:08 |
Обработка думми и прочих эффектов в `spell_scripts` | virusav | Флудильня | 1 | 22.09.2010 22:08 |
Маски спеллов | fedr | Новичкам | 2 | 13.09.2010 22:42 |
[patch] Понижение длительности прерывающих эффектов | Insider42 | Патчи на рассмотрении | 1 | 11.05.2010 17:07 |