[Mod] Spiel: KingdomComeDeliverance (RE) 1.9.2

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

[Mod] Spiel: KingdomComeDeliverance (RE) 1.9.2

Beitrag von Mijikai »

Ich hab mir kürzlich das Spiel Kingdom Come Deliverance (RE)
gekauft, ist ganz ok ist.

Leider habe ich nicht viel Zeit um das Spiel zu spielen.
Deshalb habe ich mir eine 'Mod' geschrieben die es mir erlaubt
viele langweilige und zeitraubende Dinge zu überspringen.

Eventuell hat ja jemand Interesse daran :)

Ursprünglich wollte ich mein Programm hochladen,
da aber (fast) alle AV Programme nichts taugen und Billionen von Viren melden
und ich zu faul bin nochmal 10 min zu investieren um das zu umgehen
will ich zumindest alle wichtigen Informationen teilen.

Es gibt 2 wichtige Strukturen im Spiel die fast alle Charaktereigenschaften verwalten.
Eine der Strukturen (MOD_1_STRUCT) enthält noch Hashes oder Flags (war zu faul um das genauer zu Untersuchen).

Die Strukturen Befinden sich:

Code: Alles auswählen

;x64 (8 Bytes)
Base: -> Lese(Image "WHGame.DLL" + $02E36138)
EntityList (wahrscheinlich): -> Lese(Base + $1D8)
Strukturen:

Code: Alles auswählen

Structure MOD_1_STRUCT;EntityList + Offset $4B0
  strength.l[2] ;10 - 20 ?
  agility.l[2]  ;10 - 20 ?
  vitality.l[2] ;10 - 20 ?
  talking.l[2]  ;10 - 20 ?
  ;(first entry could be some hash or flags / second entry = actual value!)
EndStructure

Structure MOD_2_STRUCT;EntityList + Offset $504
  health.f  ;100 - 200
  stamina.f ;100 - 200
  energy.f  ;100
  food.f    ;100
  ;(max values may change with the game progression)
EndStructure
Wie verwenden?
- Beide Strukturen anlegen und die gewünschten Werte eintragen
- Sobald das Spiel läuft (Spieler im Spiel) die Strukturen im Spiel (konstant) überschreiben

Beispiel für Werte:

Code: Alles auswählen

mod1\strength[0] = $00000000;hash? (probably can be $0)
mod1\strength[1] = 100
mod1\agility[0] = $00003D52;hash? (probably can be $0)
mod1\agility[1] = 100
mod1\vitality[0] = $0000CAC3;hash? (probably can be $0)
mod1\vitality[1] = 100
mod1\talking[0] = $00001580;hash? (probably can be $0)
mod1\talking[1] = 100

mod2\health = 100
mod2\stamina = 200
mod2\energy = 100
mod2\food = 100
Ich weiß das es bessere und saubere Methoden gibt aber
ich wollte keinen Code manipulieren.

Viel Spaß :)