kennt sich da jemand mit aus wie die aufgebaut sind bzw kennt ne quelle wo das dokumentiert ist?
mir würde auch schon reichen zu wissen welche Hex-Codes was bewirken (Textausgabe, Sprünge, etc.)
greetz Guy
Lokale Skripte in .lfl-Dateien
-
- Komplettlösungsnutzer
- Beiträge: 23
- Registriert: 12.06.2007, 00:17
- Wohnort: Bad Frankenhausen
Lokale Skripte in .lfl-Dateien
Die Mehrheit bevorzugt die Option A gegenüber B, und B gegenüber C. Dennoch möchte die Mehrheit lieber C als A.
- john_doe
- Logik-Lord
- Beiträge: 1302
- Registriert: 06.05.2001, 20:58
Re: Lokale Skripte in .lfl-Dateien
Ich würde mir den Quellcode von ScummVM ansehen (http://www.scummvm.org), und dort den der SCUMM-Engine.
Save the Cheerleader, save the World!
-
- Komplettlösungsnutzer
- Beiträge: 23
- Registriert: 12.06.2007, 00:17
- Wohnort: Bad Frankenhausen
Re: Lokale Skripte in .lfl-Dateien
Das klingt zwar möglich, aber seeeehr umständlich sich den ganzen ScummVM Code zu pressen 
Deswegen hier mal ein lokales Skript in Hex und Plain, vielleicht kann mir ja jmd beim entschlüsseln behilflich sein....
Auszug aus der 83.lfl von Indiana Jones - The last Crusade
Im folgenden gilt
Hex: XX XX XX XX
Plain: text (editor, leerzeichen durch punkte ersetzt, wie sie im Hexeditor angezeigt werden)
{?Vermutung?/Wissen was es tut}
64 00 00 00
d...
{Gibt die Länge des Skripts an}
4C 53 CA 80 18 1F 00 16 00 00 05 28 00 00 16 00
LSÊ€...(..
{Steuerzeichen LS, ?...?}
D8 0F 5A 75 72 20 42 75 E1 65 20 62 65 72 65 69 74 5E 00
Zur Buáe bereit^.
{Ego spricht (D8), 00 stoppt}
18 31 00
1.
{18 gibt laut Scumm-Engine nen relativen Sprung an, also wahrscheinlich innerhalb der datei bzw des Skripts, 00 terminiert die Länge, also wird hier um Hex 31 (entspricht Dezimal 49) gesprungen, was genau der Länge der zweiten Sprachausgabe enstpricht}
D8 0F 60 4E 75 72 20 64 65 72 20 7A 75 72 20 42 75 E1 65 20 62 65 72 65 69 74 65 20 4D 61 6E 6E 20 77 69 72 64 20 62 65 73 74 65 68 65 6E 2E 60 00
Ø"Nur der zur Buáe bereite Mann wird bestehen.".
{Ego spricht (D8), 00 stoppt}
AE 2E 2C 01 00 18 A8
®.,.¨
{?...? , ?Pause erzeugt (2E) mit Länge 44 oder 300 (H 2C oder 012C wenn 00 terminiert)ms?!, wenn aber 18 nen Sprung ist, wohin wird dann hier gesprungen
}
FF A0
ÿ.
{Skript-Ende - alle Lokalen Skripte der 83.lfl enden mit diesen beiden Zeichen}
mit Hilfe von folgender Quelle:
http://scumm.mixnmojo.com/?page=specs&file=addlfl.txt
SCUMM Commands:
Note: These are just guesses. [] is a 8-bit, {} is a 16-bit, () is 32-bit.
05 {Object #} - Draws object.
07 {Object #} - Enables "open" flag (0x80).
11 [Actor][Command] - Commands actor:
10 Normal face
1C Frown
F5 Face right
F6 Face front
F7 Face back
F8 Face left
FF Stop walking
13 [Actor][Value][Property] - Set property of actor:
02 Body color
04 Costume
05 Text color
14 [Actor] - Actor # speaks, 00 terminated.
1E [Actor][LocX][LocY] - Actor walks to location.
1C [Sound #] - Plays sound.
2E (Delay) - Pauses.
33 [Value1][Value2][Option] - Applies values according to option:
2 Changes color #1 & #2 of screen.
Why lo-res 46.LFL looks wrong.
In SCRIPT #127: 33 09 0B 02.
Want to be able to change manually
in viewer?
42 [Script #] - Calls or loads script.
47 {Object #} - Disables "open" flag (0x80).
54 {Object #} - Renames object.
72 [Room #] - Loads room.
D8 - Current ego speaks, 00 terminated.

Deswegen hier mal ein lokales Skript in Hex und Plain, vielleicht kann mir ja jmd beim entschlüsseln behilflich sein....
Auszug aus der 83.lfl von Indiana Jones - The last Crusade
Im folgenden gilt
Hex: XX XX XX XX
Plain: text (editor, leerzeichen durch punkte ersetzt, wie sie im Hexeditor angezeigt werden)
{?Vermutung?/Wissen was es tut}
64 00 00 00
d...
{Gibt die Länge des Skripts an}
4C 53 CA 80 18 1F 00 16 00 00 05 28 00 00 16 00
LSÊ€...(..
{Steuerzeichen LS, ?...?}
D8 0F 5A 75 72 20 42 75 E1 65 20 62 65 72 65 69 74 5E 00
Zur Buáe bereit^.
{Ego spricht (D8), 00 stoppt}
18 31 00
1.
{18 gibt laut Scumm-Engine nen relativen Sprung an, also wahrscheinlich innerhalb der datei bzw des Skripts, 00 terminiert die Länge, also wird hier um Hex 31 (entspricht Dezimal 49) gesprungen, was genau der Länge der zweiten Sprachausgabe enstpricht}
D8 0F 60 4E 75 72 20 64 65 72 20 7A 75 72 20 42 75 E1 65 20 62 65 72 65 69 74 65 20 4D 61 6E 6E 20 77 69 72 64 20 62 65 73 74 65 68 65 6E 2E 60 00
Ø"Nur der zur Buáe bereite Mann wird bestehen.".
{Ego spricht (D8), 00 stoppt}
AE 2E 2C 01 00 18 A8
®.,.¨
{?...? , ?Pause erzeugt (2E) mit Länge 44 oder 300 (H 2C oder 012C wenn 00 terminiert)ms?!, wenn aber 18 nen Sprung ist, wohin wird dann hier gesprungen

FF A0
ÿ.
{Skript-Ende - alle Lokalen Skripte der 83.lfl enden mit diesen beiden Zeichen}
mit Hilfe von folgender Quelle:
http://scumm.mixnmojo.com/?page=specs&file=addlfl.txt
SCUMM Commands:
Note: These are just guesses. [] is a 8-bit, {} is a 16-bit, () is 32-bit.
05 {Object #} - Draws object.
07 {Object #} - Enables "open" flag (0x80).
11 [Actor][Command] - Commands actor:
10 Normal face
1C Frown
F5 Face right
F6 Face front
F7 Face back
F8 Face left
FF Stop walking
13 [Actor][Value][Property] - Set property of actor:
02 Body color
04 Costume
05 Text color
14 [Actor] - Actor # speaks, 00 terminated.
1E [Actor][LocX][LocY] - Actor walks to location.
1C [Sound #] - Plays sound.
2E (Delay) - Pauses.
33 [Value1][Value2][Option] - Applies values according to option:
2 Changes color #1 & #2 of screen.
Why lo-res 46.LFL looks wrong.
In SCRIPT #127: 33 09 0B 02.
Want to be able to change manually
in viewer?
42 [Script #] - Calls or loads script.
47 {Object #} - Disables "open" flag (0x80).
54 {Object #} - Renames object.
72 [Room #] - Loads room.
D8 - Current ego speaks, 00 terminated.
Die Mehrheit bevorzugt die Option A gegenüber B, und B gegenüber C. Dennoch möchte die Mehrheit lieber C als A.