Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Устаревшие темы и разработки > MaNGOS 0.12 (2.4.3)

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

MaNGOS 0.12 (2.4.3) Любителям олд-скула =) Всё для клиента 2.4.3

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2010, 14:42   #1
Chipleo
Пользователь
 
Аватар для Chipleo
 
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
Chipleo На верном пути
По умолчанию [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);
Дезертир не вешался на паладинов в divne shield, теперь он вешается в любом случае.
Chipleo вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
ANTOMA (03.08.2010), Limpnau (12.06.2010)
Старый 19.12.2010, 15:02   #2
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Баг подтверждаю, но конечно он должен исправляться не такими хаками.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 19.12.2010, 17:18   #3
Null
Гость
 
Сообщений: 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
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Это не помогает. Проблема не в deserter а в щите - в 3.x этот спел имеет флаги прерывания при смене карты, и к моменту наложения Deserter уже удален, а в 2/x таких флагов он не имеет. Делание из deserter негативного спела фактически только усугубляет дело, так как в проверке имунности игнорируется только случай когда _оба_ спела позитивные.

Это также значит что в mangos master тоже нет настоящего решения проблемы и только случайное сочетание позволяет накладываться deserter с divine shield.
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 19.12.2010 в 19:39.
Vladimir вне форума   Ответить с цитированием
Старый 19.12.2010, 19:47   #5
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Null, break после return не имеет смысла.
zergtmn вне форума   Ответить с цитированием
Старый 19.12.2010, 21:38   #6
Null
Гость
 
Сообщений: n/a
По умолчанию

Так deserter- частный случай. Именно он идёт как isPositive, но расчитывается в игре(по логике людской) как !isPositive. Как тогда, по вашему, можно особый случай задать, если не так?
  Ответить с цитированием
Старый 19.12.2010, 21:39   #7
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

проблема не в позитивности deserter
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Ответ


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

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



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


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