INNE Narzędzia do automatycznej generacji rzeczywistych map
#13
Pozostała ostatnia ważna rzecz - gdy stworzymy mapę bazującą na realiach, chcielibyśmy aby przemysł pozostał na swoich miejscach a ponadto nowy przemysł był w czasie gry tworzony mniej więcej tam, gdzie w rzeczywistości.
Standardowo przemysł znika i pojawia się zupełnie losowo, więc po pewnym czasie będziemy mieli kopalnie węgla w Tatrach zamiast na Śląsku.
Aby tego uniknąć, potrzebne są dwie rzeczy:
  1. newgrf ze "stabilnym" przemysłem czyli możliwością wyłączenia losowości (np. Manual_Industries, Firs, Ecs)
  2. skrypt gry budujący przemysł - i tu wielkie podziękowania dla Alberta za zrobienie takiego skryptu i nauczenie mnie tajników programowania w Squirrel.
Manual_Industries to prosty newgrf którego przemysł jest identyczny jak w standardzie, ale można zablokować tworzenie i znikanie przemysłu w czasie gry.

Natomiast skrypt TileLabel_IndustryBuilder używa biblioteki TileLabels odczytując ze scenariusza wszystkie napisy, które się zaczynają specjalnym prefiksem - usuwa te napisy natychmiast po uruchomieniu gry.
Z tych napisów wyławia nazwę przemysłu, rok budowy, identyfikator przemysłu oraz rozmiar losowego obszaru tworzenia.
Gdy nastanie rok budowy, skrypt stara się co miesiąc zbudować przemysł, losując różne miejsca wokół położenia napisu. Jeśli ostatnia liczba wynosi 0, przemysł będzie budowany dokładnie w miejscu napisu - ale jeśli próba nie będzie udana, rozmiar losowego obszaru będzie powiększany.
W ustawieniach skryptu można ustawić 3 poziomy "debug level" - na najniższym nic nie jest wypisywane, na średnim wypisywana jest nazwa przemysłu jeśli się go uda zbudować, na najwyższym wypisywana jest nazwa przemysłu przy każdej próbie budowy.

Innymi słowy - w scenariuszu umieszczamy napisy w postaci:
Kod:
>>>Nazwa Wlasna Przemyslu:yyyy:ii:rr
gdzie >>> jest tym specjalnym prefiksem (można to zmienić na inny), : jest separatorem, yyyy rokiem budowy, ii to identyfikator przemysłu a rr to rozmiar losowego obszaru - a skrypt tworzy przemysł w trakcie gry.
Oczywiście napisy można wczytać z pliku txt z pomocą narzędzia import_land opisywanego wcześniej.

Konkretny przykład: w edytorze scenariusza:
[Obrazek: industrybuilder-edit.jpg]
gra, rok 1951:
[Obrazek: industrybuilder-start.jpg]
ta sama gra, rok 1985:
[Obrazek: industrybuilder-built.jpg]
Dzięki losowemu tworzeniu po pierwsze rozgrywka nie jest schematyczna bo za każdym razem przemysł jest trochę w innym miejscu, po drugie jest większa szansa, że ktoś nie zablokuje przemysłu stacją.
W czasie pierwszego roku skrypt buduje wszystko, co jest "zaległe", sięgając do 50 lat wstecz.

Przy okazji - identyfikator przemysłu jest liczbą nieujemną.
Jeśli podamy liczbę ujemną, zamiast przemysłu zostanie zbudowane miasto - co widać na załączonym obrazku. Rodzaj ulic zależy wtedy od tego ujemnego identyfikatora.

Skrypt jest dostępny tutaj:
http://149.156.194.203/~mczapkie/Train/t...uilder.zip
Ponieważ może być uruchomiony tylko jeden skrypt, obecnie testuję hybrydę skryptu TileLabel_IndustryBuilder oraz skryptu RealGrowth kontrolującego wzrost miast - ale potrzebne tu są pewne poprawki z uwagi na tworzenie nowych miast.


Wiadomości w tym wątku
RE: Narzędzia do automatycznej generacji rzeczywistych map - przez McZapkie - 31-07-2014, 21:12
RE: Mapa wysokości Polski - przez Walter Novotny - 26-05-2014, 20:07
RE: Mapa wysokości Polski - przez McZapkie - 16-06-2014, 12:22
RE: Mapa wysokości Polski - przez McZapkie - 18-06-2014, 23:14
RE: Mapa wysokości Polski - przez pAter - 19-06-2014, 12:12

Skocz do:

[-]
Zamknięcie forum OpenTTD Polska
Forum OpenTTD Polska zostało wyłączone. Obecnie znajduje się tu archiwum dyskusji o dodatkach tworzonych przez naszą społeczność.
Po aktualne treści i dyskusje zapraszamy na nasz discord! :)

[-]
Discord