|
Отвергнутые патчи Патчи, отвергнутые от приёма в GIT |
|
Опции темы | Поиск в этой теме | Опции просмотра |
11.06.2011, 09:30 | #1 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Снятие аур 96 и 111 по прокфлагам
Сабж. У них для этого есть все необходимые атрибуты, ничего хакать не надо. К тому же достаточно сильно неверный выбор доступных целей для перенаправления.
https://github.com/mangosR2/mangos/c...ddd15ca1bf9f30 Часть коммита в spell.cpp и метод определения доступных спеллов для перенаправления - дискуссионны, возможно требуют дополнительной корректировки (не предлагается к принятию в текущем виде). |
10.08.2011, 22:14 | #2 | ||
MaNGOS Dev
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
|
Код:
if (tmpUnitMap.size() == 1 && *tmpUnitMap.begin() == m_caster->getVictim()) Код:
if (pMagnetTarget != *tmpUnitMap.begin()) Цитата:
Цитата:
- https://github.com/mangos/mangos/com...c3b6637b2fd995 альтернатива |
||
10.08.2011, 22:59 | #3 | ||
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
а вот тут уж хрен, извиняюсь. прекращайте жить в однопоточном мире. блокированные холдеры в коде удаляются на 2 строчки выше аур - при нагруженном сервере с многопоточными картами имеем пачки крашей с холдер=NULL и аура !=NULL. могу переслать. кстати, как к их автору, меня вообще удивляет название. раз уж делать холдер - так холдер (двухуровневый курсор с подсчетом ссылок), а тут громким именем назван обычный объект с обычными ссылками... блокировки надо изобретать Цитата:
|
||
11.08.2011, 05:17 | #4 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Цитата:
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
11.08.2011, 10:32 | #5 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
А, да еще. Запрашивать _информацию_ об аурах с юнита, обрабатываемого в другом потоке, никакая реализация конкурирующих потоков не запретит. а в текущей ситуации основная масса проблем - юнит1 запросил список думмиаур с юнита2, а пока он его проверял, юнит2 в другом потоке одну ауру дропнул. у юнита1 указатель на конец списка стал показывать в небо (ну или еще хуже) - краш. Последний раз редактировалось rsa; 11.08.2011 в 10:46. |
|
11.08.2011, 11:18 | #6 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
|
11.08.2011, 11:34 | #7 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
игрок кинул дот (или много еще чего) на другого и портнулся на другую карту. дот на втором игроке (в одной карте) считает SP кастера (или проки), находящегося на другой карте, включая перебор его думмиаур... таких сценариев больше десятка.
|
11.08.2011, 12:28 | #8 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
я чувствую себя дурачком я не знаю всех этих геймерских сокращений SP - это что? мне подсказывают что это возможно Spell Power?
в любом случае, что бы там не было, какой то странный дизайн. у меня создается объект типа TAura, в котором все эти параметры заданы. и он работает сам себе независимо ни от чего. как отработает - снимается. он даже не линкуется к юниту. точнее у юнита нет линка на объект ауры. у ауры конечно же есть. т.е. при создании ауры я кеширую все необходимые параметры для ее работы в данный экземпляр. кастер больше не нужен. у вас же получается, что на каждый периодик эффект ауры код лезет в объект кастера и берет у него текущие на данный момент данные. по моему это неправильно по трем причинам: 1. расчеты данной ауры ведуться от значений на момент наложения этой ауры. по крайней мере мне казалось это логичным и косьвенно подтверждалось данными из снифов. 2. ваш HLD приводит к колизиям, что собственно отражено в данном топике. 3. трудности доставки данных на распределенной/кластерной архитектуре. |
11.08.2011, 12:49 | #9 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
да кто бы блин спорил... в мангосе объект aura входит в ссылочный бокс-объект spellauraholder, а оба эти объекта (независимо!) прямо прилинкованы к цели и косвенно - к кастеру. конечно она не лезет на каждый периодикэффект (из-за п.1), но вот при наложении и снятии, прокам дополнительных эффектов, связанных аур - лезет. коллизий - ... (причем ауры - это еще не самый вредный источник коллизий в текущей архитектуре).
кластеризация мангоса вообще отдельная песня... в общем прототип выделенного БГ-реалма я сделал, но если кому покажу - уржетесь. самому смешно... |
Пользователь сказал cпасибо: | RomanRom2 (11.08.2011) |
11.08.2011, 18:22 | #10 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Цитата:
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
11.08.2011, 18:56 | #11 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
так часть крашей происходит (ну у меня уже -ла) именно из-за невозвращения юнита с другой карты... впрочем и это, и наоборот глобализация списка юнитов, и блокировки и (что я сейчас в основном делаю) кэширование структур - это все костыли разной степени кривости.
|
12.08.2011, 00:21 | #12 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
У аур всегда есть холдер _by design_. Ауры никак не могут создаться раньше холдера, следовательно он не может быть null. Если у вас не так - это не что иное, как про*б ваших кастомных пачтей на мультитрединг.
|
12.08.2011, 05:19 | #13 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
rsa прав в том что мы можем получить на _неправильном_ коде обращения к аурам проблему доступа к ауре на игроке находящимся на дуругой карте.
Решения проблемы я выше изложил - запретить доступ к кастеру ауры находящемуся на другой карте. Цитата:
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
12.08.2011, 10:55 | #14 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
PS дыра с _removeAttacker(this) при мультитрединге кстати гораздо существеннее и я пока не вижу варианта ее решить кроме полной смены дизайна... Добавлено через 2 минуты не такие уж они и кастомные, других вариантов все равно пока нету. ауры не могут создаваться раньше холдера, но вот холдер удаляться раньше аур - запросто. я вполне достаточно проковырялся с отладчиком чтобы это утверждать. |
|
Пользователь сказал cпасибо: | Ranger (22.08.2011) |
12.08.2011, 17:03 | #15 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Может вы просто приведете пример где кастер с другой карты в ауре нужен?
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
12.08.2011, 18:04 | #16 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
unstable affliction, immolate. вообще большинство спеллов, где основной эффект дот и дополнительный - по снятии.
PS залез в код чистого, сразу попались: fear, SW:P, freezing trap. можно и по остальным углам кода еще накопать, но эти прямо на поверхности... Последний раз редактировалось rsa; 12.08.2011 в 18:19. |
12.08.2011, 20:02 | #17 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Цитата:
Возможно требуется более ограниченое получение указателя на кастера по данному guid - получит ли игрок на другой карте экспу если дополнительный спел убьет от его дота?
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
12.08.2011, 22:18 | #18 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
по ограничению - это к игрокам вопрос, меня такие тонкости всегда в тупик ставили |
|
15.08.2011, 13:44 | #19 |
Новичок
Регистрация: 07.03.2010
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 3 сообщениях
|
Не уверен насчёт экспы, но честь дают. Даже если игрока пару раз ударил и портанулся в шторм, и игрок когда-то потом умирает - в чат придёт сообщение "получено очков чести 3 шт"
|