Wprowadzenie
Definiowanie właściwości nowych obiektów.
W przeciwieństwie do pojazdów lub nowych stacji, większość nowych obiektów nie ma rzeczywistego odpowiednika w TTD.
W związku z tym ID`y można wybierać dowolnie i faktycznie zostaną one przydzielone automatycznie przez łatkę. W akcji 0 podajesz tylko ID`y w stosunku do zestawu, tj. ID pierwszego typu obiektu to 00, drugi typ obiektu to 01 itd. W sumie każda gra może mieć tylko 255 ID`ów obiektów dla wszystkich aktywnych plików grf.
Właściwością, którą musisz ustawić dla każdego ID obiektu, jest 08 (oprócz zdefiniowania dla niego akcji 3). Ponadto wszystkie ID`y obiektów muszą mieć klasy we właściwej kolejności, zaczynając od ID 00.
Właściwości
Numer | Rozmiar | Wersja | Opis |
---|---|---|---|
08 | D | 1.1 2.6 | Etykieta klasy, patrz poniżej |
09 | W | 1.1 2.6 | ID tekstu dla klasy |
0A | W | 1.1 2.6 | ID tekstowy tego obiektu |
0B | B | 1.1 2.6 | Climate availability |
0C | B | 1.1 2.6 | Bajt reprezentujący rozmiar, patrz poniżej |
0D | B | 1.1 2.6 | Współczynnik kosztu budowy obiektu (ustawia również współczynnik kosztu usunięcia obiektu) |
0E | D | 1.1 2.6 | Data wprowadzenia, patrz poniżej |
0F | D | 1.1 2.6 | Data zakończenia życia, patrz poniżej |
10 | W | 1.1 2.6 | Flagi obiektów, patrz poniżej |
11 | W | 1.1 2.6 | Informacje o animacji |
12 | B | 1.1 2.6 | Prędkość animacji |
13 | W | 1.1 2.6 | Wyzwalacze animacji |
14 | B | 1.1 2.6 | Object removal cost factor (set after object build cost factor) |
15 | W | 1.1 2.6 | Flagi callback, patrz poniżej |
16 | B | 1.1 2.6 | Wysokość budynku |
17 | B | 1.1 2.6 | Liczba widoków obiektów |
18 | B | 1.4 | Zmierz liczbę obiektów umieszczonych podczas tworzenia mapy |
Sprawdź Lakie's Graphical Representation of the newObject Specifications
Opisy
Klasa obiektu (08)
Etykiety klas są niepowtarzalnymi identyfikatorami złożonymi z liter A-Z i / lub cyfr 0–9, analogicznie do station class labels.
Ich głównym zastosowaniem jest łączenie obiektów w klasy i udostępnianie ich za pomocą górnej listy rozwijanej w oknie budowy obiektu.
W przeciwieństwie do stacji, nie ma domyślnej klasy dla obiektów. Autorzy zestawu muszą określić swoje own labels , chociaż zdecydowanie zaleca się stosowanie ogólnego schematu, aby uniknąć zamieszania.
ID`y klas muszą być ustawione przed jakąkolwiek inną właściwością.
ID tekstowy klasy obiektu (09)
ID tekstowy dla tej klasy (wartość słowa). Ten textid powinien być textid TTD lub textid D4xx (ustawiany przez D0xx w action4).
Określając obiekt, nie musisz ponownie ustawiać nazwy klasy, jeśli zrobiłeś to już dla innej z tą samą klasą.
ID tekstu obiektu (0A)
ID tekstowy obiektu do zapytania i wyboru (wartość słowa). Takie same wymagania jak w przypadku property09.
Rozmiar obiektu (0C)
Rozmiar obiektu do 15x15 kafli.
Ta wartość bajtu jest podzielona na dwie wartości. Pierwszy określa rozmiar w kierunku y, a drugi określa rozmiar w x (tj. Przechowywany jako YX).
Pamiętaj, że każda wartość mniejsza niż 0x11 zostanie odrzucona.
Koszt budowy (0D)
Mnożnik kosztów kompilacji. Mnoży się to przez liczbę kafli do oceny kosztów budowy i usunięcia obiektu.
Data wprowadzenia (0E)
Data wprowadzenia obiektu, w dniach od roku 0. Uwzględnia lata przestępne; dzieli się przez 4, ale nie 100, chyba że 400. Datę początkową 1920-01-01 uzyskuje się o wartości 701265 (51 B3 0A 00). W TTDPatch wszystko przed 1920 jest uważane za zawsze dostępne i powinno pozwolić na działanie obiektów po 2044, data jest również pierwszą datą, w której możesz zbudować obiekt.
Data zakończenia żywotności (0F)
W ubiegłym roku można zbudować obiekt, w dniach od roku 0. Takie same wymagania jak powyżej. Pamiętaj też, że musi upłynąć co najmniej rok (365 dni) od daty wprowadzenia, w przeciwnym razie TTDPatch zignoruje to.
Flagi obiektów (10)</span<>
Następujące flagi kontrolują zachowanie obiektu i są buforowane dla obiektów zbudowanych, więc zmiana tych flag nie będzie miała wpływu na obiekty już zbudowane.
Bit | Wartość | Version | Znaczenie |
---|---|---|---|
0 | 1 | 1.1 2.6 | Dostępne tylko w edytorze scenariuszy[1] |
1 | 2 | 1.1 2.6 | Nieusuwalne[2] |
2 | 4 | 1.1 2.6 | Wszystko może usunąć (zachowanie gruntu) |
3 | 8 | 1.1 2.6 | Zezwalaj na budowę obiektu na wodzie |
4 | 16 | 1.1 2.6 | Koszt 'przeprowadzki' to w rzeczywistości dochód (zachowanie gruntu) |
5 | 32 | 1.1 2.6 | Nie wyświetlać fundamentów, jeśli na zboczu |
6 | 64 | 1.1 2.6 | Obiekt ma animację[3] |
7 | 128 | 1.1 2.6 | Dostępne tylko podczas gry[1] |
8 | 256 | 1.1 2.6 | Umożliwia mapowanie o pojemności 2 cm3 dla obiektów zamiast domyślnego 133 |
9 | 512 | 1.1 2.6 | Nie zezwala na budowę na lądzie (ma również nieco 3 zachowanie) |
10 | 1024 | 1.1 2.6 | Rysuje wodę pod obiektem[4] |
11 | 2048 | 1.1 | Zezwalaj na most nad obiektem, biorąc pod uwagę wysokość budynku |
12 | 4096 | 1.1 2.6 | Losowe bity w wywołaniu zwrotnym "następna klatka animacji" |
13 | 8192 | 1.4 | Skaluj ilość obiektów umieszczonych na generacji map nie według obszaru mapy, ale mniej więcej według długości linii brzegowej |
- ↑ 1.0 1.1 Należy pamiętać, że bity 0 i 7 są niezgodne i ustawienie obu spowoduje, że obiekt będzie całkowicie niedostępny.
- ↑ Obiekt nie może być usunięty przez normalny dynamit, kontrola musi być utrzymywana, a koszt usunięcia zostanie pomnożony przez 25 (jest to zwykłe zachowanie dla większości obiektów klasy A w TTDPatch).
- ↑ Ustawienie tej flagi pozwoli na zwiększenie licznika animacji obiektu, należy ustawić, jeśli planujesz korzystać z animacji. Podobnie jak stacje, musisz włączyć animację na podstawie 'kafla' za pomocą wyzwalacza "wbudowanego kafla" i wywołania zwrotnego 159.
- ↑ Stosuje się tylko wtedy, gdy zbudowany na wierzchu kafla wody, zastępuje również kafel gruntowy obiektu całkowicie. (Nie działa, gdy obiekt zbudowany na nachylonych kaflach wodnych).
Informacje o animacji (11)
Niższy bajt określa liczbę klatek animacji pomniejszoną o jedną, więc 00 oznacza 1 klatkę, 01 oznacza 2 klatki itp. Maksymalna liczba klatek wynosi 256, chociaż możesz mieć pewne problemy, jeśli twoja animacja przekracza liczbę klatek FD (253). Górny bajt musi wynosić 0 dla animacji nie zapętlonych i 01 dla animacji zapętlonych. Każda inna wartość jest zarezerwowana do wykorzystania w przyszłości. Ponadto, jeśli całe słowo zawiera FFFF, animacja dla tego obiektu jest wyłączona (jest to wartość domyślna).
Ponieważ nie możesz mieć właściwości dla poszczególnych kafli obiektu, ta właściwość dotyczy każdej kafelka obiektu. Jeśli nie chcesz animować niektórych kafli, powinieneś sprawdzić bieżącą pozycję podczas callback 159 i zwrócić FD, jeśli bieżący kafel nie trzeba być animowanym. Jeśli potrzebujesz także animacji o różnej długości na kafel, musisz użyć callback 158 .
Prędkość animacji (12)
Znaczenie jest takie samo jak dla house property 1B , ale dolny limit to 0 zamiast 2, więc najszybsza możliwa animacja zmienia klatki każdego tyknięcia gry (27ms). Wartość domyślna to 0.
Wyzwalacze animacji (13)
Jest to maska zdarzeń, które powinny 'wyzwalać' callback 159 , umożliwiając zmianę stanu animacji
Bit | Wartość | Znaczenie | 'To się dzieje' | Var 18 |
---|---|---|---|---|
0 | 1 | Obiekt jest zbudowany | wszystkie kafle | |
1 | 2 | Periodyczny pętla kafli | pojedynczy kafel | |
2 | 4 | Zsynchronizowana periodyczna pętla kafli | wszystkie kafle |
Obecnie żaden wyzwalacz nie zapewnia dodatkowych informacji w var 18.
Zsynchronizowana periodyczna pętla kaflowa jest wywoływana bezpośrednio po (niezsynchronizowanej) periodycznej pętli kaflowej kafla północnego.
Współczynnik kosztu usunięcia obiektu (14)
Współczynnik kosztów usunięcia obiektu. Należy to ustawić po właściwości 0D (współczynnik kosztu kompilacji obiektu), ponieważ to zastępuje tę wartość.
Flagi callback (15)
W przypadku obiektów można zdefiniować następujące callbacks poprzez ustawienie odpowiedniego bitu we właściwości 15:
Bit | Wartość | Zmienna wartość 0C | 'Callback' |
---|---|---|---|
0 | 1 | 157 | 'Niestandardowa kontrola nachylenia' |
1 | 2 | 158 | Decyduje o następnej klatce animacji |
2 | 4 | 15A | Decyduje o szybkości animacji |
3 | 8 | 15B | Decyduje o kolorze budynku |
4 | 16 | 15C | Pokaż dodatkowy tekst w oknie obiektu budowania |
5 | 32 | 15D | Zezwalaj/nie zezwalaj na autosloping |
Wysokość budynku (16)
Ustaw wysokość budynku w poziomach wysokości (8 pikseli). Na przykład, jeśli struktura ma 16 pikseli wysokości, ustaw tę właściwość na 2.
1.1 W OpenTTD ta właściwość służy do określania wysokości okna obiektu kompilacji; wysokość podglądu obiektu jest ustawiona na 32 + "value of property 16" * 8 . Właściwość służy również do określania wysokości mostu, jeśli jest to dozwolone przez bit we właściwości 10.
Liczba wyświetleń (17)
Obiekty mogą mieć "widoki", tj. Różne reprezentacje graficzne, np. służy do wyświetlania obróconych widoków obiektu. Liczba wyświetleń może wynosić 1, 2 lub 4. Wartość domyślna to 1.
W przypadku obiektów innych niż kwadratowe rozmiary xiy są zamieniane na nieparzyste widoki. To znaczy, podając rozmiar obiektu 1*2 (x = 1, y = 2) , będzie wyświetlany jako 1*2 dla num = [0,2] (kierunek x), ale jako 2*1 dla num = [1,3] (kierunek y).
Użyj obiektu varaction2 var48, aby uzyskać dostęp do określonych widoków obiektu.