PDA

Просмотр полной версии : [patch] EffectOpenLock + иммунитеты


`win
17.12.2009, 09:51
Суть патча - если игрок имеет эффекты тотал иммунитета, он не может использовать спеллы с эффектом OpenLock (это эффект открытия руды, травы, открытие сундуков, захвата флага на БГ) и реализует оффлайк сообщение "вы сейчас не можете сделать это". Проверка на полный иммунитет выполняет на основе IsTotalImunne, которую я писал когда то для БГ

Поидее, можно убрать проверку на иммуны из Player::CanUseBattleGroundObject, если она будет выполняться из CheckCast.

================================================== =================
--- Spell.cpp (revision 859)
+++ Spell.cpp (working copy)
@@ -4108,6 +4108,15 @@
return SPELL_FAILED_MOVING;
}

+ // check for Effect::OpenLock
+ if( m_caster->GetTypeId()==TYPEID_PLAYER && ((Player*)m_caster)->isTotalImmune())
+ if (m_spellInfo->Effect[0] == SPELL_EFFECT_OPEN_LOCK)
+ {
+ return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
+ }
+
if(Unit *target = m_targets.getUnitTarget())
{
// target state requirements (not allowed state), apply to self also


Автор - я

`win
17.12.2009, 15:31
чёто изменилось на оффе.... и у нас в SharedDefines.h не хватает энумов.... Вечером или утром займусь разведкой и скорретирую сообщение. Работает оффлайк, но пока сообщение устарело. ВОт как должно быть:
http://filebeam.com/5d6a429cf96b485acafb9b7a0dc6a58c.jpg
Тогда же и опубликую на getmangos.