Dieses Forum nutzt Cookies
Dieses Forum nutzt Cookies um Anmeldeinformationen (keine Passwörter) zu speichern. Dabei werden diese Informationen als kleine Textdateien auf deinem Endgerät abgelegt. Sie können nur durch dieses Forum ausgelesen werden und stellen kein Sicherheitsrisiko dar. Neben deinem letzten Login wird auch abgespeichert, welche Themen du bereits gelesen hast.

Zudem wird ein Cookie angelegt, in dem abgespeichert wird, ob du diesen Hinweis gelesen hast. Damit wird er nicht jedes mal angezeigt.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 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.054
Registriert seit: Mar 2005
Beitrag #5
RE: M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs
4.1 Beispiel V200

Nun wollen wir in einem einfachen Beispiel mal zusammenfassen, was wir bis jetzt haben. Wie gesagt, habe ich bereits die Version 0.9 des DB Set in die neue Syntax übertragen, so dass auch die üblicherweise vorkommenden komplizierteren Konstruktionen (zB Callbacks oder "recolourings") bereits von der aktuellen Implementierung dieser Makrosammlung abgedeckt werden.

Hier also erst mal die einfache V200:

Code:
//------------------------------------------------------------------
//      BR 220                  V 200
//------------------------------------------------------------------

train(10, {"BR 220 (ex V 200)"},
    intro(1954) // Einführungsjahr
    reliability(11) // Abnahme der Fz-Verlässlichkeit
    vehlife(30) // Lebensdauer des Fz (in Jahren)
    modlife(30) // Verfügbarkeit des Modells (in Jahren)
    enginetype(DIESEL) // Traktionsart und Kostentabelle
    speed(140 km/h) // Höchstgeschwindigkeit
    power(2700 PS) // Dauerleistung
    runningcost(120) // Wartungskosten
    dualhead(NO) // einfache Lok
    capacity(0) // keine Frachtkapazität
    weight(80 t) // Dienstgewicht
    price(75) // Kaufpreis
    aiusage(10) // AI Rang
    effort(235 kN) // Zugkraft
    shorter(0) // normale Fahrzeuglänge
    retire(2) // frühzeitige Entfernung aus Kaufliste
)

spriteblock(
  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)
  )
  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)
  )
)

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

def(2) yearbuilt(
         ref(0) ifyear(1920 .. 1974) // rot
         ref(1) else                    // blau/beige
)

//------------------------------------------------------------------
// Anzeige
//------------------------------------------------------------------

spriteblock(
  set(
    sprite(db_v200.pcx 226 50 01 12 30 -14 -8) // rot
  )
  set(
    sprite(db_v200.pcx 226 70 01 12 30 -14 -8) // blau/beige
  )
)

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

def(3) year(
         ref(0) ifyear(1920 .. 1973) // rot
         ref(1) else                    // blau/beige
)

// callbacks Anzeige
def(4) callback(
         TLH_V200 if(CB_TEXT) // Hilfstext für Lok
         ref(3) else          // Grafik für Anzeige
)

//------------------------------------------------------------------
// Wagen für V200: Passagiere (fern + extra)
//------------------------------------------------------------------

def(0) yearbuilt(
         ref(XSPW_WRUM) ifyear(1920 .. 1960) // 1950 - 1960 switch Wrüm | Aüm
         ref(X_TEEHUMP) ifyear(1969 .. 1973) // switch TEE Buckel | generic
         ref(F_BB74) ifyear(1974 .. 1986)    // DB74
         ref(X_IRIC) ifyear(1987 .. 1996)    // switch IR87 | IC87
         ref(LF_) else                       // 1997- generic (k. SPW!)
)

//------------------------------------------------------------------
// Wagen für V200: Post (fern + extra)
//------------------------------------------------------------------

def(1) yearbuilt(
         ref(XP_TEE) ifyear(1969 .. 1973)  // switch TEE | generic
         ref(FP_BB74) ifyear(1974 .. 1986) // DB74
         ref(XP_IRIC) ifyear(1987 .. 1996) // switch IR87 | IC87
         ref(LFP_) else                    // 1997- generic
)

makevehicle(0x0A,
    link(ref(4),MENU) // Kaufmenü
    default(ref(2)) // Lok
    override(0x4D,ref(0)) // Passagiere
    override(0x4E,ref(1)) // Post
)

Wie man sieht, sind hier die einzelnen Wagenklassen aus Gründen der Übersichtlichkeit über "label" defineirt bzw referenziert, und nicht über c-ID Nummern. Dies ist entsprechend natürlich auch für die veh-IDs möglich.

------------ Ende Teil 5 -----------------------------

Gruß
Michael

Zitat:EU-Wirtschaft- und Währungskommissar Joaquin Almunia hat alle Besorgnisse über den Schuldnerstatus Griechenlands als unbegründet zurückgewiesen.
(Dieser Beitrag wurde zuletzt bearbeitet: 11.11.2009 22:58 von mb.)
11.11.2009 22:58
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Nachrichten in diesem Thema
RE: M4nfo - a macro library for generating nfo code for TTDPatch and OpenTTD newgrfs - mb - 11.11.2009 22:58

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

Gehe zu:


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