Camera Mod a linuxová verze NWN

Různé rady a řešené problémy a návrhy

Moderátoři: Dungeon Servant, World Builder, Dungeon Master

Odpovědět
Uživatelský avatar
Anade
Příspěvky: 947
Registrován: 20. 8. 2008 23.54
Bydliště: Pardubice

Camera Mod a linuxová verze NWN

Příspěvek od Anade »

Pro Camera Mod v Linuxu jsem nalezl jsem ve spolupráci s Romou adresy, kde modifikovat linuxovou binárku nwmain (verze 1.69).
Mé změny jsou následující:
Dohledová vzdálenost: −0,25 až 100,
maximální úhel otočení kamery od nadhlavní pozice: 200,
vzdálenost mlhy: 80

A slíbené adresy včetně výtahu hodnot z editoru (první řádek je původní, druhý modifikovaný:
Min distance offsets: 0x015ea62 and 0x015ed62
Max. distance offsets: 0x015ea6c and 0x015ed6c

Kód: Vybrat vše

015ea60: 6308 0000 803f c705 e418 6308 0000 c841  c.…?….c....A
015ea60: 6308 0000 80be c705 e418 6308 0000 c842  c.……..c....B
a

Kód: Vybrat vše

015ed60: 6308 0000 803f c705 e418 6308 0000 c841  c.…?….c....A
015ed60: 6308 0000 80be c705 e418 6308 0000 c842  c.……..c....B
Angle offsets: 0x015ea80 and 0x015ea80

Kód: Vybrat vše

015ea80: 0000 b242 d943 68d9 436c d9c9 dae9 dfe0  ...B.Ch.Cl.…..
015ea80: 0000 4843 d943 68d9 436c d9c9 dae9 dfe0  ..HC.Ch.Cl.…..
a

Kód: Vybrat vše

015ed80: 0000 b242 d943 68d9 436c d9c9 dae9 dfe0  ...B.Ch.Cl.…..
015ed80: 0000 4843 d943 68d9 436c d9c9 dae9 dfe0  ..HC.Ch.Cl.…..
FOG offset: 0x047f67b

Kód: Vybrat vše

047f670: 0000 0000 00c7 83c4 0100 0000 0034 42c7  ………….4B.
047f670: 0000 0000 00c7 83c4 0100 0000 00a0 42c7  …………..B.
P.S.: Editory pro editování hexadecimálně v Linuxu: khexedit, bless, hexer, vim+xxd
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
Uživatelský avatar
Anade
Příspěvky: 947
Registrován: 20. 8. 2008 23.54
Bydliště: Pardubice

Jak snadno v Linuxu opatchovat nwmain?

Příspěvek od Anade »

Takto lze vložit nové hodnoty na dané pozice:

Kód: Vybrat vše

NWMAIN="/path/to/nwmain"
printf "\x00\x00\x80\xbe" | dd of="$NWMAIN" seek=$(printf %lld 0x015ea62) bs=1 count=4 conv=notrunc
printf "\x00\x00\x80\xbe" | dd of="$NWMAIN" seek=$(printf %lld 0x015ed62) bs=1 count=4 conv=notrunc
printf "\x00\x00\xc8\x42" | dd of="$NWMAIN" seek=$(printf %lld 0x015ea6c) bs=1 count=4 conv=notrunc
printf "\x00\x00\xc8\x42" | dd of="$NWMAIN" seek=$(printf %lld 0x015ed6c) bs=1 count=4 conv=notrunc
printf "\x00\x00\x48\x43" | dd of="$NWMAIN" seek=$(printf %lld 0x015ea80) bs=1 count=4 conv=notrunc
printf "\x00\x00\x48\x43" | dd of="$NWMAIN" seek=$(printf %lld 0x015ed80) bs=1 count=4 conv=notrunc
printf "\x00\x00\xa0\x42" | dd of="$NWMAIN" seek=$(printf %lld 0x047f67b) bs=1 count=4 conv=notrunc
Obnovit původní hodnoty:

Kód: Vybrat vše

NWMAIN="/path/to/nwmain"
printf "\x00\x00\x80\x3f" | dd of="$NWMAIN" seek=$(printf %lld 0x015ea62) bs=1 count=4 conv=notrunc
printf "\x00\x00\x80\x3f" | dd of="$NWMAIN" seek=$(printf %lld 0x015ed62) bs=1 count=4 conv=notrunc
printf "\x00\x00\xc8\x41" | dd of="$NWMAIN" seek=$(printf %lld 0x015ea6c) bs=1 count=4 conv=notrunc
printf "\x00\x00\xc8\x41" | dd of="$NWMAIN" seek=$(printf %lld 0x015ed6c) bs=1 count=4 conv=notrunc
printf "\x00\x00\xb2\x42" | dd of="$NWMAIN" seek=$(printf %lld 0x015ea80) bs=1 count=4 conv=notrunc
printf "\x00\x00\xb2\x42" | dd of="$NWMAIN" seek=$(printf %lld 0x015ed80) bs=1 count=4 conv=notrunc
printf "\x00\x00\x34\x42" | dd of="$NWMAIN" seek=$(printf %lld 0x047f67b) bs=1 count=4 conv=notrunc
Hodnoty si můžete změnit dle libovůle.
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
Uživatelský avatar
Anade
Příspěvky: 947
Registrován: 20. 8. 2008 23.54
Bydliště: Pardubice

Patchovací skript pro Camera Mod v Linuxu

Příspěvek od Anade »

Patchovací skript pro Camera Mod v Linuxu jsem uložil na nwvault, stačí stáhnout, rozbalit a spustit.

Po spuštění bez parametrů:

Kód: Vybrat vše

bash nwn_camera_mod.sh
Se vypíše nápověda:

Kód: Vybrat vše

bash nwn_camera_mod.sh read /path/to/nwmain                # přečte hodnoty
bash nwn_camera_mod.sh patch /path/to/nwmain               # zapíše nové hodnoty
bash nwn_camera_mod.sh restore /path/to/nwmain             # obnoví původní hodnoty
P.S.: Skript vyžaduje příkazy bash, dd, sed a awk. Všechny jsou standardně v Linuxu nainstalovány.
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
Odpovědět