PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Release] Risen 2 Lrenter (modding)



shak-otay
04.09.2012, 12:18
Nachdem LordOfWar ja schon einen tple-Editor für Risen 2 erstellt hat, wollte ich auch nicht zurückstehen
und release hiermit den Risen 2 Lrenter, mit dessen Hilfe man NPCs und diverse Objekte klonen kann.

Außerdem können _xmsh-Files in Wavefront-obj umgewandelt werden, z.B. Obj_Shp_PlayerShip_Brk_Sailing_L1._xmsh.

Lrenter3.zip (http://www.uploadmb.com/dw.php?id=1353231964)

http://www10.pic-upload.de/thumb/19.07.12/c65t7z1ckew.jpg (http://www.pic-upload.de/view-15194142/DonPedro_beimWaschen.jpg.html)


Kurzanleitung:

TAK_NPC.lrent mit Hilfe von NicoDEs Entpacker (risenaut, 21.3.2012)
aus der projects.pak (s. R2-dir\data\common) entpacken.


Risen Lrenter starten
und TAK_NPC.lrent mit File\Open laden

Menupkt. Entities - manage

In der ComboBox neben dem save-bin-Button "Pedro" auswählen
und den Button drücken.

Dann den append-bin-Button drücken und die gerade gespeicherte
Entity Pedro.bin auswählen und "öffnen" (binäre Entity wird
an die lrent angehängt).

ok-Button drücken.

Unter File\save die lrent speichern.

Der Name wird dabei um einen Underscore ("_") ergänzt.

Diese Datei laden, Pedro (am Ende der Entities drop down list)
auswählen und den properties-Button drücken.


(Achtung: Entity No. 2 ist der Original-Pedro. Finger wech, da!)

Namen des geklonten Pedros ändern, evtl. auch Klamotten und Items.

(Items können nur ersetzt, aber nicht zusätzlich eingefügt werden!)


Bei jeder Änderung muss der Replace-Button betätigt werden.

Danach ok-Button drücken und nochmal "ok" im "manage entities"-
Fenster.

File\save

lrent nach C:\Dokumente und Einstellungen\user\Lokale Einstellungen\
Anwendungsdaten\Risen2\Config kopieren.

Unterstrich(e) entfernen

Risen2 starten (es muss kein neues Spiel begonnen werden).



Mein Dank geht - wie immer - an NicoDE für seine exzellenten Analysen
und an Baltram für entscheidende Hinweise.

Und natürlich an die Piranhas für Spiele, bei denen das Modden wirklich
Spass macht, wenn denn die Analyse-Hürde erstmal genommen wurde.

shak-otay, Juli 2012

PS: aus Gründen, die mir wohl für immer verborgen bleiben werden,
können nur an NPC-lrents entities angehängt werden.

(Ausnahme: TAK_Interact.lrent in einer projects.p00 gepackt
wird offenbar von der Vollversion akzeptiert.)

known bugs:
einige entities verursachen einen CTD beim Anhängen:
- Pref_Plank_Fence_1_1
- Obj_LS_FireBasket_1


Hinweise zu FreePoints - NUR für ERFAHRENE modder -
---------------------------------------------------

Die Aufenthaltsorte im Tagesablauf von NPCs wurden von der genome
engine über FreePoint-Objekte (FP) festgelegt.

Diese hatten einen UseType, z.B. SitCampfire, d.h. wenn ein NPC
diesen FP ansgesteuert hatte, führte er die zum UseTpye gehörige
Animation aus.

Unterschieden wurde zwischen fest zugewiesenen und "freien" FreePoints.
Die GuIDs frei verfügbarer FPts waren nicht in den Weltdaten-NPC-
Entities eingetragen.

Bei G3 besaß jede Routine genau 3 WRS-GuIDs, die die Verknüpfung zu
einen working (W), einem relaxing (R) und einem sleeping (S)
FreePoint festlegten.

Das WRS-Konzept wurde mit Risen 2 weiter flexibilisiert. Die
ursprüngliche starre Zuordnung sleeping ab Mitternacht, relaxing
zur Mittagszeit und working den Rest des Tages (haha) wurde weiter
"aufgeweicht" bzw. verbessert. D.h., es gibt Routinen mit mehr als
3 GuIDs.

Im Lrenter wird wg. der Übersichtlichkeit jeweils die erste GuID
einer Routine (z.B. "Start") mit [W] gekennzeichnet, obwohl
nicht sicher ist, ob sie tatsächlich einen working FPt "adressiert".

(Der Terminus "WRS" wird im Lrenter traditionell weiterverwendet.)

Wenn neue (= geklonte) NPCs sich realistisch in die Welt einfügen
sollen, kommt man nicht umhin, ihnen neue FreePoins zu geben,
damit sie den originalen NPCs nicht ins Gehege geraten.

In Interact-lrents befinden sich beds, benches, campfires etc.,
die FreePoints darstellen.

Bevor in die WRS-Liste geklonter NPCs FreePoints eingetragen
werden können, muss man einen FreePoint klonen.
(save-bin, append-bin; s.o.)

Nachdem man binäre FreePoints an eine lrent angehängt hat, findet
sich im log-File z.B. folgender Eintrag:

addit.Ents: 2
- GuIDs -
TAK_Obj_Int_Bench_Pir_1_L1
7368616B735F546573744D6F64000300
Obj_Int_Chest_Pir_1_L1
7368616B735F546573744D6F64000400

Der Name des FPts und die GuID muss in die FreePoints.txt
eingetragen werden.

In der combo "WRS-GuIDs from Freepoints.txt" Bench_DonPedro
auswählen und alle 5 WRS-GuIDs in der linken WRS-combo ersetzen.

Die GuIDs geklonter Entities setzen sich zusammen aus der Zahl und dem
String in der Lrenter.ini. Eine GuID besteht aus 16 Hexbytes.
Die Zahl (Word) wird vom Lrenter in GuID[14] (low word) und GuID[15]
(hi word) eingetragen; desgleichen die (max.) 14 zeichen des Strings in
GuID[0..13].

Die Zahl wird mit jeder angehängten Entity um eins erhöht, damit die
GuIDs einzigartig sind.

einige Ergänzungen:

Da Positionierungen generell fizzelig sind, habe ich G3RAMmod.exe an
Risen 2 angepasst. Mit R2RAMmod kann man dies zur Runtime des games
elegant erledigen; läuft aber z.Z. nur unter XP.

Diverse Features wie Trade- und TeachEnabled werden sinnvoller-
weise über InfoCommands (gCInfoCommandSetTeachEnabled) eingestellt.

DonPedro hört mit seiner Katzenwäsche am Barrel garnicht mehr auf,
obwohl ich in der "Start"-Routine per Lrenter ein Bett und eine Bank
eingetragen habe.

Vermutlich befindet er sich noch in der "PreStart"-Routine, aus der
man ihn "rausholen" kann, indem man ein "gCInfoCommandSetRoutine
DonPedro Start" in eine Info schreibt.

(Aber dafür warten wir noch auf einen Info-Editor.;-))

Es ist übrigens nicht vorgesehen, andere als NPC-properties zu
bearbeiten.

Bei "Obj_Int_xxx" ist der properties-Button daher disabled!