![]() |
Frage zum coden. - 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: Frage zum coden. (/showthread.php?tid=3088) Seiten: 1 2 |
RE: Frage zum coden. - mb - 03.11.2007 22:20 Bernhard schrieb:[.] was ist daran Brei?Dies hier ist "Brei": Bernhard schrieb:3 * 31 00 01 0C 01 06 00 4A 47 03 14 04 14 06 07 08 E0 09 50 0E FF 0F 01 10 00 11 00 12 17 14 01 00Aber trotzdem . Zitat:01 StrassenfahrzeugSoll das dein "Tiger" sein? Zitat:00 Final 00 (?)http://wiki.ttdpatch.net/tiki-index.php?page=Action0 [action8] Zitat:also mit einer 00 hört meine Action 8 auch auf.In der Tat. Zitat:Here is a short overview of what every term means:http://wiki.ttdpatch.net/tiki-index.php?page=Action8 Zitat:Below is an example of what a real Action 8 pseudo-sprite could look like. Alles klar? Gruß Michael RE: Frage zum coden. - Bernhard - 03.11.2007 22:39 Zitat:<name> S A short text containing the name of this set ist <description> Pflicht oder Kür ? nein, das ist NICHT der Tiger. Der liegt auf Eis. Hier geht es um ein Strassenfahrzeug! Sie fahren ja alle prima, nur die Variable ID funzt nicht, und ich versuche mich langsam an den Fehler heran zu tasten. Und ich verstehe immer noch niciht warum Du die Action 0 "Brei" findest. Sorry. [attachment=684] - Spaceball - 06.11.2007 23:22 Ich hab jetzt auch mal eine Frage zum Coden. Wie berechne ich die Koordinaten? Ich werd da irgendwie nicht schlau daraus. Wäre da bitte jemand so nett mir das zu erklären? Die Daten in der Grafikdatei habe ich mir jedenfalls aufgeschrieben. Xpos ist die linke obere Ecke des Sprites in der Datei. Ypos ist die rechte obere Ecke des Sprites in der Datei. Ysize ist die Länge des Sprites von oben rechts nach unten rechts. Xsize ist die Länge des Sprites von oben links nach oben rechts. Was bedeuten dann xrel und yrel? Was ist der TTD Point? Dann habe ich noch eine Frage zur Action 2. Wenn ich die Daten ändern möchte muss ich angeben welche Daten ich ändern möchte. Wie gebe ich die Daten ein? Schreibe ich die alle hintereinander in die Zeile oder erstelle ich immer eine eigene Action 2 für jede Änderung bzw. jedes Feature? Gibts da eine Reihenfolge? Laut der Anleitung sollte die Action 8 gleich am Anfang kommen. Gibts da noch weitere Actions bei denen ich eine Reihenfolge einhalten sollte? In einer NFO habe ich die Action 5c gesehen. Was ist das? cu, Spaceball RE: Frage zum coden. - pETe! - 07.11.2007 03:53 IIRC ist xrel und yrel die Verschiebung des Sprites. - Addi - 07.11.2007 08:49 Ja, ist es. Genau dasselbe hab ich gestern mit Ammler im IRC diskutiert, und schon fragt jemand im Forum danach. ![]() - mb - 07.11.2007 09:49 Spaceball schrieb:Wie berechne ich die Koordinaten?Oskar hat dazu ein paar aussagekräftige Zeichnungen erstellt: http://wiki.ttdpatch.net/tiki-index.php?page=PalettesAndCoordinates (Wir sind gut dokumentiert .) Zitat:Was bedeuten dann xrel und yrel?Verschiebung des sprites in x- und y-Richtung: -x nach links, +x nach rechts, -y nach oben, +y nach unten. Zitat:Was ist der TTD Point?Möglicherweise meinst du einen Referenzpunkt? Da gäbe es zwei unterschiedliche Konzepte, einmal für "flache" sprites, und einmal für 3D-Objekte. S.a. Oskar´s Zeichnungen. Zitat:Dann habe ich noch eine Frage zur Action 2. Wenn ich die Daten ändern möchte muss ich angeben welche Daten ich ändern möchte. Wie gebe ich die Daten ein? Schreibe ich die alle hintereinander in die Zeile oder erstelle ich immer eine eigene Action 2 für jede Änderung bzw. jedes Feature? Gibts da eine Reihenfolge?Viele Fragen und mir ist leider nicht ganz klar, was du genau wissen möchtest. Zunächst einmal gibt es zwei verschiedene action2: - die "normale" action2 um auf die sprites in einem vorher mit action1 definierten sprite-Block zuzugreifen. http://wiki.ttdpatch.net/tiki-index.php?page=Action2 - sog. var.action2, die auf externe Variablen zugreifen können und je nach deren Wert bzgl des Programmflusses "verzweigen" können. http://wiki.ttdpatch.net/tiki-index.php?page=VariationalAction2 Zitat:Wie gebe ich die Daten ein? Schreibe ich die alle hintereinander in die Zeile oder erstelle ich immer eine eigene Action 2 für jede Änderung bzw. jedes Feature?Generell gilt für eine var.action2: Code: 02 <feature> <set-id> <type> <variable> <varadjust> <nvar> (<set-id> <low-range> <high-range>){n} <default> wobei - <feature> entweder "00" für Züge, "04" für Bhfe, etc ist, - <set-id> eine frei wählbare Zahl im Bereich [00 . FF] ist (vergleichbar einem Bezeichner/Variable in einer höheren Programmiersprache), - <type> entweder aus der Liste [81,85,89] oder [82,86,8A] stammt und die Art des Zugriffs auf die zu referenzierende Variable definiert: zB definiert die erste Liste den Zugriff auf das aktuelle Objekt (Passagierwagen, Flugzeug, Schiff, Bhf, .) selber, die zweite Liste aber den Zugriff auf die "höhere Instanz" des aktuellen Objektes (Zugverband zu dem der Passagierwagen gehört, Stadt zu dem der Bhf gehört, .). 81/82 ermöglichen den Zugriff auf BYTE-Variablen, 85/86 den auf WORD-Variablen und 89/8A den auf DWORD-Variablen. - <variable> ist die Variable die abgeprüft werden soll. Das kann sowohl eine generelle TTD-Variable sein (Datum, Klima, .), eine 80+x Variable oder eine 40+x Variable. Letztere sind objektspezifisch (zB 40+x für Züge: Position des Wagen, Länge des Zuges, Frachtart, Geschwindigkeit, .) und werden "on-the-fly" im Spiel berechnet. - <varadjust> ermöglicht das Ergebnis des Variablenzugriffs zu modifizieren, im einfachsten Fall durch ein Rechtsschieben ("shift-num") und eine Maskierung ("AND-mask"), - <nvar> gibt die Anzahl der anzustellenden Vergleiche an, ähnlich einem CASE statement in C, - <low-range> und <high-range> sind die oberen und unteren Schranken für diesen Vergleich über den die anzusprechende Programmvariable (c-ID) gesetzt wird, <default> ist die default c-ID zu der verzweigt wird wenn der (modifizierte) Rückgabewert der Variablen in keiner der angegebenen Paare von <low-range> und <high-range> liegt. ZB: Code: -1 * 18 02 00 61 81 01 00 FF 02 Stellt eine Datumsabfrage dar zur Feststellung der jeweiligen Farbgebung eines Wagen. Zwischen 1920 und 1925 soll der Wagen in "preussischgrün" (KPEV) erscheinen, zwischen 1926 und 1934 als "Hecht" und danach als DRG-Schürzenwagen. Damit haben wir also: 02 00 - var.action2 für Züge 61 - meine Programmvariable (c-ID): "61" steht hier für "Nahverkehrswagen", 81 - Abfrage einer Variablen als BYTE, 01 - das aktuelle Jahr (Standard-TTD Variable) 00 FF - <varadjust>: schiebe das Ergebnis der Variablenabfrage 0 bits nach rechts und maskiere mit "FF", d.h. übernehme die Variable so wie sie ist, 02 - das CASE Konstrukt hat zwei Abfragen 09 00 - die Programmvariable (c-ID) zu der verzweigt werden soll wenn die zugehörige Bedingung wahr ist, 00 05 - die Bedingung: Variablenwert liegt zwischen 00 und 05 (also zwischen 1920 und 1925), 0A 00 - die Programmvariable (c-ID) zu der verzweigt werden soll wenn die (nächste) zugehörige Bedingung wahr ist, 06 0E - die Bedingung: Variablenwert liegt zwischen 06 und 14 (also zwischen 1926 und 1934), 04 00 - Default-Programmvariable (c-ID) zu der verzweigt wird wenn die Variable grösser als "0E" war. Zitat:Laut der Anleitung sollte die Action 8 gleich am Anfang kommen. Gibts da noch weitere Actions bei denen ich eine Reihenfolge einhalten sollte?Ich halte folgende Reihenfolge ein: action7 - zwecks Abprüfung von Klima, Patch-Versionen, Patch-Flags, etc action8 action0 action1-Blöcke action2-Blöcke action3 action4 Zitat:In einer NFO habe ich die Action 5c gesehen. Was ist das?Es gibt eine action5 http://wiki.ttdpatch.net/tiki-index.php?page=Action5 für Signale, Oberleitungen, Kanäle, Strassenbahnschienen, etc. Aaction5c gibt es nicht. Gruß Michael RE: Frage zum coden. - Spaceball - 07.11.2007 11:08 Erstmal danke für die ausführliche Erklärung. Ich werde mich da mal durchkauen. cu, Spaceball RE: Frage zum coden. - mb - 07.11.2007 11:34 Frag´ einfach wenn du ein spezielles Problem hast. Es empfiehlt sich für einen allgemeinen Überblick erst einmal die mittlerweile doch recht umfangreiche Dokumentation zu lesen - auch wenn sie nur in Englisch vorliegt. Gruß Michael |