Ru-MaNGOS

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

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

Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.

Если кто-то хочет задать вопрос по патчу - велкам.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.03.2011, 01:12   #1
Vinolentus
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
Vinolentus На верном пути
По умолчанию Дуэли

https://gist.github.com/875295 - использовал для сброса холдеров

https://gist.github.com/875296
а) игроки должны быть в бою на протяжении всей дуэли. Рестелс&еда отправляются далеко и надолго xD
б) игрок не должен быть добит тикающей аурой, которую повесил контролируемый оппонентом юнит
в) игрок не должен быть добит тикающей аурой, которую оппонент срефлектил на игрока. Кстати, я не уверен, что тут мы уберем _все_ возможные. Но так лучше, чем никак )
Vinolentus вне форума   Ответить с цитированием
Старый 18.03.2011, 10:42   #2
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Лямбда-функции не поддерживаются в VC++ 2005, 2008.
Код:
if (!duel->opponent)
{
    MANGOS_ASSERT(duel->opponent);
    return;
}
Как-то странно выглядит этот фрагмент. Ассерт подразумевает немедленное завершение работы программы, если проверяемое условие не выполнено. Следовательно if и return тут совсем не нужны.

Последний раз редактировалось zergtmn; 18.03.2011 в 11:15.
zergtmn вне форума   Ответить с цитированием
Старый 18.03.2011, 12:16   #3
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от zergtmn Посмотреть сообщение
Код:
if (!duel->opponent)
{
    MANGOS_ASSERT(duel->opponent);
    return;
}
Как-то странно выглядит этот фрагмент. Ассерт подразумевает немедленное завершение работы программы, если проверяемое условие не выполнено. Следовательно if и return тут совсем не нужны.
это не совсем так. сейчас при сборке с cmake по умолчанию ассерт только плюется в лог и никакого завершения нет (-DNDEBUG).
rsa вне форума   Ответить с цитированием
Старый 18.03.2011, 12:16   #4
Vinolentus
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
Vinolentus На верном пути
По умолчанию

Цитата:
Ассерт подразумевает немедленное завершение работы программы
Если компилировали без NDEBUG

Последний раз редактировалось Vinolentus; 18.03.2011 в 12:24.
Vinolentus вне форума   Ответить с цитированием
Старый 18.03.2011, 14:41   #5
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

В любом случае, так городить не нужно.
Код:
MANGOS_ASSERT(duel->opponent);
и все.
zergtmn вне форума   Ответить с цитированием
Старый 18.03.2011, 16:34   #6
Vinolentus
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
Vinolentus На верном пути
По умолчанию

В этом конкретном случае ассерт вообще не нужен. Я поставил просто потому, что в коде функции дальше было что-то типа
Код:
if (duel->opponent)
    duel->opponent-DoSomething();
, хотя тут в принципе не может быть (duel && !duel->opponent)
А в общем... Игроки бегают на сборке с NDEBUG-оптимизацией-разворотом инлайнов, ее дебажить мало удовольствия. MANGOS_ASSERT распечатает stack trace с условием, процесс-то не положит. Давать им падать дальше на неверном указателе/чем-то еще смысла не вижу, если мы можем этого избежать - проблема крашем сервера не решится же %)
А для того, чтобы потом найти причину, обычно только стак трэйса хватает.
Vinolentus вне форума   Ответить с цитированием
Старый 18.04.2011, 11:31   #7
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
игроки должны быть в бою на протяжении всей дуэли. Рестелс&еда отправляются далеко и надолго xD
Бред, роги в дуэлях свободно рестелсят, даже под дотами варов. Насколько я понял, эта инфа взята из патча 1.х.х, этому вряд ли можно верить.
Amaru вне форума   Ответить с цитированием
Старый 20.04.2011, 09:09   #8
Madmunus
Это просто он
 
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
Madmunus На верном пути
По умолчанию

Цитата:
Сообщение от Amaru Посмотреть сообщение
Бред, роги в дуэлях свободно рестелсят, даже под дотами варов. Насколько я понял, эта инфа взята из патча 1.х.х, этому вряд ли можно верить.
Роги рестельсят ванишем, а не обычной абилкой...
Madmunus вне форума   Ответить с цитированием
Старый 20.04.2011, 10:43   #9
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Madmunus Посмотреть сообщение
Роги рестельсят ванишем, а не обычной абилкой...
ваниш не сбрасывает доты
Йоха вне форума   Ответить с цитированием
Старый 20.04.2011, 14:02   #10
Deamon
WowCore Dev
 
Регистрация: 11.03.2010
Сообщений: 112
Сказал(а) спасибо: 10
Поблагодарили 51 раз(а) в 25 сообщениях
Deamon Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
ваниш не сбрасывает доты
http://www.wowhead.com/spell=1856
For the first 3 sec after vanishing, damage and harmful effects received will not break stealth

При чем тут ваниш и доты?
Deamon вне форума   Ответить с цитированием
Старый 20.04.2011, 16:57   #11
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

а при чем тут вообще ваниш ?
Йоха вне форума   Ответить с цитированием
Старый 20.04.2011, 17:36   #12
Madmunus
Это просто он
 
Регистрация: 12.02.2010
Сообщений: 22
Сказал(а) спасибо: 6
Поблагодарили 27 раз(а) в 13 сообщениях
Madmunus На верном пути
По умолчанию

боже ты мой, я цитировал рестелс в бою, а не доты, че не понятного-то?
Madmunus вне форума   Ответить с цитированием
Старый 20.04.2011, 17:39   #13
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

там чуть выше написано было :
Цитата:
Бред, роги в дуэлях свободно рестелсят, даже под дотами варов.
Речь и шла об этом, а обычной абилкой нельзя воспользоваться в комбате, не только при бое с варом, а с кем бы там ни было.
Это настолько очевидно что мне не пришло в голову что это можно обсуждать
Йоха вне форума   Ответить с цитированием
Ответ


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

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



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


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