Seit einiger Zeit habe ich damit experimentiert Gegenstände des Editors in nutzbare Spielobjekte um zu wandeln. Als Beispiel möchte ich das an Pilzen dokumentieren:
1. Der Name des neuen Items lautet
MUSHROOMS_1 und wird wie bisher gewohnt als Objekt in
scripts / itemdata / items.py definiert:
Code: Select all
create_item_type(typeid='SET_MUSHROOMS_1')
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="name", value=globaltext.SET_MUSHROOMS_1_NAME)
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="hint", value=globaltext.SET_MUSHROOMS_1_HINT)
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="resourceui", value='RES_ITEM65X32_MISCITEM_MUSHROOMS_1')
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="resource3d", value='RES3D_TRES_OBJECTS_BUILDING_MUSHROOMS_1')
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="value", value=2.0)
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="weight", value=0.2)
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="stacking", value=10)
2. Der
Namen und Hint der Pilze im Spiel werden in
scripts / globaltext / german / german.py definiert:
Code: Select all
add_global_text(id='SET_MUSHROOMS_1_NAME', text='Champignons')
add_global_text(id='SET_MUSHROOMS_1_HINT', text='Champignons')
Dem geübten Leser wird jetzt auffallen, das es sich um Champignons handeln wird.
3. Das
Inventarbild wird in der Zeile
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="resourceui", value='RES_ITEM65X32_MISCITEM_MUSHROOMS_1' ) abgefragt.
Dieses gibt es in den GUI-Daten noch nicht und muss verankert werden. Dem Spiel sind im Modordner Tools beigefügt, eines davon ist das Tool
guiresourcedata.exe. Dieses öffnen.
Es hat Vorteile schon vorher zu wissen, wo sich denn die GUI-Daten der Items verstecken. Häufig halten sie sich in
The Fall / data / guidata / fall_items.gui auf

.
Die Datei öffnen und unter "Ressourcen" auf der linken Seite erscheint eine lange Liste der definierten Inventarbilder der Objekte - Pilze sind da noch nicht zu finden, müssen noch "wachsen".
In der Datenbank einfach einen neuen Eintrag erstellen (am oberen linken Rand erstes Quadratsymbol "Neue Ressource" anklicken- schau auch in die Infozeile unten)
Die Infostruktur kann man eigentlich recht analog zu den anderen Objekten erstellen. Zu jedem Eintrag auf der linken Seite in der Datenbank stehen verschiedene Informationen auf der rechten Seite.
a. die Id: von 400000 bis 400545 - ich habe einfach die
1 genommen, da es mein erstes Objekt ist
b. Bezeichner:
RES_ITEM65X32_MISCITEM_MUSHROOMS_1 - wichtig, das ist der Name auf den sich weiter oben hier in der Objektdefinition bezogen wird
c. Es wird ein "Neuer Bereich" definiert und es öffnet sich ein Fenster, in welchem man folgende Werte einträgt:
Nummer:
0
Koordinaten des Inventarbildes auf einem PNG-Bild:
TX1:0 TY1:0 und
TX2:65 TX2: 32
Breite:
32
Höhe:
65
Offset XY:
0
Streckung XY:
1
Pfad:
gui\gui_mission\items\b_mushrooms1.png Dieser Pfad muss auch im Eintrag der Texturbibliothek stehen.
Am Ende des Pfades
gui \ gui-mission\items\ verstecken sich insgesamt 26 Bilder im DDS Format. Jedes Bild enthält mehrere Inventarbilder,
welches man sich mit dem Programm
dxtbmpx.EXE angesehen kann und so auch eine Vorstellung bekommt, was sich z.B. hinter den Koordinaten verbirgt.
Im Fall der Pilze ist das aber eh rein theoretisch, da ein Inventarbild noch gar nicht existiert.
Es gibt im TF-Editor Pilzbilder, welche man im Ordner
The Fall / gui / preview / buildings / b_mushrooms1.png.dds finden kann.
Entweder man legt den Pfad dahin oder man kopiert das Bild nach
gui \ gui-mission\items, habe der Übersicht halber letzteres getan.
d. Nun muss das Bild nur noch in der Texturdatenbank der GUIResourceData eingebunden werden. Dazu klickt man in der Symbolleiste den Button Texturdatenbank an und es öffnet sich das Fenster der Texturbibliothek.
Ein ähnliches Spiel wie zuvor. Ein neuer Eintrag wird erstellt und folgende Werte definiert:
Id:
1
Pfad:
gui\gui_mission\items\b_mushrooms1.png (wichtig, das Bild ist im Ordner als .dds abgelegt, es wird aber auf das .png verwiesen!), Pfad aus c muss identisch sein!
Format:
PNG
Höhe:
64
Breite:
32 (wichtig, die anderen Bilder sind ja 256x256, da sie mehrere Inventarbilder enthalten, dieses ist nur ein einzelnes deswegen 64x32)
Typ:
Transparent
Jetzt sollte das Bild verankert sein und im Spielerinventar sichtbar sichtbar sein.
4. Als nächstes wird das
3d-Modell in der Zeile
objects.set_attribute(object='SET_MUSHROOMS_1', attribute="resource3d", value='RES3D_TRES_OBJECTS_BUILDING_MUSHROOMS_1') abgefragt.
In der Datei
scripts / objectdata / items.py werden die 3d-Modelle der Items geladen. Da es die Pilze aber nur im Editor gibt, müssen sie unter
'RES3D_TRES_OBJECTS_BUILDING_MUSHROOMS_1' durch folgende Zeilen analog zu den anderen hinzugefügt werden:
Code: Select all
add_3d_item_data(typeid='RES3D_TRES_OBJECTS_BUILDING_MUSHROOMS_1')
objects.set_attribute(object='RES3D_TRES_OBJECTS_BUILDING_MUSHROOMS_1', attribute="diff3d_file", value="objects\\additionals\\thefall\\misc\\mushrooms1.diff3d")
objects.set_attribute(object='RES3D_TRES_OBJECTS_BUILDING_MUSHROOMS_1', attribute="states", value=['TRES_OBJECTS_BUILDING_MUSHROOMS_1'])
Die 3d-Datei der Pilze im Editor findet sich ursprünglich unter
The Fall / objects / buildings / mushrooms / mushrooms1.diff3d . Entweder man verlinkt direkt oder man verschiebt eine
Kopie nach
The Fall / objects / additionals / thefall / misc / mushrooms1.diff3d zu den 3d-Modellen der anderen Items.
Wenn soweit alles richtig ausgeführt und alles gespeichert (Backup gemacht ?) wurde, kann man nun Pilze sammeln.

(diese müßten natürlich noch in den Zonenskripten analog zu den Kräutern plaziert werden)