Wprowadzenie
Zmienne globalne można ustawić na dwa sposoby. (To) działanie 0 za pomocą funkcji 8 lub Action D . Zmienne w tablicach zwykle ustawia się za pomocą akcji 0, natomiast akcja D najczęściej ustawia pojedyncze zmienne.
Oprócz zmiennych globalnych ta akcja może również ustawić pewne ogólne zmienne specyficzne dla GRF.
Właściwości
Numer | Rozmiar | Wersja | Opis |
---|---|---|---|
08 | B | 0.6 2.5 | Mnożniki podstawy kosztów |
09 | D | 0.6 2.5 | Tabela translacji ładunków |
0A | W | 0.6 2.5 | Wyświetlane nazwy walut |
0B | D | 0.6 2.5 | Mnożniki walutowe |
0C | W | 0.6 2.5 | Opcje walutowe |
0D,0E | D | 0.6 2.5 | Symbole walut |
0F | W | 0.6 2.5 | Daty wprowadzenia euro |
10 | 12*32*B | 0.6 2.5 | Tabela wysokości linii śniegu |
11 | 2*D | 0.7 | Nadpisania GRFID dla silników |
12 | D | 0.7 | Tabela translacji typów szyn |
13,14 | V | 1.1 GRFv≥7 | Tabela 'tłumaczeń' płci/przypadków |
15 | B | 1.1 GRFv≥7 | Liczba mnoga |
16,17 | D | 1.10 | Tabela translacji typu droga-/tramwaj |
Opisy
Mnożniki podstawy kosztów (08)
TTD ma 49 base costs (obecnie 66 w OpenTTD), które określają ile wszystko kosztuje. Każdy koszt jest obliczany na podstawie (stałego) czynnika pomnożonego przez koszt podstawowy, który jest dostosowywany o inflację co miesiąc.
Ustawienie tej właściwości umożliwia zmianę tych kosztów podstawowych o dwa razy. Domyślna wartość właściwości to 08, co pozostawia koszt podstawowy bez zmian. Dodanie jednego do właściwości podwaja koszt podstawowy, odejmując jeden o połowę.
Korzystanie z math: NewBaseCost = OldBaseCost * 2^(n-8), gdzie n jest wartością właściwości 08.
Modyfikacja kosztów podstawowych powoduje mały błąd zaokrąglania za każdym razem, gdy gra jest zapisywana, ponieważ koszty muszą zostać ustawione na wartość domyślną w grze. Ten błąd jest jednak niezauważalny, dopóki nie minie wiele lat inflacji i dlatego nie powinien budzić obaw.
1.0 W OpenTTD zaokrąglanie odbywa się w kierunku 1 lub -1 w zależności od starego kosztu podstawowego; tj. jeśli stary koszt podstawowy to runda dodatnia w kierunku 1, a jeśli runda ujemna w kierunku -1. Zapobiega to zerowemu kosztowi podstawowemu.
Tabela translacji ładunków (09)
Aby pomóc w kodowaniu plików grf pojazdu, które chcą obsługiwać więcej niż standardowe typy ładunków, najłatwiej jest zainstalować tabelę translacji ładunku za pomocą tej właściwości.
Tabela translacji ładunku jest listą cargo labels . Każdy wpis oznacza, że odpowiedni ładunek ma zastosowanie, gdy używa się tego ID w action 3 lub przez chwilę w masce pojazdu.
Innymi słowy, jeśli na przykład czwarty wpis (numer 03) na liście to "POCZTA" (MAIL), wówczas zdefiniowanie grafiki dla ładunku 03 spowoduje zdefiniowanie grafiki dla poczty, a bit 3 w masce wymiany będzie również dla poczty.
W ten sposób plik grf pojazdu nie musi wiedzieć ani przejmować się, której szczeliny ładunkowej i ładunku używa dany rodzaj ładunku, może zdefiniować swój własny ID dla każdego ładunku, który chce obsługiwać, a zatem być niezależny od tego, jaki ładunek typy są naprawdę dostępne w grze i jakich slotów/bitów używają.
Ponieważ maska remontowa zawiera tylko 32 bity, tylko pierwsze 32 wpisy w tabeli translacji mogą korzystać z maski remontowej. Inne typy ładunków muszą być dodawane za pośrednictwem klas ładunków, dlatego najpierw umieść ładunki wymagające wyjątków od montażu opartego na klasie ładunku, aby mogły przejść do maski remontowej.
Zauważ, że tej właściwości nie można ustawić przyrostowo, musisz ustawić wszystkie typy w jednym działaniu 0, zaczynając od ID 0.
Przykład poniżej.
Przykład
// Tabela translacji ładunków 1 * 169 00 08 01 29 00 09 "COAL" "WATR" "RUBB" "MAIL" "OIL_" // 0-4 "LVST" "GOOD" "CERE" "GRAN" "WHET" // 5-9 "MAIZ" "WOOD" "WODT" "IORE" "CORE" // 10-14 "STEL" "PLAS" "VALU" "GOLD" "DIAM" // 15-19 "PAPR" "FOOD" "FRUT" "FISH" "WOOL" // 20-24 "POTA" "SAND" "GLAS" "WDPR" "DYES" // 25-29 "FERT" "OLSD" "RFPR" "VEHI" "PETR" // 30-34 "BRCK" "SULP" "CMNT" "FICR" "LIME" // 35-39 "MILK" // 40 // Wagon kolejowy ze specjalną grafiką do zboża (8), // pszenica (9), kukurydza (10) i zboża (7) 2 * 29 03 00 01 1B 04 08 <grain-cid> 09 <wheat-cid> 0A <maize-cid> 07 <cereals-cid> <default-cid> // Wagon kolejowy z grafiką do wody (1), kauczuku (2), // olej (4), benzyna (34) i mleko (40) 3 * 31 03 00 01 1C 05 01 <water-cid> 02 <rubber-cid> 04 <oil-cid> 22 <petrol-cid> 28 <milk-cid> <default-cid>
Wyświetlane nazwy walut (0A)
Tej i następujących właściwości można używać do modyfikowania walut. Każdy z nich może mieć ID 0–18 (dziesiętnie), przy czym ID są uporządkowane tak samo, jak na liście rozwijanej Waluta.
Ta właściwość umożliwia zmianę nazw walut wyświetlanych w menu rozwijanym Waluta w oknie Opcje gry. Ta właściwość to textID, a jeśli musisz podać własny tekst, musi to być DCxx.
Mnożniki walutowe (0B)
Odpowiednik 1 funta brytyjskiego w tej walucie pomnożony przez 1000. Na przykład 1 GBP=2 USD, więc powinno to wynosić 2000 USD. Mnożenie przez 1000 pozwala na umieszczenie ułamków dziesiętnych w mnożniku bez konieczności wykonywania obliczeń zmiennoprzecinkowych. Ta wartość jest używana wyłącznie do celów wyświetlania, TTD zawsze wykorzystuje funty brytyjskie do wewnętrznych obliczeń.
Opcje walutowe (0C)
Niższy bajt tego słowa określa separator tysięcy używany dla tej waluty (zwykle kropka "." Lub przecinek ","). Wysoki bajt powinien wynosić zero, jeśli symbol waluty powinien znajdować się przed liczbą (123 456 USD), i powinien wynosić 1, jeśli symbol waluty powinien być wyświetlany po liczbie (123 456 $). Położenie symbolu można zastąpić ustawieniami TTDPatch.
Symbole walut (0D,0E)
Te podwójne słowa są interpretowane jako ciąg maksymalnie 4 znaków. Jeśli potrzebujesz mniej znaków, pozostałe bajty powinny wynosić zero. Właściwość 0D jest drukowana przed liczbą, właściwość 0E jest drukowana po numerze. Te dwa zwykle różnią się tylko wtedy, gdy symbol jest oddzielony spacją od liczby (na przykład "$ " vs. " $"). Należy określić obie właściwości, ponieważ odtwarzacz może zastąpić preferowane umieszczenie symbolu.
Daty wprowadzenia euro (0F)
Ta wartość umożliwia wprowadzenie euro zamiast waluty w danym momencie. Jeśli ta wartość wynosi zero, waluta nigdy nie jest zastępowana euro (na przykład USD). Jeśli jest niezerowy, podaje rok, w którym walutę zastępuje euro (na przykład 2002 dla DM).
Tabela wysokości linii śniegu (10)
Ta właściwość pozwala określić wysokość linii śniegu dla każdego dnia roku. Jedynym ustawionym ID jest 0, a wartość musi wynosić 12*32=384 bajty. Aby uprościć rzeczy związane z łatką, co miesiąc ma 32 wpisy, a niemożliwe kombinacje (jak 32 stycznia lub 31 kwietnia) nigdy nie zostaną odczytane.
- GRFv≤7 Dla GRF w wersji 7 i niższej: Wartości powinny być wielokrotnością liczby 8 między 10 godzin a 88 godzin.
Wartości poniżej 10h i powyżej EFh mogą spowodować przepełnienie i nie należy ich używać. Ponieważ najwyższy możliwy ląd ma wysokość 78 godzin, podanie 88 godzin lub dłużej skutecznie wyłączy linię śniegu.
- GRFv≥8 Dla GRF w wersji 8 i wyższej: wartościami mogą być dowolne wartości z zakresu od 0 do FFh.
FF oznacza 'bez śniegu'; inne wartości są skalowane do liczby możliwych poziomów wysokości mapy.
2.5 Jeśli włączona jest linia śniegu umiarkowanego, ta tabela dotyczy również klimatu umiarkowanego.
UWAGA: Niektóre kody w TTD zakładają, że linia śniegu pozostanie stała: niektóre branże są budowane tylko powyżej/poniżej linii śniegu i zakładają, że linia śniegu nie ruszy się, gdy jest już zbudowana. Podobnie zaśnieżone domy na arktyce nadal będą wyglądały na śnieżne, nawet gdy wokół nich zniknie śnieg. Jeśli chcesz skorzystać z tej funkcji, upewnij się, że przeciwdziałasz tym efektom, zastępując arktyczne domy i gałęzie przemysłu wersjami odpornymi na śnieg.
Nadpisania GRFID dla silników (11)
Umożliwia dostarczenie listy 'źródłowych' i 'docelowych' GRFID, aby pozwolić pojazdom w źródłowym GRF zastąpić pojazdy w docelowym GRF, gdy włączone są silniki dynamiczne. Każdy wpis ma 8 bajtów i zawiera dwa GRFID. Można użyć wielu wpisów i ustawić różne GRF, aby zastąpić ten sam „docelowy” GRF, ale aktywna jest tylko ostatnia instancja „źródłowego” GRF. GRFID, które nie są obecne, nie będą miały wpływu.
Zakres tej funkcji jest dość ograniczony i należy jej używać tylko w przypadku zestawów modyfikujących dane innego zestawu, na przykład dodatku DBSetXL ECS dla DBSetXL lub wersji ocenzurowanej LV4.
Tabela translacji typów szyn (12)
Umożliwia określenie typów szyn za pomocą tabeli translacji, podobnie jak w przypadku tabeli translacji ładunku. Każda etykieta typu szyny jest 'DWordem'. Domyślne etykiety to RAIL, ELRL, MONO i MGLV. Jeśli zainstalowana jest 'tabela', zmiana typu trakcji silnika nie wpłynie na typ szyny.
Pamiętaj, że etykiety nie są dzielone między funkcjami, więc ta sama etykieta może być używana dla wielu elementów. Na przykład, etykieta "RAIL" może być używana jednocześnie dla typu szyny, typu drogi, typu tramwajowego i ładunku, bez konfliktu.
Tabela tłumaczeń płci / przypadków (13,14)
Umożliwia określenie płci lub przypadków za pomocą tabeli tłumaczeń. Odwzorowują one wewnętrzne ID`y NewGRF dla płci lub spraw na rodzaje lub sprawy zdefiniowane w plikach językowych OpenTTD, dzięki czemu ciągi NewGRF i ciągi OpenTTD mogą oddziaływać na płeć lub przypadki nawzajem. Właściwość 13 służy do mapowania płci, natomiast właściwość 14 służy do mapowania przypadków.
ID używany w tych tabelach tłumaczeń to id. języka (language-id,) Action 4 (GRF wersja 7 lub wyższa), tj. To odwzorowanie działa tylko z GRF wersja 7 lub nowsza. Id. języka 7F (dowolny) jest niedozwolony. Możesz zdefiniować ID wiele razy, w którym to przypadku nowe mapowania są po prostu dołączane do już znanych mapowań.
Ten format to po prostu lista mapowań zakończona 00:
(<id> <name>)+ 00
Rozmiar | Nazwa | Znaczenie |
---|---|---|
B | id | NewGRF wewnętrzny ID dla płci lub nazwy 'przypadku', nie może być 00 |
V | name | Ciąg 00 zakończony z nazwą płci lub 'case' , jak w tłumaczeniu OpenTTD |
Wewnętrzny ID NewGRF może być mapowany wiele razy dla tego samego języka, podobnie jak płeć lub nazwa sprawy OpenTTD mogą być (odwrócone) mapowane wiele razy. Można to wykorzystać do radzenia sobie z tłumaczami OpenTTD dodającymi lub usuwającymi płcie lub sprawy w miarę upływu czasu. Wewnętrzny ID NewGRF nie może mieć wartości 00, ponieważ będzie on używany w ciągach akcji 4, które mogą nie zawierać 00, z wyjątkiem zakończenia łańcucha.
Te mapowania są używane w StringCodes 9A 0E, 9A 0F, 9A 13 i 9A 14. Dokładne użycie mapowania można znaleźć tutaj.
Liczba mnoga (15)
Definiuje liczbę mnogą dla języka. Używany ID to id. języka Action 4 (GRF wersja 7 lub wyższa), tzn. Działa to tylko z GRF wersja 7 lub wyższa. Id. języka 7F (dowolny) jest niedozwolony. Więcej informacji o różnych prawidłowych formach liczby mnogiej można znaleźć na stronie StringCodes . Ta właściwość jest używana w przypadku StringCode 9A 15.
Tabela translacji typu drogowego (16)
Umożliwia określenie typów dróg za pomocą tabeli translacji, podobnie jak w przypadku tabeli translacji ładunku. Każda etykieta typu drogi to DWord. Domyślne etykiety to ROAD i ELRD.
Pamiętaj, że etykiety nie są dzielone między funkcjami, więc ta sama etykieta może być używana dla wielu elementów. Na przykład, etykieta "RAIL" może być używana jednocześnie dla typu szyny, typu drogi, typu tramwajowego i ładunku, bez konfliktu.
Tabela translacji Tramtype (17)
Umożliwia określenie typów tramwajów za pomocą tabeli translacji, podobnie jak w przypadku tabeli translacji ładunku. Każda etykieta typu tramwaj jest 'DWordem'. Domyślne etykiety to RAIL i ELRL.
Pamiętaj, że etykiety nie są dzielone między funkcjami, więc ta sama etykieta może być używana dla wielu elementów. Na przykład, etykieta "RAIL" może być używana jednocześnie dla typu szyny, typu drogi, typu tramwajowego i ładunku..