Форум HeroesWorld-а - Показать сообщение отдельно - [ВОПРОС] Реально ли сделать New Spells Framework?
Показать сообщение отдельно
#3
Старый 31.12.2024, 11:22
  #3
^
Waterfall_13
 
Аватар для Waterfall_13
📖
Регистрация: 31.03.2020
Адрес: Крым
Сообщения: 975
Waterfall#7225
Регистрация: 31.03.2020
Адрес: Крым
Сообщения: 975
Waterfall#7225
По умолчанию
Re: [ВОПРОС] Реально ли сделать New Spells Framework?

Короче я вчера узнал следующее:
Некто Deflaktor создал патчер, который вносит изменения в экзешник.



Потом Deflaktor и Magnomagus создавали какие-то вариации файлов yml которые вносят правки в определённые строчки с помощью патчера.
И по итогу Dredknight взял их наработки и дошлифовал их до того что мы имеем сегодня, YML файл для расширения существ, YML файл для расширения артефактов, YML файл для расширения классов героев.


YML файл для артефактов к примеру выглядит внутри вот так:

"Начало"
# ----------------------------------------------------
# --------------- Max Artifacts Count ----------------
# ----------------------------------------------------
#
# Changes the amount of available artifacts from 97 to &max_artifact_count
# Credit: Deflaktor
# ----------------------------------------------------
# -------------- Things you may want to modify -----------------
definitions: 
- &max_artifact_count            196
--- # --------------- ORIGINAL PATCH DATA ---------------
group: Original
checkAddress:   44BE7A
checkBytes:     E8 A1 50 BB FF
patchAddress:   44BE7F
originalBytes:  6A 61 8D 44 24 24     # push 61 & lea eax,[esp+24]
patchBytes:     E9 C0 38 BB FF 90     # jmp 00400344 & nop
---
group: Original
patchAddress:   344
originalBytes:  00
patchBytes:     68                             # push
---
group: Original
patchAddress:   345
originalBytes:  00*
valueType:      Integer
patchValue:     *max_artifact_count
---
group: Original
patchAddress:   349
originalBytes:  00*
patchBytes:     8D 44 24 24 E9 33 C7 44 00     # lea eax,[esp+24] & jmp 0093EDD5
---
group: Original
checkAddress:   446C95
checkBytes:     C3 CC CC CC CC CC CC CC CC CC CC B8
patchAddress:   446CA1
valueType:      Integer
originalValue:  97
patchValue:     *max_artifact_count
--- # --------------- QUANTOMAS 3.1j PATCH DATA ---------------
group: Quantomas3.1j
checkAddress:   0053E1CA
checkBytes:     E8 51 22 AC FF
patchAddress:   0053E1CF
originalBytes:  6A 61 8D 44 24 24     # push 61 & lea eax,[esp+24]
patchBytes:     E9 70 15 AC FF 90     # jmp 00400344 & nop
---
group: Quantomas3.1j
patchAddress:   344
originalBytes:  00
patchBytes:     68                             # push
---
group: Quantomas3.1j
patchAddress:   345
originalBytes:  00*
valueType:      Integer
patchValue:     *max_artifact_count
---
group: Quantomas3.1j
patchAddress:   349
originalBytes:  00*
patchBytes:     8D 44 24 24 E9 83 EA 53 00     # lea eax,[esp+24] & jmp 0093EDD5
---
group: Quantomas3.1j
checkAddress:   005393D5
checkBytes:     C3 CC CC CC CC CC CC CC CC CC CC B8
patchAddress:   005393E1
valueType:      Integer
originalValue:  97
patchValue:     *max_artifact_count
--- # --------------- MAP EDITOR EXE 3.1 PATCH DATA ---------------
group: MapEditorOriginal
checkAddress:   8C537A
checkBytes:     E8 E1 CF 73 FF
patchAddress:   8C537F
originalBytes:  6A 61 8D 44 24 24     # push 61 & lea eax,[esp+24]
patchBytes:     E9 C0 A3 73 FF 90     # jmp 00400344 & nop
---
group: MapEditorOriginal
patchAddress:   344
originalBytes:  00
patchBytes:     68                             # push
---
group: MapEditorOriginal
patchAddress:   345
originalBytes:  00*
valueType:      Integer
patchValue:     *max_artifact_count
---
group: MapEditorOriginal
patchAddress:   349
originalBytes:  00*
patchBytes:     8D 44 24 24 E9 33 5C 8C 00     # lea eax,[esp+24] & jmp 00CC5F85
---
group: MapEditorOriginal
checkAddress:   8C05C5
checkBytes:     C3 CC CC CC CC CC CC CC CC CC CC B8
patchAddress:   8C05D1
valueType:      Integer
originalValue:  97
patchValue:     *max_artifact_count


#
#
#
#QAI test patch changing int to double
#patchAddress:   0053E1CF  ## changing int to double
#originalBytes:  6A 7F 8D 44 24 24 50 8D 4C 24 1C 51 68 EC B5 FE 00 8B CE BB 03 00 00 00 E8 A4 EF FF FF EB 02 33 C0 8B C8 E8 69 A1 28 00 F6 C3 02 74 10 8B 54 24 14 52 83 E3 FD E8 27 DA AC FF 83 C4 04 F6 C3 01 74 0D 8B 44 24 20 50 E8 15 DA AC FF 83 C4 04 5F 5E 8B C5 5D 5B 83 C4 1C C3 CC CC CC CC CC CC CC CC
#patchBytes:     68 f4 01 00 00 8D 44 24 24 50 8D 4C 24 1C 51 68 EC B5 FE 00 8B CE BB 03 00 00 00 E8 A1 EF FF FF EB 02 33 C0 8B C8 E8 66 A1 28 00 F6 C3 02 74 10 8B 54 24 14 52 83 E3 FD E8 24 DA AC FF 83 C4 04 F6 C3 01 74 0D 8B 44 24 20 50 E8 12 DA AC FF 83 C4 04 5F 5E 8B C5 5D 5B 83 C4 1C C3 CC CC CC CC CC

## second change is required here at address 005393E1

## h5 ToE offsets are 44BE7F and 446CA1

## editor offsets are 8C537F and 8C05D1
"Конец"

Дредкнайт тоже сказал что заклы мало расширить нужно ещё им логику вписать. Я ему написал что можно же хотя бы ссылаться на готовый закл магии хаоса где логика уже есть, а внутри заклинание переписать на другую формулу урона и другой эффект и другое описание/название. Он написал что возможно сработает.
Будем надеяться у него что-нибудь получится 😇
 
Waterfall_13 вне форума
Ответить с цитированием