![]() |
Modificator als GRF - Druckversion +- TT-MS Headquarters (https://www.tt-ms.de/forum) +-- Forum: Allgemeines rund um Transport Tycoon (/forumdisplay.php?fid=71) +--- Forum: Allgemeines zu TTDPatch (/forumdisplay.php?fid=17) +--- Thema: Modificator als GRF (/showthread.php?tid=2965) |
Modificator als GRF - Ammler - 01.09.2007 19:21 Hallo zusammen Ich versuche gerade mal ein GRF zu erstellen, dass die Flugzeug Kosten höher schraubt, möchte das dann auch mit Terraforming etc. machen können. Mit Action 0 geht das ja schon mal, nun würde ich das gerne jedoch dynamisch machen also per Parameter. (00 08 01 01 2D 08 09 zum verdoppeln) Dazu ist wohl Action D, jedoch werde ich nun nicht schlau, wie ich damit die Allgemeinen Variablen verändern kann. Werde aus dem Wiki auch nicht gescheiter. Könnt ihr mir da weiterhelfen? Gruss und Dank Ammler - mb - 01.09.2007 21:25 ammler schrieb:Dazu ist wohl Action D [.] Nicht dass ich wüsste. Da die "cost tables" statisch sind musst du mehrere von ihnen aufbauen und je nach Parameterwert (2, 4, 8, .) die entsprechende Tabelle auswählen. Das machst du am besten mit "action07". Ein Parameter = "2" zB wählt dann die verdoppelnde Tabelle, ein Parameter = "4" die vervierfachende Tabelle, usw. usf. aus: Code: // verdoppeln: check if param00 bit 1 set Das einzige "Problem" dabei ist dass der "skip" bei action07 dann ausgeführt wird wenn die Bedingung wahr ist, d.h. du brauchst eine Hilfskonstruktion die das korrekte Überspringen der nichtgewünschten Tabelle ermöglicht ("skip unconditionally" im obigen code). Für diese Konstruktion brauchst du eine Bedingung die immer falsch ist, obiges basiert auf der Abfrage der TTDPatch-Version (== 0?), d.h. für OTTD musst du dir möglicherweise etwas anderes ausdenken. ![]() Gruß Michael - Ammler - 01.09.2007 22:49 Ja, das habe ich befürchtet, na gut ist ja einfach mehr Tiparbeit. Ich kann da ja bei beim grössten anfangen und dann "runterspringen", dann spar ich mir die skip condition. Ein Problem ist noch, wenn ich jetzt trotzdem noch die Möglichkeit geben möchte 0 zu übergeben, aber höhere Werte als Standard setze. Wie prüfe ich nun ob der Parameter übergeben wurde? Code: // Defaults: B0-Airport x8, B1-Purchase x2, B2-running x4, B3-loading x2 (not implemented yet) Um die Ladezeit muss ich mich dann auch noch kümmern. ![]() Edit: Hab jetzt mal eine Version (ohne laden): http://openttdcoop.ppcis.org/wiki/index.php/Airmod.nfo (so kann man sie mal auf dem Server einsetzen.) -Ammler |