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.

Thema geschlossen 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Modificator als GRF
Verfasser Nachricht
Ammler
Geschäftsführer
***

Beiträge: 700
Registriert seit: May 2007
Beitrag #1
Modificator als GRF
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

[Bild: attachment.php?aid=1628]
OpenGFX: [Bild: opengfx.1.png]
01.09.2007 19:21
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
mb
Tycoon
*****

Beiträge: 5.054
Registriert seit: Mar 2005
Beitrag #2
 
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
    07 00 04 00 01 01 // y: skip to "table * 2"
// n: skip unconditionally
    07 8B 04 03 00 00 00 00 01
// cost table * 2
    00 08 .
// vervierfachen: check param00 bit 2 set
    07 00 04 00 02 01 // y: skip to "table * 4"
// n: skip unconditionally
    07 8B 04 03 00 00 00 00 01
// cost table * 4
    00 08 .
.

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. Cool

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: 01.09.2007 21:46 von mb.)
01.09.2007 21:25
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Ammler
Geschäftsführer
***

Beiträge: 700
Registriert seit: May 2007
Beitrag #3
 
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)
    0 * 0    09 00 01 01 FF 01
    0 * 0    0D 00 00 FF 00 08 00 00 00
.

Um die Ladezeit muss ich mich dann auch noch kümmern. Zwinkern

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

[Bild: attachment.php?aid=1628]
OpenGFX: [Bild: opengfx.1.png]
(Dieser Beitrag wurde zuletzt bearbeitet: 02.09.2007 00:45 von Ammler.)
01.09.2007 22:49
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Thema geschlossen 


Gehe zu:


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