Ru-MaNGOS

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

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

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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2010, 15:53   #1
Chipleo
Пользователь
 
Аватар для Chipleo
 
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
Chipleo На верном пути
По умолчанию [10504][fix bug] урон петом по игроку на нейтральной територии

Код:
@@ -533,7 +533,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
 
     //You don't lose health from damage taken from another player while in a sanctuary
     //You still see it in the combat log though
-    if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
+    if(pVictim != this && GetCharmerOrOwnerPlayerOrPlayerItself() && pVictim->GetCharmerOrOwnerPlayerOrPlayerItself()) //kia
     {
         const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
         if(area && area->flags & AREA_FLAG_SANCTUARY)       //sanctuary
Chipleo вне форума  
Пользователь сказал cпасибо:
Vladimir (19.09.2010)
Старый 11.09.2010, 17:25   #2
SeT
Ученый
 
Аватар для SeT
 
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
SeT На верном пути
По умолчанию

Вносить вместе с комментарием?
И в мангосе, в этой функции нет такого кода.

Последний раз редактировалось SeT; 11.09.2010 в 21:39.
SeT вне форума  
Старый 16.09.2010, 17:40   #3
Chipleo
Пользователь
 
Аватар для Chipleo
 
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
Chipleo На верном пути
По умолчанию

Код:
uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const *spellProto, bool durabilityLoss)
{
    if (!pVictim->isAlive() || pVictim->IsTaxiFlying() || pVictim->GetTypeId() == TYPEID_UNIT && ((Creature*)pVictim)->IsInEvadeMode())
        return 0;

    //You don't lose health from damage taken from another player while in a sanctuary
    //You still see it in the combat log though
    if(pVictim != this && GetTypeId() == TYPEID_PLAYER && pVictim->GetTypeId() == TYPEID_PLAYER)
    {
        const AreaTableEntry *area = GetAreaEntryByAreaID(pVictim->GetAreaId());
        if(area && area->flags & AREA_FLAG_SANCTUARY)       //sanctuary
            return 0;
    }
- это оригинальный код. Мой патч взят из модифицированого кода с добавлнением логов боя и т.д., суть бага остается неизменной: например в Шатрате можно натравить пета на вражеского игрока и игрок не может ничего с петом сделать. А комментарий не нужен, я оставляю его чтобы знать что мною изменено и не соответствует основному коду.
Chipleo вне форума  
Старый 19.09.2010, 01:26   #4
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

GetCharmerOrOwnerPlayerOrPlayerItself ущет указатель по guid который для проверки совершенно не нужен. Там есть специально функция IsCharmerOrOwnerPlayerOrPlayerItself которая не ищет указатель и ограничивается тестом guid-ов.

Добавил в [10504] с этим изменением во всех местах где эта проверка делается (3). Спасибо.

В mangos-0.12 перенесу при следующем моем проходе по переносу свежих коммитов из master.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Пользователь сказал cпасибо:
Mayss (19.09.2010)
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подмена флагов области. Например для создания нейтральной area или наоборот pvp_области. idspooler Моды 3 04.10.2010 10:50
[10504] Prevent damage player in sanctuary by pet or other controlled unit. newsbot CMaNGOS Commits 0 19.09.2010 01:50
Лицом к игроку, как??? Lordronn Скрипты 4 04.08.2010 12:43
Создание итема игроку KiriX Новичкам 4 26.06.2010 15:32
Баг на урон karobas Корзина 5 05.04.2010 21:41


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


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