Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Принятые патчи

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

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2010, 12:51   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию [10744][fix] prevent equip and unequip item in process logout

Во время логаута - нельзя снимать/одевать вещи.

PHP код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 1795654.
.b978447 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -10356,+10356,@@ uint8 Player::CanEquipItemuint8 slotuint16 &destItem *pItembool swapbo
                 
// do not allow equipping gear except weapons, offhands, projectiles, relics in
                 // - combat
                 // - in-progress arenas
+                // - in process logout
                 
if (!pProto->CanChangeEquipStateInCombat())
                 {
                     if( 
isInCombat() )
@@ -
10364,+10365,11 @@ uint8 Player::CanEquipItemuint8 slotuint16 &destItem *pItembool swapbo
                     
if (BattleGroundbg GetBattleGround())
                         if (
bg->isArena() && bg->GetStatus() == STATUS_IN_PROGRESS)
                             return 
EQUIP_ERR_NOT_DURING_ARENA_MATCH;
-                }
 
+                    if(
GetSession()->isLogingOut())
+                        return 
EQUIP_ERR_YOU_ARE_STUNNED;                                                                                      
+                }                 
+                        
                 if (
isInCombat()&& pProto->Class == ITEM_CLASS_WEAPON && m_weaponChangeTimer != 0)
                     return 
EQUIP_ERR_CANT_DO_RIGHT_NOW;         // maybe exist better err
 
@@ -10487,+10491,@@ uint8 Player::CanUnequipItemuint16 posbool swap ) const
     
// do not allow unequipping gear except weapons, offhands, projectiles, relics in
     // - combat
     // - in-progress arenas
+    // - in process logout
     
if( !pProto->CanChangeEquipStateInCombat() )
     {
         if( 
isInCombat() )
@@ -
10495,+10500,11 @@ uint8 Player::CanUnequipItemuint16 posbool swap ) const
         if(
BattleGroundbg GetBattleGround())
             if( 
bg->isArena() && bg->GetStatus() == STATUS_IN_PROGRESS )
                 return 
EQUIP_ERR_NOT_DURING_ARENA_MATCH;
-    }
 
+        if(
GetSession()->isLogingOut())                    
+            return 
EQUIP_ERR_YOU_ARE_STUNNED;            
+    }            
+            
     if(!
swap && pItem->IsBag() && !((Bag*)pItem)->IsEmpty())
         return 
EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS
Вложения
Тип файла: patch prevent equip and unequip item in process logout.patch (2.1 Кб, 3 просмотров)
Den вне форума  
Пользователь сказал cпасибо:
Vladimir (19.11.2010)
Старый 11.11.2010, 14:02   #2
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Перепроверил ещё раз, + ещё не должно сниматься оружие(офханды, ванды и т.п)

Вот так будет правильнее:

PHP код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 1795654..9d492f8 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -10366,+10366,13 @@ uint8 Player::CanEquipItemuint8 slotuint16 &destItem *pItembool swapbo
                             
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
                 }
 
+                
// prevent equip item in process logout
+                if (pProto->Class == ITEM_CLASS_WEAPON || ITEM_CLASS_ARMOR)
+                {
+                    if(
GetSession()->isLogingOut())
+                       return 
EQUIP_ERR_YOU_ARE_STUNNED;
+                }

                 if (
isInCombat()&& pProto->Class == ITEM_CLASS_WEAPON && m_weaponChangeTimer != 0)
                     return 
EQUIP_ERR_CANT_DO_RIGHT_NOW;         // maybe exist better err
 
@@ -10497,+10504,13 @@ uint8 Player::CanUnequipItemuint16 posbool swap ) const
                 return 
EQUIP_ERR_NOT_DURING_ARENA_MATCH;
     }
 
+    
// prevent unequip item in process logout
+    if (pProto->Class == ITEM_CLASS_WEAPON || ITEM_CLASS_ARMOR)
+    {
+        if(
GetSession()->isLogingOut())
+            return 
EQUIP_ERR_YOU_ARE_STUNNED;     
+    }
+         
     if(!
swap && pItem->IsBag() && !((Bag*)pItem)->IsEmpty())
         return 
EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS
Вложения
Тип файла: patch 1.patch (1.2 Кб, 3 просмотров)
Den вне форума  
Старый 11.11.2010, 17:51   #3
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

остальное можно? типа сумок... может надо вообще запретить любой...
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 11.11.2010, 18:12   #4
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Сумки тоже нельзя снимать... вроде бы и всё.
Den вне форума  
Старый 11.11.2010, 20:50   #5
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

ok, попробуем с другой стороны, что можно снимать?
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 11.11.2010, 20:55   #6
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Ничего Только можно перемещать предмет в сумке из слота в слот.(это в мангосе работает как надо, единственное , что не правильно работало - во время логаута можно было снимать/одевать вещи, ну патч это исправил...)
Den вне форума  
Пользователь сказал cпасибо:
Vladimir (19.11.2010)
Старый 14.11.2010, 07:33   #7
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Тогда зачем все эти проверки на типы предметов при проверке возможности снятия/одевания...
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 19.11.2010, 05:24   #8
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Я удалил проверку класса вещи так как так и не понял зачем ее вставили в код...

С этим изменением в [10744]. Спасибо
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10920] Prevent server freeze at strnage radisu used by item 34124 spell cast newsbot CMaNGOS Commits 0 24.12.2010 20:30
[10883] Implement item 49982, 50641 equip effect newsbot CMaNGOS Commits 0 17.12.2010 15:20
[10744] Prevent equip/unequip items in process logout newsbot CMaNGOS Commits 0 19.11.2010 05:49
[bug+fix] Use pvp trinket in process player logout Den Баг-репорты 1 17.11.2010 14:19
[9765] Prevent crash at use .npc delitem to item with multiply extanded costs. newsbot CMaNGOS Commits 0 19.04.2010 12:40


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


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