[PW] Гайды [GS] Редактирование скиллов

  • Автор темы Автор темы Andrey
  • Дата начала Дата начала

Andrey

Я админ,смекаешь?
Команда форума
Админ
Зануда
Проверенный
Местный
Гайд писал не я,автор темы Электрон.
Часть 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. Давайте попробуем, например, отредактировать скилл шамана.
Код:
Дух мести: отражение
Смотрим в нашем файле:
Код:
1102 Дух мести: отражение
Вбиваем в поиск по функциям Skill1102Stub и видим примерно следующее
1.png
Кликаем на выделенный участок 2 раза и видим примерно следующее
2.png
Это нужная нам функция в ассемблере, но нам удобнее будет читать в C/C++ поэтому жмем F5 видим следующий псевдокод
3.png
Тут видно, что дамаг считается по формуле
Код:
Сила Духа*0.23*0.1*Уровень скилла
Стандартно не 0.23, а 0.5, но я изменил под себя, а чистого ядра под рукой небыло. В IDA можно только смотреть функцию - изменять нельзя. Чтобы изменить значение возвращаемся во вкладку IDA View
и находим там эти 2 значения (Значение операнда видно при наведении).
4.png
Жмем 2 раза на dbl_88F3500 и попадаем сюда
5.png
Тут мы видим адрес данной переменной.
6.jpg
В нашем Hex редакторе переходим по вышеописанному адресу, для этого жмем Ctrl+G и вводим 0x и адрес.
7.jpg
Попадаем сюда
8.jpg
Меняем значение, например, на 0.3 сохраняем. Готово.


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



Часть 3
Расчет дамага

В этой части гайда я хотел бы рассказать об особенности расчета дамага у некоторых скиллов. Ни для кого не секрет, что у скилла есть свои статы, но они не всегда расчитываются там, где я описывал в прошлых частях гайда. Начнем с момента, когда вы загрузили gs в IDA. Для примера мы рассмотрим скилл.
Код:
508 Светлый Армагеддон
10.png
Код:
GNET__Skill508Stub__State1__State1
GNET__Skill508Stub__State2__State2
GNET__Skill508Stub__State3__State3
За расчет дамага у этих статов у нас отвечает функция *::Calculate
Пробуем просмотреть эти функции для всех 3х статов:
Смотрим первую функцию
Код:
GNET::Skill508Stub::State1::Calculate
11.png

Хм....В первой функции ничего, пробем вторую
Код:
GNET::Skill508Stub::State2::Calculate
12.png

Да, вот наша формула расчета
Код:
4*(ХП/2+ПМ/2)+5000
Можем менять значения как нам захочется
GetMpcost - требуемая мана
GetExecutetime - призывание или подготовка
GetCoolingtime - перезарядка
GetRequiredLevel - требуемый уровень для изучения скилла
GetRequiredSp - требуемый дух для изучения
GetRequiredMoney - Кол-во юаней
GetRequiredItem - требуемый предмет
GetRadius, getEffectDistance, GetPrayDistance - радиус и расстояние
StateAttack - основной эффект скилла
TakeEffect - основной эффект пассивного скилла
GetTime - время активации
1 - Атака
2 - Баф
3 - Дебаф
4 - Призыв
5 - Пассивка
6 - Стан (Нокаут)
7 - Полет
8 - Перемещение (телепорт)
9 - Шлифовка

Если помог жми "Мне нравится".
 

Вложения

Назад
Сверху