|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
11.09.2010, 15:53 | #1 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
|
[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 |
Пользователь сказал cпасибо: | Vladimir (19.09.2010) |
11.09.2010, 17:25 | #2 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
|
Вносить вместе с комментарием?
И в мангосе, в этой функции нет такого кода. Последний раз редактировалось SeT; 11.09.2010 в 21:39. |
16.09.2010, 17:40 | #3 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
|
Код:
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; } |
19.09.2010, 01:26 | #4 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
GetCharmerOrOwnerPlayerOrPlayerItself ущет указатель по guid который для проверки совершенно не нужен. Там есть специально функция IsCharmerOrOwnerPlayerOrPlayerItself которая не ищет указатель и ограничивается тестом guid-ов.
Добавил в [10504] с этим изменением во всех местах где эта проверка делается (3). Спасибо. В mangos-0.12 перенесу при следующем моем проходе по переносу свежих коммитов из master.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
Пользователь сказал cпасибо: | Mayss (19.09.2010) |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подмена флагов области. Например для создания нейтральной 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 |