Soubory Script.dat a English.dat jsou jedny z nejdůležitějších souborů hry Tomb Raider 4. Tyto soubory obsahují informace o tom jak se bude hra chovat (jaké se budou načítat levely ,jak se budou načítat ,jaká se bude přehrávat hudba a tak dále). Zde popíšu co je obsahem jednotlivých souborů a jak je možno je editovat. Je důležité vědět že editovat budeme vždy soubor s příponou TXT a pro hru samotnou je nutno tento soubor zkompilovat pomocí programu SCRIPT.EXE na soubor s příponou DAT.
English.dat (English.txt) :
Tento soubor obsahuje kompletní texty ,které se ve hře vyskytují. Hra dokáže pracovat nejenom se souborem English.dat ,ale i s jinými soubory :
0 – English.dat
1 – French.dat
2 – German.dat
3 – Italian.dat
4 – Spanish.dat
5 – US.dat
6 – Japan.dat
7 – Dutch.dat
Toto je výčet všech souborů se kterými hra pracuje a jsou seřazeny podle priority načítání. Jak už bylo dříve uvedeno tyto soubory obsahují texty v daném jazyce. Pokud tedy chceme hru například přeložit do češtiny stačí pouze zeditovat soubor English.txt a poté zkompilovat do souboru English.dat. O kompilaci si povíme později. Script.dat (Script.txt) : Tento soubor je pro nás mnohem zajímavější protože se v něm nastavuje vše od spuštění hry, přes načítání levelů, až konečné titulky hry.
Soubor je rozdělen do několika částí. První pro nás zajímavou částí je OPTIONS.
;Options
;—————————
[Options]
LoadSave= ENABLED
Title= ENABLED
PlayAnyLevel= ENABLED
InputTimeout= 18000 ; frames * seconds = 60×30
FlyCheat= ENABLED
Security= $55
DemoDisc= DISABLED
LoadSave – Tato funkce zapne nebo vypne možnost ukládat a načítat hru.
Title – Tato funkce zapne nebo vypne úvodní animaci v menu hry. Pokud je Title vypnuto po spuštění hry se okamžitě načte první level. A protože nefunguje úvodní menu nejde hra ani korektně ukončit a musí se vypnout kombinací kláves ALT+F4.
PlayAnyLevel – Tato funkce zapne nebo vypne možnost vybrat level ručně. Pokud je PlayAnyLevel zapnut je možné po zadání New Game vybrat ze seznamu Level, který chceme hrát.
InputTimeout – Nevím co přesně znamená, ale nedoporučuji měnit jeho nastavení.
FlyCheat – Zapne nebo vypne kód pro létání. Pokud je FlyCheat zapnut napiš při hraní DOZY a Lara se vznese.
Security – Nevím co přesně znamená, ale nedoporučuji měnit jeho nastavení.
DemoDisc – Zapne nebo vypne Demo mód hry.
Část TITLE definuje načítání úvodní animace hry a doprovodné hudby.
; Title
;————————————–
[Title]
LoadCamera= 84246,-533,78233,81622,-1514,78208,40 ;src x,y,z target x,y,z, room
Level= DATA\TITLE,068
LoadCamera – Stanovuje jaký obrázek se zobrazí při načítání levelu. Sedm čísel která udávají pozici a úhel kamery zjistíme tak že spustíme level ze kterého chceme načítat obrázek, postavíme Laru tak aby měla přesný výhled na místo, které použijeme jako obrázek a stiskneme tlačítko F1. V levém horním rohu se mám zobrazí ono číslo které přepíšeme do Scriptu.
Level – Udává název levelu který se načte a spustí jako úvodní animace v menu hry. Za názvem je ještě třímístné číslo které označuje hudební track ve složce AUDIO, který se bude v menu přehrávat.
A nyní se dostáváme k nejdůležitější části Scriptu a tou je LEVELS. V tomto příkladu nejsou uvedeny všechny příkazy, ale ty doplním do vysvětlivek.
; Levels
;————————————–
[Level]
Name= Sakul House
Legend= Mastered By SAKUL
ColAddHorizon= ENABLED
Horizon= ENABLED
Lightning= DISABLED
Layer1= 95,128,56,7
LensFlare= 19849,-3958,13757,21403,-2887,13867,46
Puzzle= 5,Eye Of Horus, $0017,$0500,$0000,$0000,$0000,$0002
PuzzleCombo= 5,1,Eye Piece, $0017,$0500,$0000,$0000,$0000,$0002
Pickup= 1,Broken Beetle, $0008,$03b0,$0000,$e000,$0000,$000a
Key= 12,Klic k Zahrade, $0000,$0400,$0000,$c000,$0000,$0002
Key= 11,Karta ke Vchodu, $0008,$0300,$8000,$e000,$0000,$0002
Key= 1,Klic k Tajemstvi, $0000,$0400,$0000,$c000,$0000,$0002
Mirror= 69,$7400
LoadCamera= 32443,3641,16488,29611,3058,16677,44
Level= DATA\SakulHouse,103
Name – Udává název levelu který se bude zobrazovat v menu. Tento název musí být shodný s názvem levelu v souboru ENGLISH.TXT. (Pokud je to první level ve Script.txt musí být první i v English.txt , jinak nepůjde Script zkompilovat)
Legend – Zobrazuje nápis ve hře krátce po načtení levelu. (Zde platí to samé jako u Name ,že musí souhlasit název jak ve Script.txt tak ve English.txt včetně jeho pozice na správném řádku v English.txt.)
ColAddHorizon – Vypne nebo zapne nebe v levelu.
Horizon – Vypne nebo zapne Horizont.
Lightning – Vypne nebo zapne Efekt bouřky. (Blesky a hřmění)
Layer1 – Definuje barvu nebe a mraků. První tři trojčíslí určují barvu mraků v barvách RGB a poslední číslo rychlost plynutí mraků.
LensFlare – Určuje pozici slunce na nebi. Určení čísla pozice je obdobné jako LoadCamera.
Puzzle – Definuje jaké jsou v levelu použity Puzzle. (Toto není nezbytně nutné pro chod samotné hry, ale v inventáři by se nám nezobrazovaly popisy a názvy Puzzlů. To samé platí i pro Key a Pickup.) Takže si popíšeme jak to správně definovat. První za Puzzle následuje číslo (v našem případě je to 5), toto číslo definuje číslo samotného předmětu. Číslo předmětu zjistíme z jeho názvu v Editoru hry (příklad: Puzzle item 5 , Key item12 , Pickup item1). Za číslem předmětu následuje jeho název (5,Eye Of Horus , 12,Klic k Zahrade , 1,Broken Beetle) tento název musí být obsažen i v souboru English.txt (Stačí aby byl některý původní název nahrazen naším). A nakonec následuje šestice čísel, které definují natočení předmětu v inventáři hry. Zde nevím jak se přijde na konkrétní číselnou hodnotu, ale dá se to určit zkusmo překopírováním nějakého čísla z originál Scriptu.
PuzzleCombo – Je to vlastně to samé co Puzzle jen se skládá většinou ze dvou nebo více částí a proto obsahuje před názvem levelu dvě nebo více čísel.(Pro každou část Puzzle)
Key – Stejné jako Puzzle. Jen definuje klíče.
Mirror – Definuje pravděpodobně něco jako zrcadlovou stěnu. První číslo určuje asi číslo místnosti a to druhé zatím nevím.
LoadCamera – Je stejné jako v části TITLE s tím ,že definuje obrázek při ukončení levelu.
Level – Je stejné jako v části TITLE. Určuje jaký se bude načítat level a jaká hudba bude hrát na pozadí jako kulisa.
YoungLara – Definuje level s mladou Larou. Je nutné aby level obsahoval skin mladé Lary. Aktivuje se ENABLED nebo vypne DISABLED.
UVRotate – Údajně vytvoří efekt plynoucí vody v levelu. Aktivuje se ENABLED nebo vypne DISABLED.
Kompilace Souborů : Tak toto byl výčet obsahu souboru
Script.txt. Ale abychom mohli naše upravené soubory použít ve hře je nutno je zkompilovat do souborů English.dat a Script.dat. To můžeme udělat několika způsoby. Asi ten nejednoduší je použít již připravený soubor English Script.bat. Po spuštění tohoto souboru budou všechny „TXT“ soubory zkompilovány do souborů „DAT“. Mě se ovšem osvědčil pod Windows XP SP1 trochu jiný postup : Pravým tlačítkem myši klikneme na soubor Script.txt, vybereme volbu „Otevřít v programu“ a následně „Zvolit program…“. V dialogovém okně klikneme na tlačítko „Procházet…“, zadáme cestu k souboru „SCRIPT.EXE“. Je dobré si pohlídat aby nebyla navolena funkce „K otevření souborů tohoto typu vždy použít vybraný program“. A nyní již jen klikneme na tlačítko „OK“. Poté budou všechny „TXT“ soubory zkompilovány do souborů „DAT“. Při příštím spuštění už nám bude automaticky nabídnut soubor „SCRIPT.EXE“. A do třetice tu máme ještě jeden způsob. Protože originální „English Script .bat“ soubor je napsán poněkud podezřele napíšeme si vlastní :
@ECHO OFF
cls echo *** TR-4 Compiller :Level editor,ver 1.0 ***
echo.
pause
cls
echo Kompilace Scriptu …
script.exe script.txt > nul
cd..
copy script\script.dat script.dat > nul
copy script\english.dat english.dat > nul
cls
echo
Kompilovani Dokonceno.
echo.
pause
cls
Tento „BAT“ soubor musí být umístěn v adresáři „SCRIPT“ se všemi soubory „TXT“, “DAT“ a „EXE“. Tak to by bylo asi tak všechno ke tvorbě a editaci vlastních Script souborů, které jsou nutné k chodu hry potažmo k chodu našeho vlastního Levelu.
Informace zde uvedené byly čerpány z Polských stránek o hře Tomb Raider, a mých vlastních zkušeností. Informace zde uvedené nemusí být naprosto přesné a bezchybné. Části označené červeně nemusí být pravdivé ,jedná se pouze o moje domněnky. Pokud někdo víte přesně co znamenají a jak se v praxi použijí ,napište mi a já je do návodu doplním.