• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Мануал Любая версия ♦ Редактирование скиллов

Красная Королева

Путник
Модератор
Сообщения
468
Розыгрыши
0
Репутация
141
Реакции
29
Баллы
0
Часть 1Основы редактирования
В Данном гайде были использованны:
  • IDA PRO 6.0 + HEX RAYS Скачать
  • Конвертер skillstr от Рони.
  • 010 editor
Это первая вводная часть гайда по редактированию скиллов. Здесь я опишу общие принципы работы сIDA и HEX.
Начнем. Для начала с помощью конвертера Рони сделаем себе удобный файл, содержащий id скилла, название и остальные параметры. Для этого запустим skillstr2tab.exe из консоли с аргументом в виде пути к файлу skillstr
Во сконвертированном файле мы видем цифру и название скилла. Цифра - это его id в gs.
Начнем сразу с момента, когда вы скачали и установили IDA:
запускаете исполняемый файл -> new -> выбираете файл gs -> жмете ok, после чего придется подождать некоторое время, пока IDA будет загружать gs в свои базы.
После чего слева вы увидете названия функций в ядре. Можно воспользоваться поиском, кликнув 1 раз на любое значение и выбрав вверху Searh -> Search. Давайте попробуем, например, отредактировать скилл шамана
Дух мести: отражение
Смотрим в нашем файле:
Дух мести: отражение
Вбиваем в поиск по функциям Skill1102Stub и видим примерно следующее

Кликаем на выделенный участок 2 раза и видим примерно следующее

Это нужная нам функция в ассемблере, но нам удобнее будет читать в C/C++ поэтому жмем F5 видим следующий псевдокод

Тут видно, что дамаг считается по формуле
Код:Сила Духа0.230.1*Уровень скилла Стандартно не 0.23, а 0.5, но я изменил под себя, а чистого ядра под рукой небыло. В IDA можно только смотреть функцию - изменять нельзя. Чтобы изменить значение возвращаемся во вкладку IDA View
и находим там эти 2 значения (Значение операнда видно при наведении).

Жмем 2 раза на dbl_88F3500 и попадаем сюда


Тут мы видим адрес данной переменной.


В нашем Hex редакторе переходим по вышеописанному адресу, для этого жмем Ctrl+G и вводим 0x и адрес.


Попадаем сюда

Меняем значение, например, на 0.3 сохраняем. Готово.

Спойлер Спойлер Спойлер Спойлер Спойлер Спойлер
GetMpcost - требуемая мана
GetExecutetime - призывание или подготовка
GetCoolingtime - перезарядка
GetRequiredLevel - требуемый уровень для изучения скилла
GetRequiredSp - требуемый дух для изучения
GetRequiredMoney - Кол-во юаней
GetRequiredItem - требуемый предмет
GetRadius, getEffectDistance, GetPrayDistance - радиус и расстояние
StateAttack - основной эффект скилла
TakeEffect - основной эффект пассивного скилла
GetTime - время активации



Часть 2Основные параметры скилла


Спойлер Спойлер Спойлер Спойлер Спойлер Спойлер
1 - Атака
2 - Баф
3 - Дебаф
4 - Призыв
5 - Пассивка
6 - Стан (Нокаут)
7 - Полет
8 - Перемещение (телепорт)
9 - Шлифовка


С новым годом!





Часть 3Расчет дамага
В этой части гайда я хотел бы рассказать об особенности расчета дамага у некоторых скиллов. Ни для кого не секрет, что у скилла есть свои статы, но они не всегда расчитываются там, где я описывал в прошлых частях гайда. Начнем с момента, когда вы загрузили gs в IDA.Для примера мы рассмотрим скилл


var rm = "Читать дальше ..."; var o = "... Read Less"; var adjustheight = 20; // 20; // 508 Светлый Армагеддон


Как мы видим, в основной функции вызывается 3 стата

Код:GNET__Skill508Stub__State1__State1 GNET__Skill508Stub__State2__State2 GNET__Skill508Stub__State3__State3

За расчет дамага у этих статов у нас отвечает функция *::Calculate
Пробуем просмотреть эти функции для всех 3х статов:
Смотрим первую функцию

Код:GNET::Skill508Stub::State1::Calculate


Хм....В первой функции ничего, пробем вторую

Код:GNET::Skill508Stub::State2::Calculate


Да, вот наша формула расчета


Код:4*(ХП/2+ПМ/2)+5000
Можем менять значения как нам захочется




Армадон агрится на девушек 1




 
Последнее редактирование модератором: