Trzecia część kursu tworzenia kampanii dla Battle for Wesnoth.
Edycja najważniejszego pliku twojej kampanii - „_main” - part I
Zajmiemy się teraz edycją pliku „_main”, jest on najważniejszym z plików w twojej kampanii oraz jest pewnym drogowskazem dzięki któremu kod gry Battle for Wesnoth odczytuje twoją kampanię. Plik "_main" ma rozszerzenie ".cfg" Zajmiemy się teraz jego edycją i omówimy najważniejsze tagi. Tagi WML to specjalny kod dzięki któremu będziemy budować nasze kampanie (WML - Wesnoth Markup Language).
Do edycji użyj przykładowego katalogu który zamieszczam raz jeszcze, a który pojawił się we wcześniejszej części kursu.
Wskazówka: znak „_” przed daną funkcją sugeruje że można ją będzie przetłumaczyć.
Najważniejszy tag w pliku ”_main” naszej kampanii to tag [campaign]. Ale na samym wstępie musimy omówić inny bardzo ważny tag, jest to [textdomain]. Opisuje on katalog który powinna przeszukać gra w celu sprawdzenia tłumaczeń do kampanii. Tag textdomain tworzy „podtagi” którymi posługuje się np. tag [campaing] w celu połączenia ciągu znaków które będzie mógł przetłumaczyć przykładowy translator.
Przykład 1:
[textdomain]
name="wesnoth-Przykladowa_Kampania" path="data/campaigns/przykladowa_kampania/translations"
[/textdomain]
Nazwa (name) [textdomain] powinna być unikatowa i zaczynać się od frazy 'wesnoth-' aby nie dopuścić do konfliktu z innymi textdomains w systemie. „path” to ścieżka do folderu tłumaczeń.
Zajmiemy się teraz tagiem [campaign]. Na samym początku wstawiamy nazwę stworzonej przez nas wcześniej textdomain
Przykład 2:
#textdomain wesnoth-Przykladowa_Kampania
2,3 i 4 linia tagu [campaign] będzie definiować nam identyfikatory naszej kampanii (pamiętaj o nie włączaniu do tekstu polskich znaków). “Name” - określa nazwę twojej kampanii którą widzi użytkownik, “abbrev” - to skrót dzięki któremu bedą zapisywane zapisy do twojej kampanii, “define” - tworzy klucz dzieki któremu gra wie kiedy użytkownik wybierze do gry scenariusz z twojej kampanii. Jeśli opuścisz “name” lub “define” kampanie może dzialac nieprawidłowo. “abbrev” nie jest wymagane ale zaleca się użycie tej funkcji. Kiedyś jako skrótu dla zapisów używano funkcji “id”, jest ona obecnie nieużywana.
Przykład 3:
name= _ "Twoja przykladowa kampania"
abbrev=PK
define=PRZYKLADOWA_KAMPANIA
Kolejne linie tagu [campaign] będą opisywać nam już widoczne dla użytkownika opcje. “icon” - to ikonka którą widzimy w menu wyboru kampanii (katalog w z którego wybieramy ikony to przykładowo Wesnoth 1.4.7\data\core\images), “ image” - to obrazek który możemy zobaczyć w okienku opisu kampanii, “description” - opis naszej kampanii widoczny dla użytkownika.
Przykład 4:
icon="terrain/tent.png"
image="../data/core/images/portraits/Jason_Lutes/human-thug.png" description= _ "Kampania ukazujaca nam zwykle pole pelne wiatrakow oraz pewnego wiesniaka"
Teraz czas na linie tagu [campaign] opisujące poziom trudności. “difficulties” - poziomy trudności, “difficulty_descriptions” - opis każdego poziomu trudności, możmy podmieniać tam wszystko na swoje dane. Np. (magenta>blue) określa że jednostka na obrazku units/human-outlaws/fugitive.png będzie miała niebieski odcień (jak w multiplayerze).
Przykład 5:
difficulties=EASY,NORMAL,HARD
difficulty_descriptions={MENU_IMG_TXT2 "units/human-peasants/peasant.png~RC(magenta>red)" _"Chlop" _"(Easy)"} + ";" + {MENU_IMG_TXT2 "units/human-outlaws/outlaw.png~RC(magenta>green)" _"Wiesniak" _"(Normal)"} + ";" + {MENU_IMG_TXT2 "units/human-outlaws/fugitive.png~RC(magenta>blue)" _"Wiesniak z widlami" _"(Difficult)"}
Pierwszy scenariusz naszej kampanii musimy zakodować w funkcji “first_scenario”:
Przykład 6:
first_scenario="1_First"
Dodatkowe funkcje: "rank" – określa jaka pozycję będzie miała nasza kampania w menu kampanii. (jeśli ustawisz "1", twoja kampania będzie pojawiać się na samej górze menu). Kampania "Eastern Invasion” ma na przykład rank = 130, a “Wolność” ma rank = 110.
Przykład 7:
[campaign]
rank= “1”
…
To praktycznie wszystkie najważniejsze linie które powinny się znale?ć w tagu [campaign] (ale nie wszystkie które powinny się znale?ć w pliku "_main"), możemy go już zamknąć stosując zamknięcie tagu kwadratowego - [/ campaign].
Znalazłeś błędy - opisz je w komentarzu.