Короче я вчера узнал следующее:
Некто 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
"Конец"Дредкнайт тоже сказал что заклы мало расширить нужно ещё им логику вписать. Я ему написал что можно же хотя бы ссылаться на готовый закл магии хаоса где логика уже есть, а внутри заклинание переписать на другую формулу урона и другой эффект и другое описание/название. Он написал что возможно сработает.
Будем надеяться у него что-нибудь получится 😇