|
|
Модератор форума: Dimitro |
Форум TrinityCore Установка / Настройка TrinityCore разбор кода спеллов (разбор кода спеллов) |
разбор кода спеллов |
Скопипастено с мангос.ру
Перед Тем как мы начнем Обговорим особенности спелов (то что я заметил) Обычно сам спелл вызывает так называемые эффекты которые тоже могут вызывать другие эффекты тоесть при использовании 1 спелла мы на самом деле используем их несколько Как я понял у одного спелла может быть до 3 Эффектов (Но у каждого из этих трех эффектов может быть еще до 3 эффектов ) Очень хороший пример http://www.wowhead.com/?spell=55342 рассмотрим Spell Details Apply Aura: Mod Total Threat (Fade) -- Накладывает на игрока ауру Apply Aura: ?? (Aura #226) --Накладывает на игрока ауру Trigger Spell Mirror Image -- Вызывает Другой спелл http://www.wowhead.com/?spell=58832 который уже в свою очередь вызывает еще 3 спелла http://www.wowhead.com/?spell=58833 http://www.wowhead.com/?spell=58831 http://www.wowhead.com/?spell=58834 вот каждый из них вызывает по так называемой иллюзии Effect Summon (31216) Radius: 3 yards (это очень сложный спелл который пока не реализован из-за плохо реализованной системы суммонов) --------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------- Итак Начнем: Первое что нам понадобиться это программа от Chestr называться она spell_work скачиваем под нужную версию (3.0.8 подходит для 3.0.9) Дальше Определяемся Какой Спелл мы хотим Разобрать Узнаем его номер например на wowhead Сразу Уточню что не всегда просто найти в коде место где именно обрабатываться спелл Я попробую разобрать несколько спеллов 1)Возьмем Достаточно Сложный С виду Спелл Demonic Sacrifice (не удачный Пример но все же ) http://www.wowhead.com/?spell=18788 Я думаю по этой строчке очевидно что ид спелла 18788 Открываем Смотрим Снизу в описании (Spell Details) Effect- Instakill (Хм что же это значит ) Далее запускаем программу spell_work (уточню Программа должна находиться в папке с сервером ну или рядом с dbc файлами) в Option Подключаем его к вашей базе данных(вроде не обязательно) Номер Спелла (как узнать ? выделен выше красным) вставляем справа в программе в поле Search Нажимаем на кнопку Поиск Чуть ниже в табличке высвечивается найденный Спелл и в скобках его название (Уточнение:Если dbc файлы вынуты из русского клиента название не ВЫСВЕЧИВАЕТСЯ ) Клацаем в табличке на спелл Слева В большом пустом поле появляется информация (оговорю как найти в коде что либо. Открываем папку с исходниками нашм случаем надо искать в папке game нажимаем на этой папке Поиск. в Сточку Искать Текст вставляем то что нам надо найти в коде) Что мы Здесь видим SPELLFAMILY_GENERIC (Так называемое Семейство Спелла) описание в enum SpellFamilyNames в SpellMgr.h SPELL_SCHOOL_SHADOW (Тип Магии ) описание в enum SpellSchools в SharedDefines.h SPELL_DAMAGE_CLASS_NONE(Тип повреждения магии ) все что выше нас мало интересует идем дальше Target A (TARGET_PET) - цель на которую будет применяться заклинание Effect: (001) SPELL_EFFECT_INSTAKILL -еффект который будет наложен Топаем в поиск и ищем в исходниках(Game) SPELL_EFFECT_INSTAKILL (чуть выше было уточнено как это делать) У меня нашло три файла Creature.cpp SharedDefines.h SpellEffects.cpp Включаем Логику SPELL_EFFECT_INSTAKILL лезем в SpellEffects.cpp И производим по тексту Поиск слова INSTAKILL нашли ? О теперь видим // Demonic Sacrifice Что же тут написано? О как Сложно .да нет же все просто (подпишу комментарии что бы все поняли) Code // Demonic Sacrifice if(m_caster==unitTarget) // prevent interrupt message m_caster->DealDamage(unitTarget, unitTarget->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); вот еще мини разбор неправильно работающего спелла Code Code |
очень похожена некие недопереведённый копипаст, но всё равно +
2.4.3 Blizzlike Server by Evrial - Лучшая 2.4.3 сборка+исходник.
Рисуем итемы для 2.4.3 ГАЙД Создаём свой сервер WoW (подробно и доходчиво) Поистине ловок тот, кто умеет скрывать свою ловкость
Сообщение # 5 написано 15.01.2011 в 03:27
|
| |||
| |||