YTDB

YTDB (http://ytdb.ru/index.php)
-   Патчи (http://ytdb.ru/forumdisplay.php?f=26)
-   -   [patch] EffectOpenLock + иммунитеты (http://ytdb.ru/showthread.php?t=1477)

`win 17.12.2009 09:51

[patch] EffectOpenLock + иммунитеты
 
Суть патча - если игрок имеет эффекты тотал иммунитета, он не может использовать спеллы с эффектом 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/5d6a429cf96b485a...7a0dc6a58c.jpg
Тогда же и опубликую на getmangos.


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

YTDB - MaNGOS DataBase