PL:BuildingMaps
Ostatnia edycja: 10:51, 15 March 2007 (CET)
Oto wszystko co potrzebujesz wiedzieć o mapach:
- Każda z nich to tylko grupa liter ułożonych w prostokąt
- Istnieją dwa sposoby, żeby zapisać je w pliku
A na poważnie, oto szczegóły
Contents
Format mapy Wesnoth
Dane map są wykorzystywane do reprezentowania plansz Wesnoth. Ich kodowanie ma określony format:
- Plik z danymi składa się z dowolnej liczby wierszy o tej samej ilości znaków.
- Znak musi być albo literą reprezentującą określony teren, wymienioną w kluczu (patrz Spis liter terenu (en)), albo cyfrą.
- Podczas przetwarzania pliku, każdy znak zostanie zastąpiony terenem do którego się odnosi.
- Każda cyfra rózna od zera zostanie zastąpiona przez twierdzę z umieszczonym na niej przywódcą frakcji.
Ponieważ polem w pliku jest kwadrat a w grze heks podczas przetwarzania niektóre pola muszą zostać przesunięte. Pola w kolumnach parzystych są przesuwane o 1/2 w dół w efekcie dając quasiheksagonalną siatkę. Naprzykład aby stworzyć drogę z połaczonych ze sobą heksów ziemi dane mapy powinny wyglądać następująco :
rrgggggg ggrrgggg ggggrrgg ggggggrr
(Tylko wersja 1.3 i nowsze) (en) Format mapy w wersji 1.3 uległ zmianie, poniższy opis dotyczy tylko tej wersji i zapewne późniejszych.
Dane mapy są wykorzystywane do reprezenacji plansz w Wesnoth. Kodowanie ma określony format:
- Plik z danymi mapy składa się z dowolnej ilości wierszy z taką samą liczbą łańcuchów.
- Każdy łańcuch musi być jednym z wymienionych w kluczu określającym teren (patrz Spis liter terenu (en)).
- Łańcuchy mogą być wyrównywane spacjami lub tabulaturą i muszą być oddzielone przecinkiem, za wyjątkiem ostatniego, który przecinka mieć nie może.
- Podczas przetwarzania pliku każdy łańcuch zostanie zastąpiony terenem, do którego się odnosi.
- Puste linie są dozwolone zarówno przed, po jak i pomiędzy wierszami znaków, choć to ostatnie jest odradzane.
- Tereny mogą być poprzedzone liczbą, po której następuje jedna spacja. Określa ona początkową pozycję przywódcy frakcji n ( 1<n<9 większa ilość może działać ale opcja ta jest nieprzetestowana i prawdopodobnie nieobsługiwana przez inne elementy programu ). Pole to nie stanie się automatycznie twierdzą (zmiana w stosunku do poprzedniej wersji).
Doradza się wyrównywanie za pomocą spacji tak by każda kolumna była tej samej szerokości; gra robi to automatycznie zapisując plik mapy.
Ponieważ polem w pliku jest prostokąt a w grze heks, podczas przetwarzania niektóre pola muszą zostać przesunięte. Pola w kolumnach parzystych są przesuwane o 1/2 w dół w efekcie dając quasiheksagonalną siatkę. Naprzykład, aby stworzyć drogę z połaczonych ze sobą heksów ziemi dane mapy powinny wyglądać następująco:
Re, Re, Gg, Gg, Gg, Gg, Gg, Gg Gg, Gg, Re, Re, Gg, Gg, Gg, Gg Gg, Gg, Gg, Gg, Re, Re, Gg, Gg Gg, Gg, Gg, Gg, Gg, Gg, Re, Re
Tworzenie mapy
To nie jest Matrix, nie musisz oglądać zakodowanych map. Kod źródłowy i większoś oficjalnych dystrybucji zawiera edytor z graficznym interfejsem. Kompilując źródła pamiętaj o opcji --enable-editor przy konfiguracji, w przeciwnym wypadku nie zostanie on dołączony. Jego obsługa, sądząc po opiniach początkujących twórców, jest raczej prosta, ale gdybyś miał jakieś problemy ze znalezieniem lub pracą poproś o pomoc na forum.
Po utworzeniu mapy może ci jednak być łatwiej wprowadzać drobne zmiany bezpośrednio w danych tekstowych.
Tworzenie dobrych, zbalansowanych, ciekawych map jest zadaniem trudnym i jesli ktoś chciałby się podzielić wskazówkami odnośnie tej sztuki, bardzo prosimy.
Wykorzystywanie danych mapy
Dane mapy wykorzystywane są na dwa sposoby
- Jako argument dla klucza map_data (patrz WML (Scenariusz) (en)).
- Pliki w katalogu userdata/editor/maps/ zawierajace tylko dane mapy mogą być wykorzystywane w grze wieloosobowej jako mapy użytkownika.
Klucz map_data
Pierwszym sposobem na wykorzystanie danych jest użycie klucza map_data. Scenarusze kampanii zaczynają się tagiem [scenario] a te do gry wieloosobowej tagiem [multiplayer], każdy z nich akceptuje klucz map_data, którego wartością są dane mapy ujęte w cudzysłów. Przykład:
map_data="111111111111111111"
Samodzielny plik mapy
Inna metoda użycia mapy, to zapisanie jej w pliku tekstowym, który zawiera jedynie dane mapy. Zaleta tej metody jest oczywista: jeśli zapiszesz mapę w ten sposób w katalogu userdata/editor/maps/, gra sama automatycznie umieści ją na liście map MP. Poza tym taki plik może być argumentem dla klucza map_data. Przykład:
map_data="{@editor/map_filename}"
W takim wypadku mapą do scenariusza będzie mapa filename w katalogu edytora.
Plik Scenariusza czy Samodzielny Plik Mapy?
Autorzy kampanii nie mogą stworzyć nic bez scenariuszy, więc będą one zawsze korzystały z klucza map_data z surowymi danymi ujętymi w cudzysłów, albo symbolem preprocesora {} wskazującym na samodzielny plik z mapą.
Jednak autorzy map wieloosobowych mają wybór. Jeśli chcą umiescić obiekt lub jednostkę na mapie, muszą stworzyć plik scenariusza rozpoczynający się tagiem [multiplayer] zawierającym klucz map_data, tracąc w ten sposób prostotę samodzielnego pliku z mapą, ale zyskując olbrzymie możliwości. Mogą nie tylko dodawac przedmioty i jednostki, ale także ustawiac sojusze, modyfikatory doświadczenia, opisy mapy i wydarzenia losowe (a także wiele innych). Pytanie "Jak umieści obiekt na mapie za pomocą edytora?" pada bardzo często, narazie nie można, ale można sprawdzić jak zrobiono to w już istniejących scenariuszach.