Показать сообщение отдельно
Старый 13.11.2010, 22:00   #8
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Не стал создавать новую тему на такую же мелочь.
Вообщем описание:
1. Снимается стелс - когда персонаж сделал логаут (только по завершению).
2. Если у рога прокачены таланты: Overkill или Master of sublety , так же снимаются по завершению логаута.
3. Снимается рассовая абилка ночных эльфов Shadowmeld (тоже по завершению логаута).
4. Снимаются ауры инвиза - дающие предметы http://www.wowhead.com/item=3823 и http://www.wowhead.com/item=9172
5. И по завершению логаута, если персонаж был в стелсе (или вышел из него - прямо перед выходом) с него сбрасывается кулдаун , со стелса всмысле, это не касается рассовой абилки Shadowmelda .
Правильным ли будет это?


PHP код:
diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp
index 1e7c00c
..d3cd5de 100644
--- a/src/game/WorldSession.cpp
+++ b/src/game/WorldSession.cpp
@@ -294,+294,25 @@ void WorldSession::LogoutPlayer(bool Save)
         if (
uint64 lguid GetPlayer()->GetLootGUID())
             
DoLootRelease(lguid);
 
+        
// remove auras: stealth, shadowmeld (racial), overkill, master of sublety only for player logout complete
+        // remove auras use items 3823, 9172 only for player logout complete
+        // reset cooldown stealth only for player logout complete
+        if (_player->GetSession()->PlayerLogout())  
+        {      
+            if (
_player->HasAuraType(SPELL_AURA_MOD_STEALTH) ||        
+                
_player->HasAuraType(SPELL_AURA_MOD_POWER_REGEN_PERCENT) ||
+                
_player->HasAuraType(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE) ||
+                
_player->HasAuraType(SPELL_AURA_MOD_INVISIBILITY_DETECTION) ||
+                
_player->HasSpellCooldown(1784))
+            {
+                
_player->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);                 // stealth
+                _player->RemoveSpellsCausingAura(SPELL_AURA_MOD_POWER_REGEN_PERCENT);     // overkill
+                _player->RemoveSpellsCausingAura(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);     // master of subtlety    
+                _player->RemoveSpellsCausingAura(SPELL_AURA_MOD_INVISIBILITY_DETECTION);  // auras from item 3823, 9172
+                _player->RemoveSpellCooldown(1784);                                       // reset cooldown stealth
+            }
+        }                
+        
         
///- If the player just died before logging out, make him appear as a ghost
         //FIXME: logout must be delayed in case lost connection with client in time of combat
         
if (_player->GetDeathTimer()) 
Den вне форума   Ответить с цитированием