Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Баг-репорты

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

Баг-репорты Описываем проблемы и ошибки работы ядра

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2010, 14:04   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию [bug+fix] Use pvp trinket in process player logout

Вообщем такой незначительный и совсем не серьёзный баг (наверное) :
Нажимаем логаут и если персонаж имеет пвп триню (и она на нём одета) http://www.wowhead.com/spell=42292#used-by-item:0-2+1 ( или http://www.wowhead.com/spell=59752 ) нажимаем использовать и персонаж её использует и встаёт ,а логаут то продолжает идти , а персонаж то наш стоит. И вот решил попробывать исправить , вроде бы показалось не так уж сложно... На офе во время логаута если заюзать триню или тот рассовый спелл то пишет "Выполняется другое действие" .

Пробуем запихнуть это дело в Spell::CheckCast

Код:
if (((Player*)m_caster)->GetSession()->isLogingOut())
{
    if (!(m_spellInfo->Attributes & SPELL_ATTR_EX_DISPEL_AURAS_ON_IMMUNITY)) 
        return SPELL_FAILED_SPELL_IN_PROGRESS;
}
ухты! работает - но не совсем как надо , юзать уже нельзя - но при попытке заюзать - персонаж встаёт с места , при ещё одном нажатии он пытается кастануть (визуально).

дальше пробуем вот так:

Код:
if (((Player*)m_caster)->GetSession()->isLogingOut())
{
    if (!(m_spellInfo->Attributes & SPELL_ATTR_EX_DISPEL_AURAS_ON_IMMUNITY))
        m_caster->SetStandState(UNIT_STAND_STATE_SIT);	
        return SPELL_FAILED_SPELL_IN_PROGRESS;
}
Ну вот уже лучше - при попытке юзанья , персонаж уже не встаёт , но вот беда он всё равно пытается кастить ( визуальный эффект )

Быть может не тут надо это дело исправлять ?
Праильно ли выбран путь для исправления этого бага ?
А может всё это полный бред ?
Den вне форума   Ответить с цитированием
Старый 17.11.2010, 14:19   #2
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

имхо стоит рассмотреть это
Код:
void Spell::prepare(SpellCastTargets const* targets, Aura* triggeredByAura)
{
.....................................................................................................

    //Prevent casting at cast another spell (ServerSide check)
    if(m_caster->IsNonMeleeSpellCasted(false, true, true) && m_cast_count)
    {
        SendCastResult(SPELL_FAILED_SPELL_IN_PROGRESS);
        finish(false);
        return;
    }
добавить доп. условие для логаута, ну или отдельно сделать, чуть ниже

Насчет верности не знаю, возможно действительно анимация происходит раньше, чем выполняется предложенная проверка в 1 посте, а возможно проблема, описанная в посткриптуме, или мб что-то еще

PS : когда используется после if более одной строки, надо делать через скобки, т.к if без скобок считает только последующий оператор, а не всю группу
Вот
Код:
if (((Player*)m_caster)->GetSession()->isLogingOut())
{
    if (!(m_spellInfo->Attributes & SPELL_ATTR_EX_DISPEL_AURAS_ON_IMMUNITY))
    {
        m_caster->SetStandState(UNIT_STAND_STATE_SIT);	
        return SPELL_FAILED_SPELL_IN_PROGRESS;
    }
}

Последний раз редактировалось MaS0n; 17.11.2010 в 14:23.
MaS0n вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Den (17.11.2010)
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10744] Prevent equip/unequip items in process logout newsbot CMaNGOS Commits 0 19.11.2010 05:49
[10744][fix] prevent equip and unequip item in process logout Den Принятые патчи 7 19.11.2010 05:24
[10326] Process GAMEOBJECT_TYPE_FISHINGHOLE in normal way as for other GO's newsbot CMaNGOS Commits 0 06.08.2010 16:40
[10325] Improve process for Use() of GAMEOBJECT_TYPE_SUMMONING_RITUAL newsbot CMaNGOS Commits 0 06.08.2010 15:40
[9793] Add 'Logout Player' output to the Char.log newsbot CMaNGOS Commits 0 25.04.2010 19:40


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


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