Ru-MaNGOS

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.03.2011, 12:18   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию save some auras

Интересный баг, учим таланты http://www.wowhead.com/spell=58426 и http://www.wowhead.com/spell=31223
И в невидимости сбрасываем таланты у тренера, и получается , что обе ауры от талантов остаются на игроке, логаут не помогает, действует до отмены или смерти игрока. А все потому, что не снимается невидимость.
Исправление:
1) на офе когда сбрасываешь таланты , аура невидимости снимается:
PHP код:
diff --git a/src/game/SkillHandler.cpp b/src/game/SkillHandler.cpp
index fc6ea1a
..883b28c 100644
--- a/src/game/SkillHandler.cpp
+++ b/src/game/SkillHandler.cpp
@@ -70,+70,10 @@ void WorldSession::HandleTalentWipeConfirmOpcodeWorldPacket recv_data )
     if (
GetPlayer()->hasUnitState(UNIT_STAT_DIED))
         
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_FEIGN_DEATH);
 
+    
// remove stealth
+    if (GetPlayer()->HasAuraType(SPELL_AURA_MOD_STEALTH))
+        
GetPlayer()->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
+
     if (!(
_player->resetTalents()))
     {
         
WorldPacket dataMSG_TALENT_WIPE_CONFIRM8+4);    //you have not any talent 
2) эти две ауры на офе, не сохраняются на игроке - после выхода из мира:
Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index d39a96b..e6a392a 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -17310,9 +17310,27 @@ void Player::_SaveAuras()
     for(SpellAuraHolderMap::const_iterator itr = auraHolders.begin(); itr != auraHolders.end(); ++itr)
     {
         SpellAuraHolder *holder = itr->second;
+
+	 bool save = true;
+
+	 for (int32 j = 0; j < MAX_EFFECT_INDEX; ++j)
+        {
+	     SpellEntry const* spellInfo = holder->GetSpellProto();
+
+            if (spellInfo->EffectApplyAuraName[j] == SPELL_AURA_MOD_STEALTH ||
+	         spellInfo->EffectApplyAuraName[j] == SPELL_AURA_MOD_INVISIBILITY ||
+		 spellInfo->EffectApplyAuraName[j] == SPELL_AURA_MOD_POWER_REGEN_PERCENT ||
+	         spellInfo->EffectApplyAuraName[j] == SPELL_AURA_MOD_DAMAGE_PERCENT_DONE ||
+		 spellInfo->EffectApplyAuraName[j] == SPELL_AURA_MOD_INVISIBILITY_DETECTION)
+            {
+                save = false;
+                break;
+            }
+        }
+
         //skip all holders from spells that are passive or channeled
         //do not save single target holders (unless they were cast by the player)
-        if (!holder->IsPassive() && !IsChanneledSpell(holder->GetSpellProto()) && (holder->GetCasterGUID() == GetGUID() || !holder->IsSingleTarget()))
+        if (save && !holder->IsPassive() && !IsChanneledSpell(holder->GetSpellProto()) && (holder->GetCasterGUID() == GetGUID() || !holder->IsSingleTarget()))
         {
             int32 damage[MAX_EFFECT_INDEX];
             int32 remaintime[MAX_EFFECT_INDEX];
Сохранение некоторых аур уже обсуждалось. Поэтому второй патч для четкости, и для тех багеров которые пользовались (после логаута или ребута сервера ауры удалятся).

Последний раз редактировалось Den; 19.03.2011 в 12:21.
Den вне форума   Ответить с цитированием
Старый 19.03.2011, 13:16   #2
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

хм. некоторые SPELL_AURA_MOD_INVISIBILITY_DETECTION SPELL_AURA_MOD_POWER_REGEN_PERCENT SPELL_AURA_MOD_DAMAGE_PERCENT_DONE точно должны сохраняться. флаг мб?
rsa вне форума   Ответить с цитированием
Старый 19.03.2011, 16:39   #3
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Нет, не сохраняются, есть подтверждение.
SPELL_AURA_MOD_POWER_REGEN_PERCENT - тык
SPELL_AURA_MOD_DAMAGE_PERCENT_DONE - тык
Den вне форума   Ответить с цитированием
Старый 19.03.2011, 17:39   #4
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Я вообще-то о некоторых. Например у пала аура от глифа поиска нежити.
rsa вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10880] Avoid constant re-save BG entry data at each save for player at bg/arena. newsbot CMaNGOS Commits 0 16.12.2010 20:40
[10446] Small fix for single target auras: remove caster only auras newsbot CMaNGOS Commits 0 05.09.2010 08:00
[10332] Save cast item guid for auras also. newsbot CMaNGOS Commits 0 09.08.2010 05:21
Auto .Save all Creed Новичкам 7 24.07.2010 17:57
[9632] Restore load/save known titles. newsbot CMaNGOS Commits 0 28.03.2010 00:12


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


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