avatar_Mr.Kernighan

Уникальный эффект дыма на вещах в MU Online: как его получить

Автор Mr.Kernighan, 2012 Авг. 04, 14:48

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlineэффект дымаигровой разработкиdark knight setvenom set

Mr.Kernighan



Как я и говорил, ничего сложного и сверх естественного, поэтому я думаю что это сможет сделать каждый.
Как я это все провернул? Ну начнем с того что мы уже знаем что такой эффект есть в игре при определенных условиях и на определенных вещах в полном комплекте. (Dark Knight Set, Venom Set) и т.д. Уровень заточки этих вещей должен быть не меньше 10 чтобы эффект был активным. С этим моментом я думаю мы определились, поэтому давайте попробуем найти одну из данных вещей. Но, есть одно но, для начала нам необходимо найти так называемый ItemId чтобы по формуле высчитать определенную вещь. (С данного ItemId начинается загрузка мечей). Открываем естественно OllyDbg и отлаживаем main.exe.

Анализ PE приложения завершен? Продолжим...

1) CTRL + G -> ставим адрес начала PE -> 00401000 -> Переходим по адресу
2) Нажимаем Right Click -> Search for -> All referenced text strings
3) Нажимаем Right Click -> Search for text -> (Устанавливаем галочку Entire scope и убираем с Case sensitive) и ищем текст по слову Sword.

Нашли? Жмем Enter...

0060FAE8  |> /8B45 E0      /MOV EAX,DWORD PTR SS:[EBP-20]
0060FAEB  |. |83C0 01      |ADD EAX,1
0060FAEE  |. |8945 E0      |MOV DWORD PTR SS:[EBP-20],EAX
0060FAF1  |> |837D E0 11    CMP DWORD PTR SS:[EBP-20],11
0060FAF5  |. |7D 25        |JGE SHORT main.0060FB1C
0060FAF7  |. |8B4D E0      |MOV ECX,DWORD PTR SS:[EBP-20]
0060FAFA  |. |83C1 01      |ADD ECX,1
0060FAFD  |. |51            |PUSH ECX                        ; /Arg4
0060FAFE  |. |68 58219200  |PUSH main.00922158        ; |Arg3 = 00922158 ASCII "Sword"
0060FB03  |. |68 60219200  |PUSH main.00922160        ; |Arg2 = 00922160 ASCII "DataItem"
0060FB08  |. |8B55 E0      |MOV EDX,DWORD PTR SS:[EBP-20]; |
0060FB0B  |. |81C2 47040000 |ADD EDX,447            ; |
0060FB11  |. |52            |PUSH EDX                        ; |Arg1
0060FB12  |. |E8 7CDBFFFF  |CALL main.0060D693        ; main.0060D693
0060FB17  |. |83C4 10      |ADD ESP,10
0060FB1A  |.^EB CC        JMP SHORT main.0060FAE8

Все что вам здесь нужно это записать число добавляемое в Edx -> Add Edx, 447.
Вообщем, теперь чтобы найти какую либо вещь используем следующую формулу.

*Не забываем что число 447 в шестнадцатеричном формате
(ItemType * 512 + ItemIndex) + ItemId
Вот теперь мы во все оружия и теперь мы можем найти все что угодно практически, что мы сейчас и сделаем.
Небольшая подсказка, искать мы будем по сапогам ибо ниже сапог находится код отвечающий за цвет дыма.
Сапоги находятся в 11-ой группе, и возьмем к примеру сапоги Dark Knight чей порядковый номер равен 29-и.
Вспоминаем формулу... (11 * 512 + 29) -> Переводим результат в 16-и ричную систему счисления и складываем с числом 447
Что получилось? Правильно -> 1A64 это число и будем искать.
Нажимаем Right Click -> Search for -> All constants -> Пишем 1A64 и нажимаем Ok. (Первое сравнение это то что вам нужно CMP EAX,1A64).
Ммм, вот они сапожки. И собственно вот он отрезок который разрешает активировать эффект дыма.

0052B0AE  |> 8B55 08      MOV EDX,DWORD PTR SS:[EBP+8]
0052B0B1      0FBF82 680100>MOVSX EAX,WORD PTR DS:[EDX+168]
0052B0B8      3D 641A0000  CMP EAX,1A64
0052B0BD      7C 12        JL SHORT main.0052B0D1
0052B0BF  |.  8B4D 08      MOV ECX,DWORD PTR SS:[EBP+8]
0052B0C2  |.  0FBF91 680100>MOVSX EDX,WORD PTR DS:[ECX+168]
0052B0C9      81FA 681A0000 CMP EDX,1A68
0052B0CF  |.  7E 16        JLE SHORT main.0052B0E7
0052B0D1  |>  8B45 08      MOV EAX,DWORD PTR SS:[EBP+8]
0052B0D4  |.  0FBF88 680100>MOVSX ECX,WORD PTR DS:[EAX+168]
0052B0DB      81F9 721A0000 CMP ECX,1A72
0052B0E1  |.  0F85 F9080000 JNZ main.0052B9E0

В моем исходники можно заметить что я затер проверку по адресу 0052B0DB (CMP ECX,1A72) и добавил в плюс свою проверку, вы можете сделать тоже самое или затереть выше, собственно как вашей душе угодно.
И буквально немного ниже можно заметить отрезок кода который отвечает за цвет дыма, значит что мы делаем?
Значит мы и сюда добавляем проверку на вещь для того чтобы иметь возможность перекрасить дым в другой цвет, ну и естественно подбираем цвет для дыма в RGB цветовой схеме.

0052B122      3D 641A0000  CMP EAX,1A64
0052B127  |.  75 27        JNZ SHORT main.0052B150
0052B129  |.  8B4D 0C      MOV ECX,DWORD PTR SS:[EBP+C]
0052B12C      C781 9C000000>MOV DWORD PTR DS:[ECX+9C],3F266666
0052B136  |.  8B55 0C      MOV EDX,DWORD PTR SS:[EBP+C]
0052B139      C782 A0000000>MOV DWORD PTR DS:[EDX+A0],3E99999A
0052B143  |.  8B45 0C      MOV EAX,DWORD PTR SS:[EBP+C]
0052B146  |.  C780 A4000000>MOV DWORD PTR DS:[EAX+A4],3DCCCCCD

Здесь можно сгенерировать цвет: https://www.rgbtool.com
Здесь можно перевести число с плавающей точкой в 16-и ричное число: https://gregstoll.dyndns.org/~gregstoll/floattohex/

А здесь сцуко можно скачать исходник.
https://rghost.ru/39585688 или https://yadi.sk/d/JRGamtGu3odM
Main версии 1.3.28.0 (Eng).
https://rghost.ru/39586123 или https://yadi.sk/d/aqvRSGYE3sMb

А здесь сцуко будут мои кредиты.
Mr.Kernighan

А здесь мои кошельки и тот кто считает что я заслужил на пиво, пожалуйста.  :rolleyes:  (blush)

ЦитироватьE417083873206
Z358891129286
R390578705930
U231714735964

madias

Всё очень красиво! Не отказался бы у себя такую плющку поставить =)
Очень понравился дым с феникс сетом.

napam

Клас, ему бы еще придать немного форму огня, слегка.

Profesor08

#3
он типа у всех шмоток есть? или для каждой надо еб*ться и дописывать?

Mr.Kernighan


NightWish

А гайд будет, как сделать такое чудо?=)

Profesor08

#6
Цитата: Mr.Kernighan от 2012 Авг. 04, 19:53  Для каждой дописывать нужно.
по шаблону, подставляя id шмотки?

Mr.Kernighan

Profesor08 Угумц.
state0ftrance Да, я скину код и небольшой тутор.

madias

Круто! Лучше когда самому выбирать. Можно цвет желаемы подобрать, а не ставить "как у всех".

Profesor08

Цитата: Mr.Kernighan от 2012 Авг. 04, 20:27  state0ftrance Да, я скину код и небольшой тутор.
лучше всяких туторов будет длл с файловым конфигом, куда пихаешь оффсет и парамерты для каждой шмотки.

Mr.Kernighan

Первый пост обновлен. ;)
Спойлер
25 букав
[свернуть]

NightWish

А можно узнать версию мейна, на котором всё это делалось?=)

Mr.Kernighan

Упс, забыл  Добавил ссылку в первый пост.

Killbrum

А разве дымку убрали? Я шибко не следил но раньше она была везде

NZK

не видел такого никогда, но красиво..
хороший релиз.

Profesor08

#15
Цитата: Killbrum от 2012 Авг. 05, 13:35  А разве дымку убрали? Я шибко не следил но раньше она была везде
есть просто свечение шмоток. ну типа когда загнал ее на 9 то вокруг перса еще такой небольшой оттенок свечения того цвета, что и сама шмотка. а дымка была только над топовым шмотом.

Вот нашел свою картинку. Как можешь заметить, то вокруг персов есть небольшое свечение. Ну чтоб ты понял о чем я.
Спойлер
## здесь был скриншот ##
[свернуть]

NZK

вобщем нашел Offset'ы, itemid со сворда - это всё написал в Effect.h
Скомпилил - а в игре дыма нет!

Куда ещё оффсеты писать ?....

Puer

Давно искал)Спасибо за тутор,будем пробовать)

LetsToPlay

#18
Цитата: NZK от 2014 Июль 06, 16:15  вобщем нашел Offset'ы, itemid со сворда - это всё написал в Effect.h
Скомпилил - а в игре дыма нет!

Куда ещё оффсеты писать ?....

Та же фигня. Main 1.03.16

Теперь и на DK дымки нет(

NZK

Цитата: LetsToPlay от 2014 Июль 07, 00:23  Та же фигня. Main 1.03.16

Теперь и на DK дымки нет(
да. так и есть на Дк нет дыма. main 1.04.10
не мешало бы автору написать что конкретно надо искать/менять.

Похожие темы (5)

Сообщений: 37
Просмотров: 22949

Сообщений: 127
Просмотров: 40430

Сообщений: 32
Просмотров: 13889