Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Баг-репорты

Важная информация

Баг-репорты Описываем проблемы и ошибки работы ядра

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.08.2010, 22:41   #1
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию Обработка эффектов спеллов

Как я понял, на данный момент ядро не может обрабатывать каждый эффект спелла в полной мере и переходить к другому.

Примеры:
1. Спелл 17016 суммонит го и активирует его (по словам на форуме СД2).
Если не ошибаюсь, то го появляется только в void Map::Update(const uint32 &t_diff), когда все эффекты уже давно обработаны, поэтому го не попадает в цель второго эффекта.
2. http://ru-mangos.ru/showthread.php?t=2178
Первый эффект должен отработать в полной мере, т.е. перенести игрока на землю, а потом уже должен отработать эффект нанесения урона при приземлении.

Возможно, второй пример немного не по теме, но первый точно сюда.

Предполагается ли подобная реализация в ядре?
virusav вне форума   Ответить с цитированием
Старый 27.08.2010, 01:09   #2
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Размытое описание: вопрос отдельно, запрос отдельно.

1)
Map::Update делает свою роль — обновляет объекты на карте, не важно, GO или Unit. В данном случае, первый вызов Map::Update после создания ГО — конкретно добавляет объект клиентам.

Выставьте gameObjTarget в первом эффекте, делов-то?

2) Накладывает думми ауру. После приземления игрока используется время полета из movementInfo для расчета урона, затем идет каст спеллов (у нас CastCustomSpell будет).

ИМО: Какие-то несуществующие проблемы, вы, virusav, постоянно решаете. :/
LordJZ вне форума   Ответить с цитированием
Старый 27.08.2010, 08:21   #3
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Просто этих несущественных проблем много накопилось.
Код:
Выставьте gameObjTarget в первом эффекте, делов-то?
Объект должен появиться при действии первого эффекта спелла.
Можно пояснить, что именно имелось в виду?
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (29.08.2010)
Старый 27.08.2010, 09:27   #4
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

В void Spell::EffectSummonObject(SpellEffectIndex eff_idx) есть:
Код:
GameObject* pGameObj = new GameObject;
Добавьте:
Код:
gameObjTarget = pGameObj;
LordJZ вне форума   Ответить с цитированием
Старый 27.08.2010, 10:12   #5
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Может, проще сразу патчем выложить, чтобы в ядро приняли?
virusav вне форума   Ответить с цитированием
Старый 27.08.2010, 10:18   #6
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Да, патчем наверное проще. Выкладывайте!

А если серьезно, то с нашей бюрократией простой if (spell_id == 12345) gameObjTarget = pGameObj; не примут в ядро.
LordJZ вне форума   Ответить с цитированием
Старый 27.08.2010, 10:50   #7
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

В том-то и дело, что нужен вариант, который примут в ядро.
По идее, можно же проверить, что суммонится го или нпц и делать соответствующие операции.
При этом привязка к кодам спеллов будет не нужна.
virusav вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каст триггерных спеллов 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


Текущее время: 20:52. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot