ein englishes posting brachte mich auf das Thema codearray, insbesondere hinsichtlich eines externen Scripteditors.
Also hab ich etwas rumprobiert und folgendes herausgefunden.
Jeder Eintrag im Coderarray hat die Attribute val und type, mit Ausnahme von Array-Definitionen (hier isses size und type). Je nach "Level" des Eintrages, hat der Eintrag eine bestimmte Bedeutung. Im folgendenden
mal das was ich rausgefunden haben:
Level 0: Nur ein Eintrag; er hat immer size 10 und type array. Wie bei
allen array-Einträgen ist size die Anzahl der Subeinträge.
Level 1: Allgemeine Einträge zum Script
Eintrag 01: val= Name des Scriptes type=string
Eintrag 02: val= Version der Scriptengine type= int
Eintrag 03: val=Beschreibung des Scripts type = string
Eintrag 04: val=Version des Scripts type = string
Eintrag 05: val=0 type int; val scheint auch ab und an 1 zu sein.
Zusammenhang noch ungeklärt.
Eintrag 06: Ein Array Eintrag für die Variablen die im Script
verwendet werden. size entspricht der Anzahl der
Variablen type ist natürlich array. Jeder Untereintrag in
diesem Array besteht aus dem Namen der Variable (val)
und string als type. Auch Scriptparameter müssen hier
eingetragen werden.
Eintrag 07: Array für den scriptcode selbst. size entspricht der Anzahl
der Zeilen des Scripts. Näheres dazu später in diesem
Beitrag

Einträge 08: Array-Eintrag für Parameter des Scriptes mit den
entsprechenden Untereinträgen. Für jeden
Scriptparameter existiert hier ein Array-Eintrag (jeweils
ein subeintrag für Datentyp und Beschreibung)
Einträge 09: Array-Eintrag für nicht benutzte Kommandos des
Interpreters (z.B. Kommentare, end usw....)
Für jedes nicht benutzte Kommando jeweils ein
Untereintrag für die Zeile in der das Kommando
eingefügt werden soll und den Typ des Kommandos.
Ausnahme ist der Kommentar, hier steht zusätzlich noch
ein Eintrag mit dem Kommentar selbst drinn.
Eintrag 10: Int oder String. Wenn gesetzt ist das der Eintrag der
Angezeigt wird, wenn das Script als Kommando in
einem Schiffsslot läuft.
So..jetzt ans Eingemachte. Der Eintrag 07 ist wie oben gesagt, ein array. Für jede Script-Zeile existiert hier ein Untereintrag. Jeder Untereintrag ist hier wieder ein Array-Eintrag. Das Attribut size ist dabei abhängig davon, welches Kommando benutzt wird und wieviele Parameter dieses Kommando hat. type ist natürlich wieder array. Die Untereinträge für jedes Kommando haben dabei folgende Bedeutung (soweit wie ich das bisher analysiert hab

1. Eintrag val=Nummer des Kommandos. Die Nummer entspricht dabei dem Eintrag des Kommandos in der Sprachdatei. Die könnt ihr ganz einfach rausfinden in dem ihr in der Sprachdatei 490001 in der Page 2003 nachschaut, welche ID das Kommando hat. Beispiel: Das Kommando INC hat die ID 142. also hat der 1. Eintrag für ein INC-Kommando val=142 type 0
Eintrag 2-n: Einträge für die Parameter. Für Variablen ist das die Nummer des Eintrages im oben beschriebenen Array für die Namen der Variablen (Achtung 0-basiert, d.h. der erste Eintrag trägt die Nummer 0)

Soweit meine Analyse. Ich hoffe das hilft, fals jemand einen externen Editor machen möchte. Sollte jemand weitere erkenntnisse haben bitte hier posten, damit das mal gesammelt erscheint

[Edit]
Ergänzungen aus dem Englischen Forum vorgenommen.
[/Edit]