PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neue NPCs fürGothic3 -aktueller(?) Stand



Shak-otay
03.01.2008, 22:59
Neue NPCs für Gothic3 -aktueller(?) Stand der Dinge-

Hi,

wie Ihr vielleicht mitbekommen habt, ist es möglich, zusätzliche NPCs in G3 einzubauen; mit eigenen Namen, Dialogen und individuellem inventory.

Lichtwicht ist es vor Jahreswechsel sogar gelungen, einen völlig neuen NPC zu kreieren.

Bei ihm wie auch bei meiner SamMod ist es allerdings erforderlich, ein neues Spiel zu starten.
Tut man das nicht, so werden die NPCs nicht korrekt initialisiert.
edit: Bei lichtwichts neuester Version der WannaDance-Mod (0.9) ist ein Neustart nicht erforderlich, d.h. man kann vorhandene savegames benutzen.

Die allgemeine Bereitschaft, für zukünftige Mods jedesmal ein neues Spiel zu starten, schätze ich als eher gering ein - wenn es sich nicht gerade um das Questpaket von HumanForce oder einen Community-Patch handelt.

Daher habe ich mir etwas anderes überlegt, nämlich die für die Neubesiedlung befreiter Städte verwendeten "namenlosen" NPCs durch bekannte Rebellen zu ersetzen. Diesen kann man dann neue Dialoge und Quests verpassen.

Was liegt eigenlich näher, als z.B. Montera mit den Rebellen aus Okara neu zu bevölkern?
Ich hab das mal getan (siehe Screenshots), allerdings mit Gotha, weil es (für den Test) einfacher zu "befreien" ist.

(Die Köpfe und Bodies habe ich aus Faulheitsgründen nicht angepasst, daher haben "unsere Jungs" noch das Aussehen der Namenlosen.)

Ausprobieren:

- Projects_compiled.p0x in Euer G3-DATA-Verzeichnis kopieren und umbenennen (in p02 z.B., wenn es eine p01 gibt)
- Marvinmode; goto Gotha-Demon_01 (und "god" für die Feigen:-)
- Dämon erledigen und goto Roland; quatschen, bis er einen zu Shawn schickt
- mit Shawn reden und ihm 1000 Gold geben
- goto Gorn et voila, siehst Du Mannig und seine Jungs in Gotha

- umbenannte Projects-compiled.p0x wieder löschen
-> alles wieder wie vorher (bis auf eine neue Erfahrung natürlich...)

---------------------
2 Probleme gibts noch:

1. Die Originale in Okara müssen verschwinden (MoveTo unterhalb des Erdbodens - nicht nett, aber wirksam:-)
Also kein wirkliches Problem...

2. Mannig und Co sind natürlich noch an ihre ursprünglichen Quests gebunden. Wenn diese zum Zeitpunkt der Befreiung noch nicht abgeschlossen waren, führt das natürlich zu Irritationen, die der Atmo abträglich sind.
Bsp.: Fraser hat die Viecher noch nicht erlegt und konnte daher auch noch nicht nach Okara geschickt werden.
Jetzt wird Gotha (bzw. "in echt" dann Montera) befreit. Fraser spawnt in Gotha (Montera), macht seine Quest und latscht dann nach Okara, was jetzt natürlich nicht mehr sehr viel Sinn macht.

Die augenblickliche Lösungsidee geht dahin, alle betroffenen info-Files von einem GameEvent abhängig zu machen. Ziemlich viel Arbeit, sollte aber funktionieren.
edit: gecancelt; es gibt genug _NPC_02-NPCs zum Individualisieren (s. weiter Post unten)

Allerdings würde es bedeuten, dass laufende Quests nach der Befreiung gecancelt würden.

------------------
Technische Details:

In G3_Myrtana_01_Gotha_NPC_02.lrentdat

RebWarrior_01..05 ersetzt durch Candela, Fraser, Randall, Otis, Daryl
RebSmith_03 ersetzt durch Mannig
RebAlchemist_01 ersetzt durch Rakus

d.h. die GuIDs ersetzt und die Namen ("Mannig" etc.) an die String-Entry-Table angehängt
und den Stringentry-count um 7 erhöht
edit: und die Referenzen auf die Namen geändert

PS: Immer wieder wird ein G3-ModKit nachgefragt, das AFAIK mit großer Wahrscheinlichkeit nicht mehr kommen wird.

Wenn man aber sieht, wie einfach sich manche G3-Mod-Probleme lösen lassen, frage ich mich, warum sich nicht mehr Leute AKTIV am Modden beteiligen, und wenn es nur 2 oder 3 wären. (Scheinen alle beim CP-Team zu sein:-)

Shadowblade
04.01.2008, 12:46
Hmm...
ich blicke bei dem ganzen Moddingkram zwar überhaupt nicht durch, aber:
RESPEKT!
Das ist wirklich mal eine geniale Neuerung, die den Namen Mod wirklich verdient.

Also, wenn du willst kann ich dir ja ein bisschen helfen, vielleicht können wir ein kleines AddOn mit 'ner richtigen Zusatzstory auf die Beine stellen.

Weil... Quests sind doch auch möglich, oder? Und wenn man einfach NPCs umbenennen kann und an 'nen anderen Ort verfrachten kann, könnten ja hier und da ein paar Namenlose weg und an anderen Orten ein paar wichtige Quest-NPCs hin. Oder?

Humanforce
04.01.2008, 16:00
Wirklich interessant!

Die Probleme mit den Quest-NPCs gleichen allerdings einem dramaturgischen Bruch.

Bei so großen Modifikationen - das wird definitiv ein aufwendiges Verfahren - sollte ein Neues Spiel keine große Hürde darstellen.

Bin gespannt in welche Richtung du da weiter Fortschritte machst. :)


wenn es sich nicht gerade um das Questpaket von HumanForce oder einen Community-Patch handelt.Na, eine Anspielung? ;)


Weil... Quests sind doch auch möglich, oder? Jo.

EIA
04.01.2008, 16:10
Du hast es wirklich drauf! :gratz§wink

Die meisten wissen wie ich auch, nicht wie das ganze Funktioniert. ;)

Aber wenn man das ganze in einem modkit packen würde würde es sicher mehr modder geben, oder zumindestens in ein gutes Tool.

Bravo zum erfolg!

Shak-otay
04.01.2008, 21:10
Hi zusammen,

hupps, jetzt bin ich doch etwas überrascht, wie positiv der thread aufgenommen wird!

Dachte eher, jemand würde kritisieren, dass ich Okara entvölkere, wo es doch die Waffenschmiede der Rebellen ist.
(Wobei die Schmiede ja für die Story irgendwie keine Bedeutung hat - wie so vieles, leider.)



Das ist wirklich mal eine geniale Neuerung, die den Namen Mod wirklich verdient.

Na ja, ich habe nur ein paar GuIDS ausgetauscht, um die Möglichkeiten aufzuzeigen.


Also, wenn du willst kann ich dir ja ein bisschen helfen, vielleicht können wir ein kleines AddOn mit 'ner richtigen Zusatzstory auf die Beine stellen.
Danke - aber "ein bisschen" Hilfe wird da nicht reichen;-) Die Hauptarbeit liegt auch nicht im Ausdenken einer Story, sondern in der Umsetzung mit Hilfe von info/quest-Dateien.
Das ist auch nicht unbedingt mein Arbeitsschwerpunkt.


Weil... Quests sind doch auch möglich, oder? Und wenn man einfach NPCs umbenennen kann und an 'nen anderen Ort verfrachten kann, könnten ja hier und da ein paar Namenlose weg und an anderen Orten ein paar wichtige Quest-NPCs hin. Oder?

Quests: ja.
NPCs: wenn man eines neues Spiel anfängt, hat man mit nem neuen NPC alle Möglichkeiten. Wenn man kein neues Spiel anfangen will, ist es möglich, vorhandene NPCs nach der Befreiung einer Stadt (modifiziert mit Einschränkungen) zu spawnen.


Na, eine Anspielung?
Natürlich; Ehre, wem Ehre gebührt:-)


Die Probleme mit den Quest-NPCs gleichen allerdings einem dramaturgischen Bruch.
Genau: die modder müssen selbst entscheiden, welchen Weg (neues Spiel oder vorhandenes SG fortsetzen) sie gehen wollen. Bei kleineren Mods wird imho kein Spieler ein neues Spiel anfangen wollen.


Die meisten wissen wie ich auch, nicht wie das ganze Funktioniert.
Wenn man erstmal die Prinzipien des GENOME-Formats verstanden hat, ist alles garnicht soo schwer.
Ich häng' mal eins meiner files mit Analysedaten an.


Aber wenn man das ganze in einem modkit packen würde würde es sicher mehr modder geben, oder zumindestens in ein gutes Tool.
Ein Tool habe ich in Arbeit; ob's gut wird, kann ich nicht versprechen - aber es sollte den Zweck erfüllen, NPC-Klassen in lrentdats einzubauen. edit: Allerdings wird das ne ziemliche Rödelei werden mit den farbig markierten Positionen und GuIDs (12/16- bzw. 20-Byte-Folgen) im rtf.


Bravo zum erfolg!
Ich nutzte eigentlich nur die Erkentnisse über das GENOM(E)-Format, die Urban und Lichtwicht erarbeitet haben
(angefangen hat das mal mit Hans Trapp, NicoDE, mdahm, Dungeon Master, MasterEvil und etlichen weiteren Leuten).

bis demnächst,
shak-otay
.

lichtwicht
06.01.2008, 18:04
nur so als Idee, hast du mal mit dem Info-Kommando "SetSectorStatus" rumprobiert? (damit werden die Städte befreit)
vielleicht könnte man so eine "neue" .lrentdat einbauen("aufrufen") ohne neuzustarten???

Shak-otay
06.01.2008, 20:23
Gute Idee!
Werde gleich mal *Gotha_NPC_02.lrentdat in *Nemora_NPC_02.lrentdat umbenennen, kopieren und Nemora befreien.

Wenn Du recht hast, sollten dann in Gotha die rebuild-Rebellen spawnen.

Na, da bin ich ja mal gespannt...

edit: Na ja, in Gotha war keine Sau mehr zu sehen (ausser Gorn).
Bei "goto Russel" gabs dann nen Guru:

gCNavigation_PS::OnEnterProcessingRange - Floordetection for NPC:FreeSlave_02/03 failed!

Den kriegt man vllt weg, wenn man die Koordinaten der beiden Slaves ändert. Aber damit spawned wahrscheinlich immer noch niemand in Gotha.

edit2: Ich hab in _Montera_NPC_01.lrentdat Basir, Marik und Bradley neue Namen gegeben. Gibt den gleichen Guru (Floordetect failed) wie oben für Yorik und Sanford,
wenn man kein neues Spiel anfängt (was man bei geänderten _NPC_01.lrentdats offensichtlich tun muss!)

Muss ich mal länger drüber nachdenken...

gamehero
12.01.2008, 14:40
Ich muss sagen, eine verdammt gute idee, und da du es noch umsetzen kannst, erst recht;)

Kurzer
12.01.2008, 19:33
Wie man auf sowas kommt^^. Ziemlich gute Idee, finde ich. In Gothic 3 insgesamt gibt es eh zu viele "Namelose", da kann man das Spiel richtig erweitern! Kann man dazu auch eine Sprachausgabe machen? Oder ist das (derzeit noch) nicht möglich?

Shak-otay
12.01.2008, 20:00
... Kann man dazu auch eine Sprachausgabe machen? Oder ist das (derzeit noch) nicht möglich?

Im Prinzip kein Problem, man muss nur .ogg-Files erstellen; mit Audacity z.B.

Allerdings: nicht einfach, das wirklich gut zu machen. Es reicht nicht, einfach irgendjemanden ins Mikro sprechen zu lassen.

Ausserdem ist der Aufwand des Moderstellens schon groß genug; mir reichen Untertitel. (Auch wenn ich für meine SuM-Mod ein paar Soundfiles zusammengeschnipselt hatte.)

Wenn Ihr Sprachausgabe wollt, dann wartet mal auf die Vertonung von HumanForce's Questpaket.

Gruß,
shak-otay

gothic3
13.01.2008, 16:30
Packst Du auch ein paar Mädels mit rein?

Shak-otay
13.01.2008, 17:53
Packst Du auch ein paar Mädels mit rein?

Ähm, ja, mal gucken. Das ist etwas aufwändiger und ich bin gerade ziemlich beschäftigt - kann also noch dauern.

Kannst Dir ja erstmal lichtwichts WannaDance-Mod ver 0.8 (upps, schon 0.9) angucken.

Gruß,
shak-otay

Shak-otay
17.01.2008, 20:59
Ja, wie's aussieht, werden neue Bodies für die Rebuild-NPCs (aus den _NPC_02.lrentdat's) nur vom Game angenommen, wenn man ein neues Spiel startet.

Ursache dafür dürfte sein, dass diese NPCs schon zum Spielstart initialisiert werden. Das erkennt man daran, dass man in Gotha ein "goto FreeSlave_01" durchführen kann, auch wenn er noch garnicht gespawnt wurde. D.h. diese Init-Daten landen dann natürlich auch im ersten Savegame.

Namen ändern und individuelle Dialoge zuweisen kann man natürlich trotdem ohne Neustart.

Aber, ich habe schon eine weitere Lösung gefunden (wieder super einfach, man muss nur etwas nachdenken:-)

Und zwar: *_NPC_02.lrentdat umbenennen in _NPC_01.lrentdat und die GuIDs aller NPCs ersetzen (ich hab in der BenErai_NPC_02.lrentdat allerdings nur 4 Nullbytes eingefügt für 4 NPCs), ausserdem in G3_Hero_Body_NomadNovice.fxa (und *.FXA) "NomadNovice" durch "Druid" ersetzt. Ergebnis (mit vorhandenem SG getestet) siehst Du im Anhang.

edit: Das schlampige Ändern der GuIDs war nur für einen schnellen Test; normal muss man natürlich Pseudo-GuIDs benutzen (s. Replacer).

Problem: Sancho und Konsorten haben die Jungs natürlich gleich massakriert. (tja, was spawnen die da auch zur Unzeit und nur zu Viert?;-)
Ok, da ich fair bin (meistens jedenfalls), werde ich noch ihre Positions verändern (hoffentlich wird das ohne Neustart akzeptiert).
edit: versprochen ist versprochen: die 4 Jungs stehn jetzt aufm Berg (da kann ihnen keiner was); Druid-Klamotten haben sie auch. Scheint zu funktionieren; allerdings: warum steuern sie abends nicht ihre Sleeping-Points an?
(*** Weiss jmd., der BenErai befreit hat, ob der NomadNovice_06 abends pennen geht?)
edit: Hat sich geklärt; s. lichtwichts Post vom 19.1.

Jetzt könnte man alle(?) Rebuild-NPCs individualisieren (Inventory habe ich allerdings noch nicht getestet), vorausgesetzt, man findet genügend geeignete Verzeichnis für die "neuen" _NPC_01.lrentdats.

Selbst ausprobieren: die ..._NPC_01.lrentdat aus dem Zip kopieren nach

Euer_G3_Dir\Data\
projects_compiled\G3_World_01\
Nordmar\FireClan_City\
G3_Nordmar_01_FireClan_NPC_01\G3_Nordmar_01_FireClan_NPC_01.lrentdat

So, jetz muss ich nur noch den Replacer updaten, damit wir ein paar Jungs in Mädels "transformieren" können;-)

Gruß,
shak-otay

edit: das mit den Bodies hätte eigentlich garnicht funktionieren dürfen, weil ich die positions der Body-Entity nicht geändert habe (minimalistisch, wie ich meist vorgehe). Na ja, die engine wird schon meckern, wenn ihr was nicht passt.
*** Für eigene Experimente ist es aber nervenschonend, wenn man vor dem Ausprobieren selbstgeänderter *.lrentdats diese durch das TinyHexer-Script von Urban/lichtwicht schickt.
.

lichtwicht
19.01.2008, 18:32
Euer_G3_Dir\Data\
projects_compiled\G3_World_01\Nordmar\FireClan_City\G3_Myrtana_01_FireClan_NPC_0 1\G3_Myrtana_01_FireClan_NPC_01.lrentdat
du meintest bestimmt Nordmar ?

desweiteren ist deine angehängte Datei (wohl) das Original(G3_Varant_01_BenErai_NPC_02.lrentdat)...die Nomaden sind in der Stadt und haben keine Druidenrüstung! (bei mir)

ich möchte (wieder) dringend zu bedenken geben, daß doppelt verwendetete GUID's zu Guru/Crashes führen!

-----

der SleepingPoint vom NomadNovice_06(aus deiner Fireclan-lrentdat) ist NICHT in der NavigationMap.xnav, ich gehe davon aus, daß es sich hierbei um einen "allgemeinen Point"(die nirgens definiert werden, wahrscheinlich könntest du stattdessen auch 20*00 angeben) handelt, diese allgemeinen Points haben (wohl) keine Positionsdefinition.
(Altes SaveGame von mir, bestätigt diese Theorie: Ben Erai ist befreit; hin-teleportiert; bis Mitternacht geschlafen; vorm NomadNovice_06 'ne Weile gewartet...er bleibt gemütlich vorm Lagerfeuer sitzen(wo er auch tagsüber ist)...)

-----

ich war (trotzdem) mal so frei und habe deine(Benerai-NPC-02) lrentdat auf "meine Weise" eingebaut...(siehe Anhang)
(wie gesagt man(du?-) müßte dringend noch neue Hashes in der lrentdat vergeben...)
damit stehen (bei mir) die 4 NPC's sofort (bei laden jeglichen SaveGames) zur Verfügung...

hat man BenErai schon befreit gibt's die Nomaden halt doppelt
und wenn nicht gibts haue

-----

Allerdings habe ich dabei ein (RIESEN-)Problem festgestellt!
"lustigerweise" habe ich anscheinend intuitiv den einzig möglichen Namen für das "neu-einfügen" einer lrentdat gefunden.
soll heißen: G3_Gebiet_01_Stadtname(_City/Outdoor)_NPC_perm
Ich habe hier mal zwei Variationen versucht...-> die lrentdat(das Verzeichnis) wird nicht benutzt!!!(die NPC's sind nicht da!)
Das würde (zumindest vorerst) bedeuten, daß man NUR EINE weitere lrentdat pro "Stadt"(Verzeichnis) einbauen kann!!!

gruß lichtwicht

Shak-otay
19.01.2008, 21:33
du meintest bestimmt Nordmar ?

upps, logisch. (Danke:-)


desweiteren ist deine angehängte Datei (wohl) das Original(G3_Varant_01_BenErai_NPC_02.lrentdat)...die Nomaden sind in der Stadt und haben keine Druidenrüstung! (bei mir)

Der Replacer ist bald fertig; dann sollte das mit den Bodies immer funktionieren (beim Verschieben nach Okara war der Nomad-NPC einmal unsichtbar, jetzt gehts wieder. Keine Ahnung, woran das lag...)


ich möchte (wieder) dringend zu bedenken geben, daß doppelt verwendetete GUID's zu Guru/Crashes führen!

Weiss ich doch;-) Die momentane Replacer-Version (wenn Du Dir den mal anguckst) vergibt doch schon unique IDs. Hatte hier nur mal auf die Schnelle das erste Byte der GuIDs auf 0x00 gesetzt. (Du scheinst eh der Einzige zu sein, der die *.lrents mal ausprobiert:-)


der SleepingPoint vom NomadNovice_06(aus deiner Fireclan-lrentdat) ist NICHT in der NavigationMap.xnav, ich gehe davon aus, daß es sich hierbei um einen "allgemeinen Point"(die nirgens definiert werden, wahrscheinlich könntest du stattdessen auch 20*00 angeben) handelt, diese allgemeinen Points haben (wohl) keine Positionsdefinition.

Ja, danke. (Der Point wird in ca. 10 lreentdats incl. SysDyn benutzt (Malir), aber wie Du schon sagst, gehört zu keinem FreePoint.)


ich war (trotzdem) mal so frei und habe deine(Benerai-NPC-02) lrentdat auf "meine Weise" eingebaut...(siehe Anhang)
(wie gesagt man(du?-) müßte dringend noch neue Hashes in der lrentdat vergeben...)
damit stehen (bei mir) die 4 NPC's sofort (bei laden jeglichen SaveGames) zur Verfügung...

Ich gucks mir mal an. (Bei mir stehen die Nomaden mit Druiden-Rüstung auf dem Berg; s. Bild in meinem letzten Post).


Allerdings habe ich dabei ein (RIESEN-)Problem festgestellt!
"lustigerweise" habe ich anscheinend intuitiv den einzig möglichen Namen für das "neu-einfügen" einer lrentdat gefunden.
soll heißen: G3_Gebiet_01_Stadtname(_City/Outdoor)_NPC_perm
Ich habe hier mal zwei Variationen versucht...-> die lrentdat(das Verzeichnis) wird nicht benutzt!!!(die NPC's sind nicht da!)
Das würde (zumindest vorerst) bedeuten, daß man NUR EINE weitere lrentdat pro "Stadt"(Verzeichnis) einbauen kann!!!

gruß lichtwicht
Sowas habe ich mir fast schon gedacht. Staune immer nur wieder, was Du alles rauskriegst:-)

salute,
shak-otay