Aktualizacje
Pomoc

Tomb Raider
Tomb Raider II
Tomb Raider III
Tomb Raider - TLR
Tomb Raider - C

Dodatki
Room Editor
Edycja Leveli
Dziwne Screeny

Tomb Architekt
Nowości TR PL
Edycja skryptu

Każda z ostatnich części Tomb Raider ma swój skrypt do zarządzania częściowo grą i levelami. Co w takim skrypcie się znajduje? No przede wszystkim lista leveli z odpowiednimi parametrami. Poza tym jest też informacja o scence jaką widzimy w menu gry i nieco o jej ustawieniach. Zajmiemy się teraz edycją istniejącego skryptu dołączonego do TR - Level Editor. Najpierw wchodzimy do katalogu z edytorem, a później do katalogu \script. Tam jest plik script.txt. Otwieramy go w dowolnym edytorze tekstu (najlepiej jak to będzie Notatnik). Oto co widzimy na początku:
;**************************************
;
; Tomb Raider IV Script File
; Release Version 1.00
;
;**************************************
Jest to nic innego jak niewielka informacja na temat tego pliku. Następnie mamy:
;--------------------------------------
; Platform Definitions
;--------------------------------------

[PSXExtensions]
Level=	.PSX
Cut=	.CUT
FMV=	.FMV

[PCExtensions]
Level=	.TR4
Cut=	.TR4
FMV=	.BIK
Są to definicję plików, które gra używa na poszczególnych platformach. Następnie:
;--------------------------------------
; Language Filenames
;--------------------------------------

[Language]
File=	0,ENGLISH.TXT
File=	1,FRENCH.TXT
File=	2,GERMAN.TXT
File=	3,ITALIAN.TXT
File=	4,SPANISH.TXT
File=	5,US.TXT
File=	6,JAPAN.TXT
File=	7,DUTCH.TXT
To co tu widzimy to przyporządkowanie odpowiednich pakietów językowych. W dalszej części nauczymy się jak za ich pomocą zmienić nazwę levelu w menu. Dalsza część skryptu:
;--------------------------------------
; Options
;--------------------------------------

[Options]
LoadSave=		ENABLED
Title=		ENABLED
PlayAnyLevel=	ENABLED
InputTimeout=	18000	; frames * seconds = 60x30
FlyCheat=		ENABLED
Security=		$55
DemoDisc=		DISABLED
To opis kilku opcji gry i tak:
LoadSave - umożliwia włączenie (ENABLED) lub wyłączenie (DISABLED) możliwości zapisywania stanu gry.
Title - włączenie lub wyłączenie menu gry. W wypadku wyłączenia, po starcie gry ładuje się pierwszy level.
PlayAnyLevel - włącza lub wyłącza możliwość wyboru levelu jaką widzimy po naciśnięciu „New Game”. W wypadku wyłączenia, włącza się pierwszy zdefiniowany level.
FlyCheat - włącza / wyłącza możliwość używania kodu latania podczas gry (aby ów kod w grze aktywować, naciśnij razem klawisze DOZY).

Teraz o dalszej części skryptu:
;--------------------------------------
; Title
;--------------------------------------

[Title]
LoadCamera = 49231,-1445,40383,47042,-346,41382,28
		;src x,y,z target x,y,z, room
Level = DATA\TITLE,104
To jest opis scenki w tle oraz kamery ładowania.
LoadCamera - kamera ładowania levelu. O jej ustawianiu dowiesz się w dalszej części lekcji.
Level - jest to level, który z odpowiednio ustawionymi i zdefiniowanymi kamerami Flyby robi jako sekwencja filmowa w menu.

I w końcu definicje poszczególnych leveli:
;--------------------------------------
; Levels
;--------------------------------------

[Level]
Name = City Of The Dead
Horizon = ENABLED
Lightning = ENABLED
Layer1 = 0,0,160,32
Puzzle = 1,Nitrous Oxide Feeder,	$0004,$0300,$0000,$0000,$0000,$0002
Puzzle = 2,Car-Jack, 		$0000,$0400,$4000,$8000,$4000,$0002
Puzzle = 4,Roof Key, 		$0000,$0300,$4000,$d000,$b000,$0002
Puzzle = 5,Weapon Code Key,  	$0000,$0200,$8000,$c000,$0000,$0002
Puzzle = 8,Mine Detonator,	$0008,$0400,$8000,$0000,$0000,$2002
PuzzleCombo = 1,1,Valve Pipe,	$0004,$0300,$0000,$0000,$0000,$000a
PuzzleCombo = 1,2,Nitrous Oxide Cannister, $0002,$0300,$0000,$0000,$0000,$0002
PuzzleCombo = 2,1,Car-Jack Body,	$0000,$0400,$4000,$8000,$4000,$0002
PuzzleCombo = 2,2,Handle,  		$0000,$0300,$4000,$8000,$4000,$0002
PuzzleCombo = 8,1,Mine Detonator Body, $0008,$0400,$8000,$0000,$0000,$0002
PuzzleCombo = 8,2,Mine Position Data, $0004,$0280,$8000,$c000,$0000,$0002
Puzzle = 1,Nitrous Oxide Feeder,	$0004,$0300,$0000,$0000,$0000,$0002
LoadCamera = 40900,498,36177,42256,-666,37727,51
Level = DATA\CITY,102
To jest przykład levelu „City Of The Dead”. I tak:
Name - nazwa levelu wyświetlana w menu gry. Nie można jednak wpisać tu sobie dowolnego tekstu. Musi być on najpierw zadeklarowany w English.txt, ale o tym później.
Horizon - włącza (ENABLED) lub wyłącza (DISABLED) horyzont w danym levelu.
Lightning - włącza lub wyłącza błyskawice w czasie gry. Efekt dość ładny, nadaje levelowi nieco grozy.
Layer1 - konfiguracja nieba. Pierwsze trzy liczby oznaczają jego odcień w RGB, a czwarta szybkość.
LoadCamera - kamera podczas ładowania. Konfiguracja taka sama, jak w kamerze podczas ładowania levelu.
Level - jest to ścieżka do pliku levelu bez rozszerzenia i muzyka jaka ma być odtwarzana w tle z folderu \audio.
ColAddHorizon - włącza lub wyłącza zachodzenie nieba na horyzont.
YoungLara - włącza lub wyłącza młodą Larę w danym levelu. Radzę nie stosować ENABLED w levelu, gdzie nie ma młodej Lary, ponieważ podczas gry wychodzą cuda, a nie Lara Croft.
UVRotate - jako ENABLED dodaje efekt szybko płynącej wody (o ile takową w levelu wstawimy).
Legend - tekst wyświetlany na dole ekranu przy uruchomieniu levelu, musi być najpierw zdefiniowany w English.txt.
LensFlare - określa kamerę pokazywania się refleksji słonecznych.
Puzzle - określenie przedmiotu typu puzzle. Jest to definiowane w dość dziwny sposób. Jeżeli nasz level jest składanką różnych obiektów to należy skopiować odpowiednie definicje puzzle ze skryptu tych leveli skąd wzięliśmy przedmiot.
PuzzleCombo - jak wyżej tylko do obiektu puzzlecombo.
Key - jak wyżej do obiektu typu key.
Pickup - do obiektu typu pickup.
Mirror - definicja lustra w grze.



Dodawanie własnego levelu do skryptu

Powiedzmy, że mamy własny level ze swoim pakietem obiektów o nazwie odpowiednio level.tom, level.was, level.txt. Aby dodać nasz level do skryptu tworzymy mu najpierw definicję, czyli:
[Level]
Name=		Nasz pierwszy level
Horizon=		ENABLED
Layer1=		100,100,255,-8
LoadCamera=	40900,498,36177,42256,-666,37727,51
Level=		DATA\LEVEL,102
Jest to najprostsza definicja skryptu. Teraz trzeba ją odpowiednio upiększyć. Zaczynamy od zmodyfikowania pliku English.txt. Otwieramy ów plik i zmieniamy jedną z istniejących nazw leveli na własną: Nasz pierwszy level. Nie można dodać tego napisu tylko należy zastąpić inny. Po tej operacji zapisujemy plik.
Decydujemy się następnie czy chcemy mieć horyzont i uzupełniamy odpowiedni klucz wartości ENABLED (tak) lub DISABLED (nie).
Teraz pora ustawić kamerę ładowania. Włączamy nasz level i w czasie gry wciskamy F1. Zobaczymy w lewym górnym rogu definicję kamery na jaką nastawiona jest Lara, wybieramy ładne ujęcie i wpisujemy po przecinku wszystkie 7 wartości.
Teraz wchodzimy do folderu audio i wybieramy muzykę tła levelu. Po zdecydowaniu się na jakąś, zapamiętujemy jej numer i wpisujemy za nazwą levelu w parametrze Level.
Jeżeli chcemy dodać błyskawicę do levelu wstawimy parametr Lightning = ENABLED.
W taki sposób możemy dodawać kolejne wartości wymienione i opisane w powyższej części tego tekstu. Pamiętajmy też o dodaniu definicji, kluczy i innych obiektów tego typu. Jeżeli mimo to nie wiesz jak dodać własny level do skryptu to oprzyj się o dodane już levele, dzięki temu łatwiej pojmiesz cały ten precedens.



Kompilowanie skryptu

Jeżeli napisaliśmy już odpowiedni skrypt, dobrze byłoby go skompilować, aby gra mogła z niego skorzystać. W tym celu najlepiej będzie jak zrobicie sobie plik BAT, który skompiluje script.txt i english.txt za pomocą dostępnego kompilatora i podmieni odpowiednie pliki, aby gra mogła poprawnie funkcjonować. Oto co należy wkleić do pliku np. TRcom.bat (plik ten można utworzyć np. w Notatniku):
@echo off
cls
echo *** Kompilator skryptow do Tomb Raider : Level editor, ver 1.0 ***
echo.
pause
cls
echo Kompilowanie skryptu...
cd script
script.exe script.txt > nul
cd..
copy script\script.dat script.dat > nul
copy script\english.dat english.dat > nul
cls
echo Zakonczono kompilowanie.
echo.
pause
cls
Wprawdzie ten TR ma własny kompilator, ale o dziwo jest on tak napisany, że nie działa poprawnie. Nie wiem jak Core Design go używał, ale w każdym razie nie było to chyba łatwe. Powyższy plik BAT kopiujemy do katalogu głównego TR - Level Editor. Po tej operacji odpalamy go i odpowiednio klawiszem Enter zatwierdzamy kompilowanie skryptu. Jeżeli po skompilowaniu skryptu i uruchomieniu tomb4.exe pojawi się błąd typu „Program wykonał nieprawidłową operację...” dla Win9x/Me lub „Pamięć nie może być (read)...” dla Win2000 i NT to oznacza, że skrypt zawiera błąd.



Plik English.txt

Jak zauważyliście ten plik zawiera wszystkie teksty występujące w grze. Za jego pomocą można więc przetłumaczyć TR. Ale radzę uważać - nie jest to zadanie łatwe i każdy błąd może spowodować błąd w grze. Dla bezpieczeństwa, radzę zrobić sobie kopie oryginalnych plików script.txt i English.txt w folderze \script. W razie jakiejś awarii będzie to naszą deską ratunku. Oczywiście można też przeinstalować edytor, ale tak chyba będzie łatwiej.
 
Copyright © by TOMB RAIDER PL. All rights reserved.