Показать сообщение отдельно
Старый 23.03.2010, 15:13   #1
zhenya
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
zhenya Скоро придёт к известности
По умолчанию [patch] Enchantments reqs

В общем в некоторых профессиях есть вещи, которые можно наложить на итем и получать бонусы, а потом просто отменить профессию и иметь бонус от этих вещей
Код:
void WorldSession::HandleUnlearnSkillOpcode(WorldPacket & recv_data)
{
    uint32 skill_id;
    recv_data >> skill_id;
    GetPlayer()->SetSkill(skill_id, 0, 0);
}
далее
Код:
...
            // clear skill fields
            SetUInt32Value(PLAYER_SKILL_INDEX(itr->second.pos),0);
            SetUInt32Value(PLAYER_SKILL_VALUE_INDEX(itr->second.pos),0);
            SetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos),0);

            // mark as deleted or simply remove from map if not saved yet
            if(itr->second.uState != SKILL_NEW)
                itr->second.uState = SKILL_DELETED;
            else
                mSkillStatus.erase(itr);

            // remove all spells that related to this skill
            for (uint32 j=0; j<sSkillLineAbilityStore.GetNumRows(); ++j)
                if(SkillLineAbilityEntry const *pAbility = sSkillLineAbilityStore.LookupEntry(j))
                    if (pAbility->skillId==id)
                        removeSpell(sSpellMgr.GetFirstSpellInChain(pAbility->spellId));
...
считаю что необходимо при удалении профы делать
Код:
_RemoveAllItemMods();
_ApplyAllItemMods();
+ считаю необходимым сделать обработку
Код:
struct SpellItemEnchantmentEntry
{
.....
    //uint32      requiredSkill;                       // 35       m_requiredSkillID
    //uint32      requiredSkillValue;                // 36       m_requiredSkillRank
....
};
также сделал чтобы энчанты требовали Skill и Value и Level персонажа.
также добавил sSkillLineAbilityStore с ключем skill_id для более удобного доступа к скилам вместо просмотра всего дбц.
Вложения
Тип файла: patch ech.patch (12.6 Кб, 27 просмотров)

Последний раз редактировалось zhenya; 23.03.2010 в 15:30.
zhenya вне форума   Ответить с цитированием
8 пользователя(ей) сказали cпасибо:
ANTOMA (25.03.2010), CruncH (23.03.2010), Den (23.03.2010), PSZ (23.03.2010), unlucky (23.03.2010), zergtmn (23.03.2010), Кот ДаWINчи (23.03.2010)