Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs
Verfasser Nachricht
mb
Tycoon
*****

Beiträge: 5.057
Themen: 55
Registriert seit: Mar 2005
#4
RE: M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs
3. Syntax für action1 und action2

Auch diese Implementierung ist simpel. In Spriteblöcken für Fahrzeuge treten normalerweise zwar lediglich 4- und 8-Richtung-Sprites auf, dennoch schien es hier sinnvoll dieses statement flexibler auszuführen, besonders im Hinblick auf eine spätere Erweiterung auf andere Objekte.

spriteblock({<set>}) - definiert einen sprite-Block
set({<sprite>}) - definiert einen sprite Set
sprite(<realsprite>) - definiert ein einzelnes "real sprite"

in Verbindung mit einer Implementierung für die zugehörige "action2", namens

spriteset(move(<movingstates>), load(<loadingstates>))

sieht die praktische Anwendung dann zB so aus:

Code:
//--------------------------------------- // V200 //--------------------------------------- spriteblock( // rot set( sprite(db_v200.pcx 66 8 01 20 8 -3 -12) sprite(db_v200.pcx 82 8 09 17 23 -14 -9) sprite(db_v200.pcx 114 8 01 12 30 -14 -8) sprite(db_v200.pcx 146 8 09 17 23 -5 -8) sprite(db_v200.pcx 178 8 01 20 8 -3 -12) sprite(db_v200.pcx 194 8 09 17 23 -16 -8) sprite(db_v200.pcx 226 8 01 12 30 -15 -8) sprite(db_v200.pcx 258 8 09 17 23 -7 -9) ) // blau/beige set( sprite(db_v200.pcx 66 30 01 20 8 -3 -12) sprite(db_v200.pcx 82 30 09 17 23 -14 -9) sprite(db_v200.pcx 114 30 01 12 30 -14 -8) sprite(db_v200.pcx 146 30 09 17 23 -5 -8) sprite(db_v200.pcx 178 30 01 20 8 -3 -12) sprite(db_v200.pcx 194 30 09 17 23 -16 -8) sprite(db_v200.pcx 226 30 01 12 30 -15 -8) sprite(db_v200.pcx 258 30 09 17 23 -7 -9) ) )

Hierdurch werden also 2 Sets zu jeweils 8 Richtungssprites definiert.

Code:
def(0) spriteset(move(0), load(0)) // rot def(1) spriteset(move(1), load(1)) // blau/beige

Die Funktionen "move" und "load" geben die per "spriteblock" definierten und zu verwendenden Sprite-Sets an. Im obigen Beispiel wird lediglich ein Sprite-Set pro Farbgebung verwendet, aber bei einem Güterwagen könnte dies zB so aussehen:

Code:
def(5) spriteset(move(0, 13), load(0, 9, 10, 11, 12, 13))

für 2 Fahrzustände (offen, geschlossen) und 6 Beladungszustände.


4. Syntax für action3

Auch diese Implementierung ist relativ simpel aber effektiv:

makevehicle(<veh-ID>,{c-ID/cargo type pair},<default c-ID>[{,<override>}])

Die Paare von c-IDs und zugehöriger Fracht ("cargo type") werden durch die Funktion "link" realisiert:

link(<c-ID>,{<cargotype>}), sodass eine praktische Anwendung zB so aussehen würde:

Eine Lok:

Code:
makevehicle(0x01, link(ref(3), MENU) // Kaufmenü default(ref(1)) // Lok )

Ein Güterwagen:

Code:
makevehicle(0x43, link(ref(7), MENU) // Kaufmenü link(ref(2), LVST) // Vieh link(ref(6), FOOD, FISH) // Lebensmittel und Fisch default(ref(1)) // alles andere )

Ein eventuell notwendiger "livery override" wird durch die Funktion "override" erzeugt:

override(<veh-ID>,<c-ID>), s. Beispiel im nächsten Abschnitt.

-------- Ende Teil 4 -------------------------

Gruß
Michael
Zitat:EU-Wirtschaft- und Währungskommissar Joaquin Almunia hat alle Besorgnisse über den Schuldnerstatus Griechenlands als unbegründet zurückgewiesen.
09.11.2009, 21:51
Homepage Suchen Zitieren


Nachrichten in diesem Thema
RE: M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs - von mb - 09.11.2009, 21:51

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
Hilfe Diverse Fragen zu OpenTTD, TTD und TTDPatch Steinborg 7 7.685 22.07.2013, 18:26
Letzter Beitrag: Steinborg

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste

Kontakt | Transport Tycoon Main Station | Nach oben | Archiv-Modus | RSS-Synchronisation