Skip to content

instrukcja

extrazi edited this page Jun 25, 2023 · 7 revisions
original    original
EN     PL

Manual   m4nfo   i   Raport

Introduction
Zamiast zwykłego tekstu wprowadzającego, oto jak wyglądałaby implementacja bardzo prostego pociągu (silnika i wagonu) w m4nfo (dzięki uprzejmości Snail: French NG train set):

 Przykład (Bardzo prosty pociąg):
 
 include(fset.m4)               // all local IDs, texts, etc  
 include(fset_templates.m4)     // vehicle templates
 
 setfeature(_TRAIN)
 
 grfinit(GRF_FRENCHSET,
 	grfname(ALL,"French Set Protoype v0.02 12/12/2011")
 	grfdescription(ALL, UTF8 CRLF T_LGRAY " © 2010 - 2012 by Jacopo Coletto.")
 	grfurl(ALL, "http://www.frenchset.fr")
 	grfpalette(DOS)
 	grfversion(2)
 	grfminversion(1)
 )
 
 //------------------------------------------------------------------
 // tank locomotive "030T Tramway"
 //------------------------------------------------------------------
 
 definevehicle(_030TRAMWAY,{"030T Tramway"},
 	newgraphics()
 	intro(1-1-1881)
 	climate(TEMPERATE)
 	reliability(16)
 	vehlife(23)
 	modlife(60)
 	enginetype(STEAM)
 	railtype(RAIL)
 	speed(45 km/h)
 	power(125 hp)
 	runningcost(55)
 	dualhead(NO)
 	capacity(0)
 	weight(15 t)
 	price(2)
 	aiusage(0)
 	effort(35 kN)
 	vehlen(3/8)         // make 62.5% shorter
 	seteffect(steam(4)) // set position of steam effect
 	retire(16)	    // 16 years
 	flags(FLIPPING)	    // allow "flipping" in OTTD
 )
 
 //------------------------------------------------------------------
 // short passenger coach
 //------------------------------------------------------------------
 
 definevehicle(_MSP, {"Passenger coach"},
 	newgraphics()
 	intro(1-1-1881)
 	climate(TEMPERATE)
 	vehlife(30)
 	modlife(120)
 	loadamount(4)
 	speed(40 km/h)
 	enginetype(WAGON)
 	railtype(RAIL)
 	runningcost(5) 
 	dualhead(NO)
 	cargotype(MENU) // use first refittable
 	capacity(18)
 	weight(5 t)
 	price(40)
  	cargoclasses(+PASS, -EXPRESS) // exclude "tourists"
 	vehlen(4/8)     // make 50% shorter
 	retire(16)      // 16 years
 )
 
 namevehicle(_MSP,
 	D,"Reisezugwagen",
 	F,"Voiture voyageur",
 	E,UTF8 "Vagón de pasajeros",
 	I,"Carrozza viaggiatori"
 )
 
 //------------------------------------------------------------------
 // graphics: tank locomotive "030T Tramway"
 //------------------------------------------------------------------
 
 spriteblock(
    set(
 	template({TMPL_NG_6M},030T_Tramway.pcx, x(10,26,58,100,
 	    128,144,176,218), y(10))
    )
 )
 
 def(0) spriteset(move(0),load(0))
 
 //------------------------------------------------------------------
 // graphics: menu entry for "030T Tramway"
 //------------------------------------------------------------------
 
 spriteblock(
    set(
 	sprite(030T_Tramway.pcx 260 10 _WEST) // black
    )
 )
 
 def(1) spriteset(move(0),load(0))
 
 //------------------------------------------------------------------
 // graphics: tramway coach
 //------------------------------------------------------------------
 
 spriteblock(
    set(
 	template({TMPL_NG_6M},voyageurs_courte.pcx, x(10,26,58,100,
 	    10,26,58,100), y(10))
     )
 )
 
 def(2) spriteset(move(0),load(0))
 
 makevehicle(_030TRAMWAY,
 	link(ref(1), MENU)     // purchase menu entry
 	default(ref(0))        // locomotive
 	override(_MSP, ref(2)) // tramway coach
 )

Powyższy przykład daje tylko pierwsze wrażenie. Ten manual zapewni dokładny wgląd w to, jak kodować (prawie) wszystkie 'features' dostępne w TTD: pojazdy, stacje, domy, branże, obiekty itp. oraz jak w łatwy do zrozumienia sposób wykorzystać najbardziej zawiłe cechy 'newGRFs' TTDPatch .

Części poniższych tekstów zakładają, że czytelnik ma minimalne pojęcie o standardowych informacjach i zrozumieniu terminologii związanej z tworzeniem oprogramowania.

Content (provisional)