PL:BuildingMaps

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

Ostatnia edycja: 16:42, 30 August 2006 (CEST)

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 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.

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"

Samodzielna mapa

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.

Scenariusz czy Samodzielna Mapa?

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.

Zobacz też