TT-MS Headquarters
Wer will das Coden lernen? - Druckversion

+- TT-MS Headquarters (https://www.tt-ms.de/forum)
+-- Forum: Allgemeines rund um Transport Tycoon (/forumdisplay.php?fid=71)
+--- Forum: Allgemeines zu Transport Tycoon (/forumdisplay.php?fid=69)
+--- Thema: Wer will das Coden lernen? (/showthread.php?tid=791)

Seiten: 1 2


Wer will das Coden lernen? - Bernhard - 26.11.2004 13:19

Hi,
wer hat interesse quasi per Fernlergang das Coden zu lernen?

Bitte nur Leute die wirklich Zeit un Interesse haben!


- Ignus - 26.11.2004 16:28

Ist damit allgemeines Coden gemeint, oder nur im zusammenhang mit TT? Wenn allgemeines gemeint ist, steck ich gerne viel Zeit rein, wenn nur das von TT gemeint ist wenig, da es für mich von der Orientierung her zu einseitig wäre. Aber ansonsten wär ich auf alle Fälle mit dabei. Lächeln)

Nachtrag: Dann könnten wir vielleicht auch bei OpenTT mitmischen!? Lächeln


- spielerA - 26.11.2004 17:50

Hi Bernhard,
ich bin gern dabei.
Wie soll das ablaufen?
Habe früher schon mit GW-Basic und Q-Basic rumgespielt. Jetzt nur noch HTML(ist keine Programmiersprache in dem Sinne).

mfg SpielerA Lächeln


- Kirsche - 26.11.2004 19:34

wäre schon interessant, aber leider hab ich da wohl nicht die zeit zu. Traurig


- Bernhard - 26.11.2004 21:20

Also das hat wenig mit den mir bekannten Sprachen zu tun. Deshalb hab ich auch solange gebraucht.
Wie der Code aussieht kann jeder feststellen der mal ne grf extrahiert.

ein Beispiel:

das moderne Taxi:

// Automatically generated by GRFCODEC. Do not modify!
// (Info version 4)
// Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel
0 * 4 10 00 00 00--- Anzahl Zeilen
1 * 6 07 83 01 05 02 00 --- Action 7, weiß nicht was sie macht
2 * 61 08 05 42 53 31 31 4D 6F 64 65 72 6E 65 73 20 54 61 78 69 20 47 72 61 66 69 6B 3A 20 49 67 6E 75 73 2C 20 43 6F 64 69 6E 67 3A 20 42 65 53 74 2D 43 6F 6D 20 28 63 29 20 32 30 30 34 00 – Action 8, 42 53 31 31 ist die ID, der rest der Name des Sets in Hex

3 * 28 00 01 0B 01 04 00 4A 47 03 14 04 14 06 07 08 E0 09 64 0E FF 0F 04 10 00 11 11 12 17 --------- 28 Byte, Action0 (00) 1 Zug (01) Anzahl Änderungen (0B), Auto (01) ….
4 * 4 01 01 01 08 ---- Action 1. 1 Set, 8 Ansichten
…….
und so weiter,.

es würde hier nur um das codieren von Grafiken für TTD gehen, vorzugsweise OTTD. Aber ich nehme an die werden genauso codiert werden wie TTPatch


- Ignus - 26.11.2004 22:59

Ja nur chinesisch für mich. Man wie war das gleich in der schule mit den hexadezimalen.
Ergibt das eigendlich irgend einen Sinn, wenn ich mir die jetzt übersetzten würde?


- Micha - 27.11.2004 00:25

Ehrensache ! Bin dabei !
Etwas Zeit hat wohl jeder. Man geht hier auf die Seite und denkt die Grafiken und updates regnen vom Himmel ! Da steckt echt Arbeit und Herz drin !
Da ich auch noch ziehmlich neu im Forum bin , kann ich ja auch erst mal was tun.Also , auf gehts. Augenrollen

PS.:Hi,Bernhard,hattest Du schon mal Zeit dir das Scen.
von mir anzuschauen ?
Gruß Micha


- Takato - 27.11.2004 13:33

also ich würde gerne, nur leider hab ich zZ kaum Zeit :\
Re erstmal, ja mich gibtz noch, war ziemlich lange afk wie man vllt gesehen hat ^^


- AnD - 28.11.2004 08:34

hab zwar wenig Zeit, dennoch würde ich wenigsten mein Grafikkram zumindest selbst zu modifizieren ., u.a. als Entlasten für Bernhard und seiner Familie .

Gruß AnD


Wir fangen an! - Bernhard - 30.11.2004 16:38

So sieht ein Pseudo-Sprite aus: 125 * 17 02 02 01 02 04 00 00 01 00 02 00 06 00 07 00 08 00
In jeder Linie ist die erste Zahl die Sprite Zahl.
Sie fängt bei 0 für die erste Eintragung an.
Für normale (Bilder) Sprites ist das folgende Teil der Linie der PCX Dateiname und die Maße und der Versatz des Sprite.
Für Pseudo-Sprites kommt nach der laufenden Nummer ein * und die Anzahl der Eintragungen (Dezimal) in Bytes. Die Daten werden in der hexadezimalen Darstellung eingegeben.
Hier als ein Beispiel der Code des VT133.

// Automatically generated by GRFCODEC. Do not modify!
// (Info version 4)
// Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel
0 * 4 0E 00 00 00
1 * 125 08 06 42 53 30 31 56 54 31 33 33 20 53 63 68 77 65 69 6E 65 73 63 68 6E E4 75 74 7A 63 68 65 6E
20 76 6F 6E 20 42 65 72 6E 68 61 72 64 20 53 74 6F 63 6B 2C 20 32 30 30 34 2E 20 4D 69 74 20 47
72 61 66 69 6B 65 6E 20 76 6F 6E 20 50 55 52 4E 4F 20 75 6E 64 20 43 6F 64 69 6E 67 68 69 6C 66
65 20 76 6F 6E 20 4C 41 4B 49 45 2E 20 54 68 61 6E 6B 73 20 74 6F 20 62 6F 74 68 21 00
2 * 4 01 00 01 08
3 c:\temp\SPRITES\vt133.pcx 66 8 01 25 8 -3 -10
4 c:\temp\SPRITES\vt133.pcx 82 8 09 15 20 -16 -4
5 c:\temp\SPRITES\vt133.pcx 114 8 01 13 29 -12 -8
6 c:\temp\SPRITES\vt133.pcx 162 8 09 15 20 -4 -5
7 c:\temp\SPRITES\vt133.pcx 194 8 01 25 8 -3 -10
8 c:\temp\SPRITES\vt133.pcx 210 8 09 15 20 -16 -4
9 c:\temp\SPRITES\vt133.pcx 242 8 01 13 29 -12 -8
10 c:\temp\SPRITES\vt133.pcx 290 8 09 15 20 -4 -5
11 * 9 02 00 00 01 01 00 00 00 00
12 * 7 03 00 01 16 00 00 00
13 * 24 00 00 07 01 16 00 42 0E 09 3C 00 0B 90 00 14 28 15 00 16 14 19 08 12 FD
14 * 12 04 00 1F 01 16 56 54 20 31 33 33 00


Die ersten drei Zeilen werden vom Programm grfcodec erzeugt.

Die Zeile mit der Nummer 0:

0 * 4 0E 00 00 00
Zeile 0 mal 4 Byte 14 Zeilen Rest ?

1 * 125 08 06 54 57 03 05 56 54 31 33 33 20 53 63 68 77 65 69 6E 65 73 63 68 6E E4 75 74 7A 63 68 65 6E

Zeile 1 * 125 Byte
Action 8 (es gibt die Action 0-9 und A-E
06 = unterstütze Alpha-version (2.0.1 Alpha 13 und höher)
42 53 30 31 BS01 GRF-ID (Buchstaben/Zahlenkombination des Autors)
Rest: Name des GRF in Hex, hier VT133 Schweineschnäutzchen

2 * 4 01 00 01 08

Zeile 2
4 Byte
Action 01
1 Grafiksatz mit 8 Ansichten, nämlich | / - \ | / - \ | _ (nach vorne, nach oben rechts, nach rechts, nach unten rechts, nach unten, und nochmal, un eine Ansicht für das Kauffenster

Zeilen 3-10 sind die Sprites. Der Pfad, die X/Y-Position, die Größe in X/Y-Richtung, und die X/Y-Korrektur für die Position auf dem Bildschirm (hier alle im negativen Bereich)

11 * 9 02 00 00 01 01 00 00 00 00

Zeile 11 * 9 Bytes Action2,
Feature 00 = Züge (01=Autos, 02 = Schiffe.)
Set-ID wird für Variable Sets wie den ICE oder die S-Bahn benötigt, deshalb hier 00
ein Grafikset für ‚fahren‘, eines für ‚laden‘, hier aber die gleichen Grafiken!


12 * 7 03 00 01 16 00 00 00

Zeile 12, 7 Bytes lang, Action 3, Feature 00 = Züge, 1 Zug wird geändert/erneuert, Vehicle-ID (kommt bis zu 3* im Set vor!)

13 * 24 00 00 07 01 16 00 42 0E 09 3C 00 0B 90 00 14 28 15 00 16 14 19 08 12 FD

Zeile 13,
24 Byte,
Action 0,
Feature 00 = Züge,
07=Anzahl der Änderungen,
01 Anzahl der Züge die geändert werden,
16 = Zug-ID (das 2. mal!)
00 42 0E = Datum der Indienststellung. 42 0E in ‚little endian‘ = 0E42 hex = 3650 Tage seit 1920 also 1930!,
09 3C 00 = Speed 00 3C = 60 MEILEN!,
0B = Power, 90 00 = 00 90 = 144 PS,
14=Cargo – Kapazität,
15 = Ladungsart, 00=Passagiere,
16=Gewicht in Tonnen,
19 = Schienenart, 08=Diesel,
12 ist die Art des Sprites, FD heißt neu.


14 * 12 04 00 1F 01 16 56 54 20 31 33 33 00

Zeile 14 * 12 Byte, Action 4, 00=Züge, 1F = Sprach-ID, 1 Zug, 16 56 . Name der Im Zugbaufenster erscheint.






Könnt Ihr folgen?


- Bernhard - 01.12.2004 07:47

irgendwelche Kommentare? X(


- Kirsche - 01.12.2004 09:45

kannste das nochmal auf deutsch erklären für ganz blöde? großes Grinsen


- Marcel - 01.12.2004 09:49

Zitat:Original von Bernhard
Die Zeile mit der Nummer 0:

0 * 4 0E 00 00 00
Zeile 0 mal 4 Byte 14 Zeilen Rest ?
Der Rest für den Fall das es 299329422423 Zeilen sind.

Zitat:Original von Bernhard
Zeilen 3-10 sind die Sprites. Der Pfad, die X/Y-Position, die Größe in X/Y-Richtung, und die X/Y-Korrektur für die Position auf dem Bildschirm (hier alle im negativen Bereich)

Die größe in y/x - Richtung, aber die korrektur in x/y! Versteh bis heute nicht warum das hier unbedingt verkehrt rum sein muß.

Zitat:Original von Bernhard

00 42 0E = Datum der Indienststellung. 42 0E in ‚little endian‘ = 0E42 hex = 3650 Tage seit 1920 also 1930.

Hier ne blöde Frage, das die hex Daten verkehrt rum müssen ist schon klar, aber wieso?

Zitat:Original von Bernhard




Könnt Ihr folgen?

Ja, und jetzt, falls möglich, das ganze für Brücken. Da habe ich nämlich arge Probleme.sonst müssen wir mal sehen ob wir unser Wissen zusammenlegen können.


- Bernhard - 01.12.2004 12:12

@ Marcel

zu Zeile Zeile 0 bist Du Dir sicher?
ich glaube es ist so:

0 * 4 0E 00 00 00
0E 00 = Datum, die beiden letzten 00 00 für Ende Eintrag.
Reicht immer noch für 65535 Zeilen großes Grinsen

warum die Word-Einträge 'verkehrt herum stehen?

ganz einfach. Format heißt 'little endian' ich denke damit wollten und die erfinder des Hex-Codes ärgern.

aus 12 34 wird 34 12. Es gibt aber auch 'big endian', ich glaube auf'm Mac. alles mit Motorola-Chips.

siehe hier: http://www.cs.umass.edu/~verts/cs32/endian.html

An Brücken hab ich mich noch nicht gemacht.

Können wir zusammen versuchen.


- AnD - 01.12.2004 13:22

also, ich verstehe hier nur Bahnhof .
ich glaub , ich lass es lieber Traurig .

Gruß AnD


- Ignus - 01.12.2004 14:53

Hallo da.
Bernhard, welchen Hexeditor nutztn du (gib Link!großes Grinsen)? Oder tust du alles nach der Papier und Bleistift -Methode umrechnen?
Hab hier einen gefunden, jedoch ist der mir etwas zu komplex, ich brauch was einfacheres Zwinkern
http://www.bpsoft.com/downloads/index.html
(die älteren Versionen davon sind Vollversionen und keine Trials)
Oder ich Scripte mir mal meinen eigenen. wobei ich noch nicht hintergestiegen bin, wie man das Alphabet in Hexadezimale umwandelt. Ich kanntes bisher immer nur mit Dezimal- oder Dualzahlen nach Hexas. Kann mir das jemand mal bitte erkln?


- Bernhard - 01.12.2004 16:03

also, du kannst Excel nutzen 'hexindez(x)' bzw. 'dezinhex(X)'

oder, sehr komfortabel:

http://www.ttdpatch.net/cgi-bin/str2hex.pl


@ Kirsche und AnD.

Es ist sauschwer. Nicht umsonst gibt es nur 2-3 Coder, und ich rechne mich noch lange nicht dazu.

Wir können es ja ganz langsam angehen.

Schaut Euch den Code vom VT133 in Ruhe an, druckt meine Erklärung aus.

Als nächstes würde ich einfach mal aufzeigen was man in der Action0 so alles machen kann.

(Speed, Power usw) Zwinkern


- Ignus - 01.12.2004 16:35

Die Seite geht bei mir net und Excel hab ich auch nicht.


- Bernhard - 02.12.2004 07:50

.und dan gibt es ja noch den Windows-Rechner.
Mit dem Kann man zwar keinen Text wandeln, aber alle Zahlen. Musst ihn nur auf 'wissenschaftlich' einstellen Zwinkern


- Marcel - 02.12.2004 11:04

@ Bernhard

Mit der ersten Reihe bin ich mir sicher, habe gerade nochmal nachgesehen. Normal müßte es ja 00 00 00 0E heißen, aber auch hier wieder alles umgekehrt. Ich glaube es ist in Orndung mehr Zeilen anzugeben als vorhanden, aber niemals weniger. Weiß ich aber wirklich nicht genau.

Reicht also erstmal für 4294967295 Zeilen.kann man eigentlich dann 0 * 5 ff ff ff ff 01 schreiben falls es nicht reicht?