Pl/Gameinfo.txt

Game Definition Files
 
Plik GameInfo.txt jest potrzebny narzędziom SDK i samemu silnikowi Source by wskazać co jest potrzebne poszczególnym MODom. Wskazuje które dane narzędia i silnik mają załadować. Czy dane Half-Life 2, Couter-Strike, czy też Half-Life 2: Deathmatch. Wskazuje także twój katalog z grą.
==Podstawowe użytkowanie GameInfo.txt==
Główną rzeczą mającą związek z GameInfo.txt jest zmienna SteamAppId. Jeśli otworzysz GameInfo.txt to zobaczysz sekcję, która wygląda mniej więcej tak:
SteamAppId 220 // This will mount all the GCFs we need (240=CS:S, 220=HL2).
Wartość SteamAppId określa rodzaj użytych danych (z plików .GCF Stem'a), który jest dostępny dla tej gry dla tego GameInfo.txt.
Wartościami SteamAppId są:
Half-Life 2 	220
Counter-Strike: Source 	240
Half-Life 2: Deathmatch	320
==Zaawansowane tematy GameInfo.txt==
Ta część opisuje różne składniki GameInfo.txt trochę dokładniej.
==ToolsAppId==
Każdy plik GameInfo.txt powinien zawierać taką linię:
ToolsAppId 211
Jest to specjalny wartość, dzięki której narzędzia mogą załadować specjalną zawartość, która jest używana przez narzędzia, a nie jest przez gry.
==SearchPaths==
Dział SearchPaths pliku GameInfo.txt opisuje gdzie dane mają się znajdować, niezależnie czy na dysku twardym, czy w środku plików Steam'a. Żeby zrozumieć tą część, musimy pokazać w jaki sposób programiści używający silnika Source korzystają z plików gry. Wszystkie pliki, z których korzystają muszą istnieć w path ID. ID Ścieżki (Path ID) opisuje jedną lub wiele miejsc na twoim dysku lub w środku wirtualnego systemu plików Steam'a.
Na przykład do większości danych twojego moda, takich jak skrypty, dźwięki, modele i materiały, ma się dostęp w sekcji "Game". Programista może powiedzieć: "otwórz plik nazywający się scripts\weapon_m4a1.txt, który znajduje się w folderze o nazwie 'Game'". Jeśli uruchamiasz mod z C:\MyMod\Blasters i używasz SteamAppId 240, który wskazuje załadować dane Counter-Strike: Source, mógłbyś szukać w tych miejscach:
* C:\MyMod\Blasters\scripts\weapon_m4a1.txt
* <Katalog instalacji Steam'a>\Steam\SteamApps\username\Counter-Strike Source\cstrike\scripts\weapon_m4a1.txt
* <w środku wirtualnego katalogu Steama>\cstrike\scripts\weapon_m4a1.txt
Używanie ID Ścieżki do określania gdzie pliki się znajduą, oszczędza programistom i artystom zmartiweń na temat różnych katalogów z danymi. Mogą oni używać nazw odpowiednich do katalgu gry (jak scripts\weapon_m4a1.txt lub materials\brick\brickwall001a.vmt) i silnik i narzędzia znajdą pełną ścieżkę do pliku gdziekolwiek on istnieje, tak długo, dopóki GameInfo.txt wskazuje co oznacza ID Ścieżki "Game".
W środku pliku GameInfo.txt znajduje się sekcja nazwana "SearchPaths", która opisuje ID Ścieżki. Większość MODów nigdy nie będzie musiała mieć tego modyfikowanych jeśli zostały stworzone przez narzędzie Create a Mod z pakietu narzędzi SDK.
Pierwszą częścią każdej lini jest nazwa ID Ścieżki, a drugą jest miejsce gdzie należy szukać plików kiedy używane jest ID Ścieżki. Pierwszy prosty przykład, który to ilustruje, ale możesz nigdy go nie używać (ponieważ używa on absolutnych ścieżek zawierających litery dysków, które mogą nie istnieć na dysku użytkownika) jest tutaj:
TestPathID	C:\TestMod1
TestPathID	C:\TestMod2
TestPathID	C:\TestMod3
Jeśli programista, który pisze kod prosi o plik scripts\weapon_m4a1.txt i określi "TestPathID" jako ID Ścieżki w kodzie, wtedy silnik będzie szukał plików w tych miejscach:
* C:\TestMod1\scripts\weapon_m4a1.txt
* C:\TestMod2\scripts\weapon_m4a1.txt
* C:\TestMod3\scripts\weapon_m4a1.txt
Gry na silniku Source posiadają większość danych w ID Ścieżki "Game". Jeśli posiadasz ID ścieżki nazwaną "Game", wtedy samoczynnie robią następujące rzeczy dla każdego wpisu ID ścieżki "Game":
# Dodają ID ścieżki "GameBin" w <dir>\bin.
# Dodają kolejną ścieżkę "Game", ale z _<language> na końcu. Na przykład: c:\hl2\cstrike otrzyma ścieżkę c:\hl2\cstrike_french dodaną do niej jeśli uruchamiasz MODa na komputerze francuzkojęzycznym.
Dla pierwszej ścieżki "Game":
# Dodają ścieżkę nazwaną "MOD" znajdującą się w tym samym folderze.
# Dodają ścieżkę nazwaną "DEFAULT_WRITE_PATH" (czyli DOMYŚLNĄ_ŚCIEŻKĘ_ZAPISU).
Domyślne SearchPaths, które może być użyte w MODzie wygląda tak:
Game |gameinfo_path|.
Game hl2
Zazwyczaj ścieżka określa względną do katalogu bazowego --katalogu gdzie znajduje się hl2.exe. Jeśli |gameinfo_path| poprzedza ścieżkę, wtedy jest to ścieżka względna do katalogu gdzie znajduje się GameInfo.txt. Na przykład jeśli plik GameInfo.txt jest w C:\MyMod\Blasters i posiada ścieżkę w stylu |gameinfo_path|JakisTestowyKatalog, wtedy ID ścieżki, które tworzysz może odysłać do:
C:\MyMod\Blasters\JakisTestowyKatalog
Dla Counter-Strike: Source, plik GameInfo.txt posiada SearchPaths, która wygląda mniej więcej jak ta powyżej. Jeśli twój katalog Counter-Strike to:
C:\Program Files\Valve\Steam\SteamApps\nazwa_uzytkownika\Counter-Strike Source
to wtedy będzie szukał w dwóch katalogach:
* C:\Program Files\Valve\Steam\SteamApps\nazwa_uzytkownika\Counter-Strike Source\cstrike
ponieważ GameInfo.txt tam się znajduje.
* C:\Program Files\Valve\Steam\SteamApps\nazwa_uzytkownika\Counter-Strike Source\hl2
który istnieje tylko w środku wirtualnego systemu plików Steam'a