[patch/dev] Невидимость vs магия
Достаточно давно роги (они же Разбойники) (и друиды тоже) стали жаловаться, что при уходе, например в "ванишу" (оно же Исчезновение), в них всё равно прилетает спел, если он наносит урон моментально. В итоге с помощью Чародейской вспышки или Чародейских стрел (особенно любимый магами спел для того чтобы мучать разбойников.
В данный момент стот ревизия 9880 и проблема всё ещё есть. По-моему вот этот участок кода в spell.cpp должен отвечать за это дело Код:
// update pointers base at GUIDs to prevent access to non-existed already object У кого-то есть другие идеи по реализации? Пишите, пока я не начал реализацию того, что задумал :) Ещё есть вариант поработать с этой функцией Код:
void SpellCastTargets::Update(Unit* caster) Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp Код:
// for delayed spells ignore not visible explicit target Поставлю на игровой сервер, посмотрим что ещё найдут :P |
SpellCastTargets::Update - может зря туда? Update в нескольких местах используется..
if(!m_targets.getUnitTarget() && m_targets.getUnitTargetGUID() && m_targets.getUnitTargetGUID() != m_caster->GetGUID()) может туда уже добавить как еще одно условие ? а не просто обнулять unitTarget? |
Цитата:
Цитата:
Нам же нужно прервать заклинание именно в тот момент когда цель стала недоступна |
логично то логично, но этот баг есть и на офе. близы пытались его фиксить во времена траев ик-ивк, но безуспешно
|
Цитата:
|
С патчем в первом посте проблема:
Ловушки охотников при попадании в них невидимых разбойников - прерываются, в прямом смысле слова. Загвоздка в том, что m_spellinfo нельзя (или я незнаю как) вызвать из функции, которую меняет патч, так возможно бы сделал исключение... Новая версия патча в более корректном месте Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp Пожалуй, это окончательная версия |
Нашёл баг в предыдущей версии патча, из-за которого некоторые невидимые НПС, такие как Хранители душ на БГ, иногда не воскрешали игроков
Новая версия патча не должна иметь данной проблемы, там всего лишь нехватало проверки на IsAlive, ведь мертвый по определению невидим. Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp |
Текущее время: 16:02. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS