|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
MaNGOS 0.12 (2.4.3) Любителям олд-скула =) Всё для клиента 2.4.3 |
|
Опции темы | Поиск в этой теме | Опции просмотра |
27.04.2010, 14:42 | #1 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
|
[fix bug] Deserter
Код:
@@ -915,11 +915,13 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) SpellMissInfo missInfo = target->missCondition; // Need init unitTarget by default unit (can changed in code on reflect) // Or on missInfo!=SPELL_MISS_NONE unitTarget undefined (but need in trigger subsystem) unitTarget = unit; - if (missInfo==SPELL_MISS_NONE) // In case spell hit target, do all effect on that target + if (m_spellInfo->Id == 26013) // kia cast deserter always + DoSpellHitOnUnit(unit, mask); + else if (missInfo==SPELL_MISS_NONE) // In case spell hit target, do all effect on that target DoSpellHitOnUnit(unit, mask); else if (missInfo == SPELL_MISS_REFLECT) // In case spell reflect from target, do all effect on caster (if hit) { if (target->reflectResult == SPELL_MISS_NONE) // If reflected spell hit caster -> do all effect on him DoSpellHitOnUnit(m_caster, mask); |
19.12.2010, 15:02 | #2 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Баг подтверждаю, но конечно он должен исправляться не такими хаками.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
19.12.2010, 17:18 | #3 |
Гость
Сообщений: n/a
|
Также есть баг с Ressurection Sickness. Он точно так же снимается льдом мага\и палладиновским баблом.
Код:
diff -r 8d276615bc3b -r 5b835cc5a456 src/server/game/Spells/SpellMgr.cpp --- a/src/server/game/Spells/SpellMgr.cpp Thu Sep 23 23:56:43 2010 +0700 +++ b/src/server/game/Spells/SpellMgr.cpp Fri Sep 24 00:15:53 2010 +0700 @@ -751,6 +751,18 @@ SpellEntry const *spellproto = sSpellStore.LookupEntry(spellId); if (!spellproto) return false; + switch(spellId) + { + // Deserter + case 26013: + return false; + break; + // Resurrection Sickness + case 15007: + return false; + break; + } + // not found a single positive spell with this attribute if (spellproto->Attributes & SPELL_ATTR_NEGATIVE_1) return false; |
19.12.2010, 18:50 | #4 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Это не помогает. Проблема не в deserter а в щите - в 3.x этот спел имеет флаги прерывания при смене карты, и к моменту наложения Deserter уже удален, а в 2/x таких флагов он не имеет. Делание из deserter негативного спела фактически только усугубляет дело, так как в проверке имунности игнорируется только случай когда _оба_ спела позитивные.
Это также значит что в mangos master тоже нет настоящего решения проблемы и только случайное сочетание позволяет накладываться deserter с divine shield.
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 19.12.2010 в 19:39. |
19.12.2010, 19:47 | #5 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Null, break после return не имеет смысла.
|
19.12.2010, 21:38 | #6 |
Гость
Сообщений: n/a
|
Так deserter- частный случай. Именно он идёт как isPositive, но расчитывается в игре(по логике людской) как !isPositive. Как тогда, по вашему, можно особый случай задать, если не так?
|
19.12.2010, 21:39 | #7 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
проблема не в позитивности deserter
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|