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

Статус
В этой теме нельзя размещать новые ответы.

Электрон

Большой Электрон
Пользователь
30 Мар 2012
504
230
79
27
Часть 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 и видим примерно следующее
c86db3520ef261c7580b7651a96d5311.png

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

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

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

Жмем 2 раза на dbl_88F3500 и попадаем сюда
67a05ecb56045777a4e66eee7987bb68.png


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


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


Попадаем сюда
df1a243293318caaa928ba6ffd03f7e5.jpg

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


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



Гайд не полный, вскоре будет пополнение
--- добавлено: 31 дек 2012 в 22:42 ---
С новым годом!


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

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

181f2d3055db8b2404127401059864be.png

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

Код:
GNET__Skill508Stub__State1__State1
GNET__Skill508Stub__State2__State2
GNET__Skill508Stub__State3__State3

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

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

95b8ec21d5aadb446b333a265a5cee20.png

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

Код:
GNET::Skill508Stub::State2::Calculate
d8a79b8a1ba1b04738a6a377bb579054.png


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


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


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

Вложения

  • Безимени-1.jpg
    Безимени-1.jpg
    900,3 KB · Просмотры: 275
Статус
В этой теме нельзя размещать новые ответы.

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.

Последние ресурсы

Статистика форума

Темы
3.838
Сообщения
21.202
Пользователи
7.645
Новый пользователь
igorbl