Тема: SpellStack rules
Показать сообщение отдельно
Старый 29.10.2010, 18:43   #1
selector
Пользователь
 
Аватар для selector
 
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
selector На верном пути
По умолчанию SpellStack rules

Доброе времени суток RMDC.

Не знал где создать тему и решил в разделе для новичков. Необходима помощь(возможно после решения проблемы будет и коммит в мангосе). Имеются спелы http://thottbot.com/?e=Apply%20Aura%...%20Power%20%25 на оффе они не стакаются. Просмотрев каждый спелл через spellwork обратил внимание на схожие Атрибуты у них, а именно
Код:
AttributesExG: 0x10000000 (SPELL_ATTR_EXG_UNK28)
Создавать в SpellMrg правило только по данным не корректно, т.к. имеется еще много спелов/аур подобными атрибутами.

В спелах есть параметры:
Код:
Aura Id 167 (SPELL_AURA_MOD_RANGED_ATTACK_POWER_PCT),
и
Код:
Aura Id 166 (SPELL_AURA_MOD_ATTACK_POWER_PCT),
Но у них разные EFFECT_INDEX и создать правило по данному тоже не представляется возможным(мне лично)...


Есть вариант создания самого правила по атрибутам и вписать в SpellMgr::IsNoStackSpellDueToSpell по SpellIconID
Код:
    if (spellInfo_1->AttributesExG & SPELL_ATTR_EXG_UNK28 && spellInfo_2->AttributesExG & SPELL_ATTR_EXG_UNK28)
    {
        // Высвобожденная ярость & Сила поганища 
        if( spellInfo_1->SpellIconID == 2729 && spellInfo_2->SpellIconID == 2021 ||
            spellInfo_2->SpellIconID == 2021 && spellInfo_1->SpellIconID == 2729 )
            return true;
            
        //  Аура меткого выстрела & Сила поганища 
        if( spellInfo_1->SpellIconID == 128 && spellInfo_2->SpellIconID == 2021 ||
            spellInfo_2->SpellIconID == 2021 && spellInfo_1->SpellIconID == 128 )
            return true;
        
        //  Аура меткого выстрела & Высвобожденная ярость 
        if( spellInfo_1->SpellIconID == 128 && spellInfo_2->SpellIconID == 2729 ||
            spellInfo_2->SpellIconID == 2729 && spellInfo_1->SpellIconID == 128 )
            return true;

    }
но не считаю, что это правильный вариант. Также необходимо учитывать, что у 2 из спелов-аур есть еще по одному EFFECT_INDEX которые дают "бонусы" владельцу.

У Высвобожденная ярость
Код:
Effect 0: Id 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = 9
Targets (1, 0) (TARGET_SELF, NO_TARGET)
Aura Id 240 (SPELL_AURA_MOD_EXPERTISE)
У Сила поганища
Код:
Effect 1: Id 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = 2
Targets (1, 0) (TARGET_SELF, NO_TARGET)
Aura Id 137 (SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE),
Их необходимо "сохранить".

Надеюсь на вашу помочь... Ах да чуть не забыл:
Core: 10654 (not clean)
DB: YTDB 569
SD: ......

Последний раз редактировалось selector; 29.10.2010 в 18:45.
selector вне форума   Ответить с цитированием