PL:BuildingMaps

From The Battle for Wesnoth Wiki
Revision as of 09:51, 15 March 2007 by Mist (talk | contribs)

Ostatnia edycja: 10:51, 15 March 2007 (CET)

Ta strona jeszcze nie jest w pełni przetłumaczona.
Przedstawiać się nie będę, jak chcesz pogadać to jestem na forum pod tym samym nickiem. Zajrzałem z ciekawości, żeby zobaczyć jak ci idzie i chyba jednak potrzebujesz pomocy. A napewno kogoś do redakcji tego co przetłumaczyłeś. Wszelkie wtrącenia mojego autorstwa będą w tym kolorze, chcesz wykorzystasz, nie chcesz usuniesz. Mist

Oto wszystko, co musisz wiedzieć o mapach:

  1. Mapa to tylko trochę literek w formie trójkąta.
  2. Są dwie metody robienia z nich plike.

A teraz do detali:

Oto wszystko co potrzebujesz wiedzieć o mapach:

  1. Każda z nich to tylko grupa liter ułożonych w prostokąt
  2. Istnieją dwa sposoby, żeby zapisać je w pliku
A na poważnie, oto szczegóły


Format mapy Wesnoth

Formatu tego używamy aby opisać mapy.

  • Plik mapy może zawierać dowolną liczbę wierszy, z których każdy ma tyle samo znaków.
  • Każdy znak musi albo być przypisany określonemu terenowi (patrz Litery Terenu w WML (en)), albo cyfrze.
  • Kiedy plik jest wykorzystywany przez grę, każda litera będzie zastapiona określanym przez nią terenem.
  • Każda niezerowa cyfra (np. 1, 2, 3,...) będzie zastąpiona przez Keep, na którym będzie umieszczony lider odpowiedniej strony.

Ponieważ znaki w plikaach tekstowych są prostokątne, zaś pola w grze sześciokątne, część z pół musi być przesunięta. Pola w kolumnach even, w grze są przesunięte o pół heksa w dół. Aby więc otrzymać drogę z połączonych pól typu dirt, musisz stworzyć taki plik:

rrgggggg
ggrrgggg
ggggrrgg
ggggggrr
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 Matrix, a zatem nie musisz bawić się bezpośrednio z plikiem tekstowym. Do większości wersji gry dołączony jest edytor map. Jeżeli kompilujesz z źródła, pamiętaj aby dodać --enable--editor po komendzie configure, albo edytor nie zostanie skompilowany. Używanie edytora nie powinno sprawić Ci najmniejszego kłopotu, biorąc pod uwagę opinie początkujących mapmakerów. Jednak jeśli napotkasz jakieś problemy, o pomoc spytaj na forum (en).

Gdy mapa jest już gotowa, możesz uznać, że drobne poprawki łatwiej nanieśc poprzez edytor tekstu.

Tworzenie dobrze zbalansowanej i interesującej mapy to jednak o wiele poważniejsza sprawa.

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

Plik z mapą może być wykorzystany na kilka sposobów:

  1. Może być użyty jako argument dla map_data (patrz WML Scenariusza (en)).
  2. Pliki zawierające jedynie dane mapy, mogą być łatwo edytowane z Edytorem Map Wesnoth (en).
    • Pliki w folderze userdata/editor/maps/, o ile zawierają jedynie dane mapy, mogą być używane w trybie Multiplayer.

Dane mapy wykorzystywane są na dwa sposoby

  1. Jako argument dla klucza map_data (patrz WML (Scenariusz) (en)).
  2. Jako plik składający się wyłącznie z tych danych, bez trudności odczytywany przez Edytor Map.
    • Pliki w katalogu userdata/editor/maps/ zawierajace tylko dane mapy mogą być wykorzystywane w grze wieloosobowej jako mapy użytkownika.

Klucz map_data

Każdy scenariusz kampanii zaczyna się od tagu [scenario], zaś scenariusz MP od tagu [multiplayer]. Obydwa używają klucza map_data. Jego wartość, to dane mapy zamknięte w cudzysłowiu. Oto przykład:

       map_data="111111111111111111"

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.

Drugim sposobem jest zapisanie mapy w pliku tekstowym zawierającym tylko dane mapy. Ma to jedną zaletę, jeśli umieścisz ten plik w katalogu userdata/editor/maps/ będzie on automatycznie dostępny w trybie dla wielu graczy. Metoda ta działa też dla bardziej złożonych scenariuszy, jeśli plik takiego scenariusza zawiera wiersz podobny do poniższego:

map_data="{@editor/map_filename}"

to wszystkie dane zostaną wstawione pomiędzy znaki cudzysłowu.

Plik Scenariusza czy Samodzielny Plik Mapy?

Twórcy kampanii potrzebują scenariuszy, więc kampanie zawsze będą używać map_data, z argumentem albo danych mapy, albo wskaźnika do pliku.

W odróżnieniu do nich, twórcy map MP mają wybór. Jeśli chcesz umieścić obiekt albo jednostkę na mapie, musisz stworzyć scenariusz zaczynający się od tagu [multiplayer] zawierającego klucz map_data. Tracisz co prawda prostotę czystego pliku z mapą, ale uzyskujesz poważne narzędzie. Możesz nie tylko dodawać jednostki i obiekty, ale również narzucać sojusze, ustalać doświadczenie, modyfikatory, opis mapy i wszelkie zdarzenia.
The question, "How do I place an object on the map with the map editor" is such a common question that I am sorry this information is buried so deeply here. But, now that you know you can seek out an example of a multiplayer map scenario file to use as an example. The game comes with many maps of each type. Check out BuildingMultiplayer for more information.

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.

Zobacz też