|
Баг-репорты Описываем проблемы и ошибки работы ядра |
|
Опции темы | Поиск в этой теме | Опции просмотра |
06.12.2010, 22:44 | #1 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
player on mount use teleport
Есть вот такой маленький недочёт:
Если персонаж на маунте , то он не может использовать портал (городские и маговские порталы) а должен. Вот оно самое: Код:
if (m_caster->IsMounted() && m_caster->GetTypeId()==TYPEID_PLAYER && !m_IsTriggeredSpell && !IsPassiveSpell(m_spellInfo) && !(m_spellInfo->Attributes & SPELL_ATTR_CASTABLE_WHILE_MOUNTED)) { if (m_caster->IsTaxiFlying()) return SPELL_FAILED_NOT_ON_TAXI; else return SPELL_FAILED_NOT_MOUNTED; } А да, проверка была добавлена в 3089-й ревизии. |
07.12.2010, 03:38 | #2 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Код:
m_spellInfo->Attributes & SPELL_ATTR_CASTABLE_WHILE_MOUNTED
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
Пользователь сказал cпасибо: | Den (07.12.2010) |
07.12.2010, 13:00 | #3 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
А если сделать вот так ? (для примера порталы не все)
Код:
// not let players cast spells at mount (and let do it to creatures) if (m_caster->IsMounted() && m_caster->GetTypeId()==TYPEID_PLAYER && !m_IsTriggeredSpell && !IsPassiveSpell(m_spellInfo) && !(m_spellInfo->Attributes & SPELL_ATTR_CASTABLE_WHILE_MOUNTED) && // for players on mount use portal !(m_spellInfo->Id == 17609 || m_spellInfo->Id == 17610 || m_spellInfo->Id == 17611 || m_spellInfo->Id == 32270 || // Orgrimmar, Thunder Bluff, Undercity, Silvermoon City m_spellInfo->Id == 17607 || m_spellInfo->Id == 17608 || m_spellInfo->Id == 17334 || m_spellInfo->Id == 32268)) // Ironforge, Darnassus, Stormwind City, The Exodar { if (m_caster->IsTaxiFlying()) return SPELL_FAILED_NOT_ON_TAXI; else return SPELL_FAILED_NOT_MOUNTED; } |
07.12.2010, 14:08 | #4 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Лучший подход - посмотреть на используемый атрибут и может быть найти более адекватно подходящий под проверку - т.е имеющийся, и для тех случаев, когда надо, как и данный, но неимеющийся для неадеквтных случаев.
Возможно аттрибут подобран неудачно. Использовать списки спелов - это последнее что может быть рассмотрено как удачное решение. Когда тотально нет альтернатив.
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 07.12.2010 в 14:10. |
Пользователь сказал cпасибо: | Den (08.12.2010) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10839] At far teleport fail retunr player to source point instead homebind. | newsbot | CMaNGOS Commits | 0 | 08.12.2010 06:21 |
[10491] Search player in player list in update fields data prepare is bad idea. | newsbot | CMaNGOS Commits | 0 | 16.09.2010 22:10 |
Send SMSG_CORPSE_NOT_IN_INSTANCE if player in ghost form tries to enter an instance without player's | newsbot | CMaNGOS Commits | 0 | 27.05.2010 22:00 |
[9901] Implement 71342 mount selection | newsbot | CMaNGOS Commits | 0 | 15.05.2010 16:50 |
[9805] Fixed lost flight mount/form for GM in old contentes. | newsbot | CMaNGOS Commits | 0 | 29.04.2010 15:11 |