Autor Thema: FNV Modding - Allgemeine Fragen  (Gelesen 70653 mal)

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #20 am: 25. November 2010, 19:55:49 Uhr »
Ich bin hier gerade Alleinherrscher, deswegen mache ich einen Tripplepost.

Einer meiner erstellten NPCs will einfach nicht im Spiel auftauchen. Im GECK ist er korrekt platziert und ein Navmesh gibt es auch. Trotzdem taucht die Figur nicht in der Map auf. Jemand 'ne Idee, was schief gegangen sein könnte? Irgendeine NPC Einstellung o. ä.?
only when you no-life you can exist forever, because what does not live cannot die

Offline Metzger

  • Paladin
  • Beiträge: 719
  • Rattendompteur
    • Terminal 47 - Die LCARS-Datenbank
Re: FNV Modding - Allgemeine Fragen
« Antwort #21 am: 25. November 2010, 20:03:03 Uhr »
Gib ihm mal ein Package, vielleicht ist er ja dann dort wo er sein sollte. Ist er in einem interior oder exterior? Bei exterior kann es manchmal vorkommen dass sie sich auf eine andere navmesh begeben wenn die Zellen nicht richtig verbunden sind.

edit: sieh nach ob er eine actorbase verwendet. Wenn ja, dann deaktivieren.
« Letzte Änderung: 25. November 2010, 20:05:19 Uhr von Metzger »

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #22 am: 27. November 2010, 00:07:50 Uhr »
Ah, danke. Es hat ein AI Package gefehlt... Ich hab schnell ein eigenes reinimprovisiert und jetzt sehe ich den NPC im Spiel.

Blubb, wieder eine Frage. Meine neuen NPCs rennen die ganze Zeit hin und her, so wie ich es ihnen im AI Package gesagt habe. Problem ist jetzt, dass das aber ziemlich doof aussieht. Alle wuseln ununterbrochen hin und her, nähern sich einem Idle Marker, benutzen den Idle Marker und rennen dann sofort wieder hin und her. Gibt es da eine Möglichkeit, das alles etwas besser zu timen oder zu sagen, dass die NPCs nur alle X Zeit ein paar Meter herumlaufen sollen?
only when you no-life you can exist forever, because what does not live cannot die

Offline Metzger

  • Paladin
  • Beiträge: 719
  • Rattendompteur
    • Terminal 47 - Die LCARS-Datenbank
Re: FNV Modding - Allgemeine Fragen
« Antwort #23 am: 27. November 2010, 00:41:16 Uhr »
Du kannst unter AI Data die Energy runterstellen. Dann lassen sich die NPCs mehr Zeit bei ihren Aktivitäten. Oder du erstellst ein Patrol-Package mit festgelegten Wegpunkten und Animationen. Du kannst aber auch beim Idlemarker das Idle Timer Setting höher stellen. Oder du erstellt mehrere verschiedene, auf einander abgestimmte Packages, oder eine Mischung aus allem. Gibt einige Möglichkeiten, kann aber unter Umständen sehr langwierig werden das Ganze.

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #24 am: 27. November 2010, 17:48:02 Uhr »
Wie genau funktioniert eigentlich das ganze Fraktionsding? Ich war der Meinung, die NPCs erkennen sich gegenseitig, wenn sie einfach nur in der gleichen Fraktion sind.. aber irgendwie ist das nicht ganz korrekt.

Hintergrund:
Ich habe diverse NPCs, die ich alle auf Unaggressiv gestellt habe. Alle sind in der selben (neu erstellten) Fraktion. Nun will ich:

1. Sobald ich einen angreife, gehen alle Amok auf mich und

2. Sobald ich in einem Dialog den Kampf auslöse, die ganze Fraktion gegen mich ist.

Nur.. weder das eine, noch das andere funktioniert. Das hier ist mein Script-Ergebnis, bei dem die Aktionen ausgelöst werden sollen:
Zitat
LexxFiendEnter.startcombat player
setEnemy PlayerFaction LexxFiendFactionQ1



(Hatte das ganze auch schon unter Result Script (End), der Effekt war aber der gleiche.

/Edit: Grad gesehen, dass "LexxFiendEnter.startcombat player" falsch ist (Referenz am Anfang muss weg). Das funktioniert also wieder. Der Rest geht noch immer nicht.
« Letzte Änderung: 27. November 2010, 17:53:22 Uhr von Lexx »
only when you no-life you can exist forever, because what does not live cannot die

Offline Metzger

  • Paladin
  • Beiträge: 719
  • Rattendompteur
    • Terminal 47 - Die LCARS-Datenbank
Re: FNV Modding - Allgemeine Fragen
« Antwort #25 am: 27. November 2010, 18:06:29 Uhr »
Damit sich NPCs gegenseitig helfen muss unter AI Data bei Assistance "help allies" oder "help friends and allies" eingestellt sein. Mit dem Wert Confidence stelltst du ein wie mutig sie sind. Bei fullhardy kämpfen sie beispielsweise bis zum Tod. Damit Fraktionen Verbrechen wie Diebstahl ahnden und dich verfolgen muss in den Fraktionseinstellungen noch "Track crime" aktiviert sein. Bei Angriffen helfen sie sich aber auch ohne gegenseitig.

Beim script musst du noch einen Wert angeben. 100 stellt komplett auf feindlich.
SetEnemy PlayerFaction LexxFiendFactionQ1 100

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #26 am: 27. November 2010, 18:20:59 Uhr »
Mhm, im GECK Wiki wird von den 100 nichts erwähnt. Ich nehme an, dass wurde in FNV geändert?

Ansonsten funktioniert es leider immer noch nicht. Die NPCs sind jedenfalls in der Faction, sind alle auf Help Friends and Allies gesetzt, etc. Trotzdem kümmert es ihnen ein Scheiß, wenn ich jemanden von ihnen umschieße oder die Fraktion als Feind via Dialog setze.
only when you no-life you can exist forever, because what does not live cannot die

Offline Metzger

  • Paladin
  • Beiträge: 719
  • Rattendompteur
    • Terminal 47 - Die LCARS-Datenbank
Re: FNV Modding - Allgemeine Fragen
« Antwort #27 am: 27. November 2010, 18:50:41 Uhr »
Hmm, hab das damals bei Claw Peak schon so gemacht und da hats funktioniert. Gerade noch mal getestet, haut einwandfrei hin. Hast du die Fraktion auch mit sich selber auf Friend gesetzt? Hier mal ein Bild. Die Waste Trek Company ist hier mit sich selber Friend 100. Im Wiki steht zwar nix von den 100 beim script, hab das irgendwo anders mal gelesen. Ohne hats bei mir nie funktioniert. Die 100 im Script ändern eben die Einstellung bei den Interfaction Relations.

« Letzte Änderung: 27. November 2010, 18:56:16 Uhr von Metzger »

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #28 am: 27. November 2010, 19:47:50 Uhr »
Oh man, daran hat 's gelegen. Wusste nicht, dass ich die eigene Fraktion auch noch als Freund mit hinzufügen muss... Macht jetzt natürlich Sinn, aber darauf soll erstmal einer kommen.

Die Fraktion habe ich jetzt einfach als Freund eingebaut, ohne einen Modifikator einzustellen. Funktioniert so wie es sollte.


Gleich mal eine weitere Frage hinterher... (geht schneller wenn ich frage, als wenn ich erst selbst viele Stunden lang versuche, alles herauszufinden :>) Wie funktioniert das Setzen und Abfragen von Variablen zwischen einem NPC und einem anderen NPC? Wo und wie definiere ich die Variablen, etc.?
only when you no-life you can exist forever, because what does not live cannot die

Offline Metzger

  • Paladin
  • Beiträge: 719
  • Rattendompteur
    • Terminal 47 - Die LCARS-Datenbank
Re: FNV Modding - Allgemeine Fragen
« Antwort #29 am: 27. November 2010, 20:06:36 Uhr »
Variablen definierst du immer am Anfang in einem script, gleich nach dem Scriptnamen. Das kann entweder ein Questscript, Effectscript oder ein Objectscript sein, kommt darauf an wie es später verwendet wird. Es gibt mehrere Arten von Variablen, meistens braucht man aber nur die Variante short. Die ist immer an das jeweilige script gebunden, es kann also der variablenname mehrmals in verschiedenen scripten verwendet werden. Was du mit dem Abfragen zwischen NPCs meinst versteh ich nicht ganz. Varibalen können in einem Script oder als Condition abgefragt werden.

Hier mal ein Beispiel:

scn CPMephistosScript ;Name des scripts

short doonce1 ;hier werden die Variablen definiert, standardmässig sind sie 0
short doonce2
short doonce3
short doonce4
short variableA
short unasdead

Begin GameMode

If (CPUnasRefCave.GetDead == 1 && doonce3 == 0) ;CPUnasRefCave fragt ab ob Unas noch lebt und doonce3 stellt sich dass es noch nicht ausgeführt wurde
MephistoRef.AddScriptPackage 0CPMephistoTalkPC5
set doonce3 to 1 ;hier wird doonce3 dann auf 1 gesetzt damit der Abschnitt nicht wieder abgerufen wird
Endif

End

Willst du eine Variable per Condition zum Beispiel abfragen, erst Questname oder NPC-Referenz angeben

z.B.: set CPDorfbewohner.wasserbarkat to 1 ;CPDorfbewohner ist der Name der Quest in deren script die Variable wasserbarkat gesetzt ist
(das script muss mit der Quest oder dem NPC verbunden sein)

edit: Um einem NPC oder einem Objekt wie einem Stuhl eine ReferenceID zuzuweisen musst du ihn in deine Welt setzten, doppelklicken und ganz oben den gewünschten Namen eingeben. Ich häng wegen der Übersichtlichkeit immer ein REF hinten an.
« Letzte Änderung: 27. November 2010, 20:21:33 Uhr von Metzger »

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #30 am: 27. November 2010, 23:51:25 Uhr »
Danke, hat funktioniert.

Aber echt, ich schieb' hier ein Problem nach dem anderen und um alles zu lösen, brauch ich eine bis zwei Stunden. Richtig widerlich und demotivierend, vor allem, wenn man die Fehlerursache einfach nicht finden kann. Ich kann ja mal ein paar aufzählen:

1. Ich will NPCs von Fraktion 1 in Gebäude von Fraktion 2 laufen und kämpfen lassen. Laufen geht, kämpfen nicht. (Hab Fraktion 1 als Enemy von Fraktion 2 gesetzt. Hat scheinbar 0 Einfluss).

2. Ich will, dass *alle* NPCs von Fraktion 1 los laufen, nachdem ich mit einem NPC gesprochen habe.. was einfach nicht funktioniert. AI Package mit Condition setzen hat keinen Einfluss (vermutlich, weil die Energy-Werte der NPCs sehr niedrig eingestellt sind). Die AI Packages mit Script hinzufügen geht nicht, wenn ich mich nach dem GECK Wiki richte. (Ich setze das korrekt beim NPC mit dem ich rede, aber mit Reference.X geht das Script nicht).

3. Ein NPC soll mich ansprechen, was via AI Package geregelt wird. Problem: Wenn Variable X == Y ist, soll das *nicht* passieren... funktioniert nicht.

4. Wenn ich einen NPC vom Startort zum Zielort (ein anderes Gebäude, weit entfernt) laufen lasse, funktioniert das laufen. Sobald die NPCs das Gebäude betreten, sind sie einfach verschwunden, obwohl die XMarker mit Referenz korrekt platziert sind.

5. Obwohl die NPCs in Fraktion 2 jetzt korrekt angreifen, wenn ich scheiße baue, reagiert der Haupt-NPC immer noch lahm. Ich schieß zwei, drei, vier mal auf ihn, bevor er überhaupt aggro wird.

6. Ich interagiere mit einem anderen NPC (Fesseln lösen) und will in dem Moment Fraktion 2 mir gegenüber feindlich einstellen. Ich benutze den selben Script-Befehl, wie in einem anderen Dialog und es funktioniert einfach nicht, keiner reagiert darauf.

Nervt, wirklich... und wenn ich mich anstrenge, fallen mir bestimmt noch mehr Probleme ein.
« Letzte Änderung: 27. November 2010, 23:57:30 Uhr von Lexx »
only when you no-life you can exist forever, because what does not live cannot die

Offline Metzger

  • Paladin
  • Beiträge: 719
  • Rattendompteur
    • Terminal 47 - Die LCARS-Datenbank
Re: FNV Modding - Allgemeine Fragen
« Antwort #31 am: 28. November 2010, 00:17:46 Uhr »
1. Sag einfachper script sie sollen sobald sie im Gebäude sind die Feinde angreifen. Hab ich beispielsweise beim Brückekampf in Claw Peak so gemacht. Eventuell musst du das aber für jeden NPC einstellen.

Begin OnPackageEnd LexxNPCerreichtHaus
StartCombat Geger01Ref
End

2. Hmm, müsste ich sehen. So kann ich nicht viel dazu sagen, im Prinzip funktioniert es nämlich. Hab öfter mal per script Packages hinzugefügt, auch für mehrere NPCs gleichzeitig. Eventuell ist es besser wenn du es per Npc-script ausführst und nicht in einem Dialog.
3. AIPackages beeinflussen sich oft gegenseitig. Kann verwirrend sein den Fehler zu finden.
4. Navmesh fehlerhaft? Ein travelpackage ist nach dem Erreichen des Ziel fertig. Danach schaltet sich eventuell ein anderes Package ein und der NPC beamt sich dorthin um es auszuführen. Was ähnliches hatte ich auch mal. Verwendest du ein UseItemAtPackage und hast keine direkte Reference angegeben (einen bestimmten Stuhl zB) sondern ein Ziel und einen Radius, fallen die NPCs durchs Level. Ist ein bug.
5. Ein ähnliches Prob hab ich gerade selber. Leider noch keine Lösung gefunden.
6. Manchmal hilft es die AI zu reseten. Gerade dann wenn man Packages auslösen will die vorher durch eine Variable deaktiviert waren.
Referenz.ResetAI
edit: Ach ja, was mir noch eingefallen ist. Verwende für ReferenceIDs und Quests nie eine Ziffer als ersten Buchstaben. Das Geck weigert sich dann die Referenz anzunehmen.
« Letzte Änderung: 28. November 2010, 00:31:32 Uhr von Metzger »

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #32 am: 28. November 2010, 01:14:46 Uhr »
Bah, ohne dich wär' ich in 10 Jahren noch nicht fertig. Hab gerade in wenigen Minuten mehr geschafft, als in den letzten drei Stunden...

Viele meiner Probleme sind erstmal gelöst, wobei einige noch bleiben. Werde mich darum aber erst morgen kümmern. Heute bekomme ich wahrscheinlich sowieso nichts mehr auf die Reihe.
only when you no-life you can exist forever, because what does not live cannot die

Offline Kaiser Augustus

  • Highwaymanfahrer
  • Beiträge: 1.238
  • dead men tell no tales
    • Ravenmodding
Re: FNV Modding - Allgemeine Fragen
« Antwort #33 am: 28. November 2010, 18:27:06 Uhr »
- AI ist etwas buggy. Neue AI Packages werden oft nicht ordentlich aktiviert, deshalb immer bei Änderungen am AI Verhalten die AI neu kalkulieren lassen: "ActorREF.evp"  ResetAI geht auch, EVP ist aber die bessere Lösung. Außerdem gibt es in ESP Dateien oft Navmesh Probleme. Im Zweifelsfall immer schauen, ob es im ESM Format besser klappt. Grundsätzlich ist es nicht anzuraten größere Quest oder Content Mods im ESP Format zu machen. Sollten am Ende immer ESM sein, was viele Fehler unterbindet.

- Variablen müssen nicht in Scripts stehen, du kannst auch global variablen benutzen, die sind leichter objektübergreifend nutzbar. Ich verwende globals sehr oft. Ansonsten kannste dich auch auf variablen in anderen Objekten oder Quests beziehen, wenn du den entsprechenden Verweis machst: if MyNPCREF.MyVariable == X

- Um den Haupt-NPC zu fixen, könntest du nen Script anhängen, dass eine Aktion erzwingt, z.B. Begin OnHit -> Attack Player (schau z.B. die Boomer Kids Script dazu. OnHit führt zu nem Fraktionsmalus)

- Generel ist es immer empfehlenswert, sich anzuschauen, wie die Devs vergleichbare Situationen gelöst haben. So hab ich eigentlich all meine Kentnisse erarbeitet, indem ich bei den Devs abgeschaut habe.

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #34 am: 28. November 2010, 18:42:16 Uhr »
Ich lerne so gut wie immer nur von dem, was die Devs gemacht haben. :p Aber viele Sachen im GECK sind sowas von verwinkelt und versteckt irgendwo untergebracht und referenziert, dass es sehr schwer ist, das benötigte Kernelement zu isolieren, um davon zu lernen.

Habe gestern und heute viele Fehler gefixt und irgendwie umgehen können. Einige bleiben immer noch bestehen, ich bin mir aber noch nicht sicher, ob die Probleme nur Zufall waren oder nicht. Manchmal denke ich, juhu, jetzt geht es und beim nächsten Test geht es wieder nicht...

Zitat
6. Ich interagiere mit einem anderen NPC (Fesseln lösen) und will in dem Moment Fraktion 2 mir gegenüber feindlich einstellen. Ich benutze den selben Script-Befehl, wie in einem anderen Dialog und es funktioniert einfach nicht, keiner reagiert darauf.

Das Problem habe ich gelöst, indem ich in dem Moment eine Variable auf 1 setze und im Script vom NPC der daneben steht, die Variable abfrage und den Spieler angreifen lasse.

Zitat
4. Wenn ich einen NPC vom Startort zum Zielort (ein anderes Gebäude, weit entfernt) laufen lasse, funktioniert das laufen. Sobald die NPCs das Gebäude betreten, sind sie einfach verschwunden, obwohl die XMarker mit Referenz korrekt platziert sind.

Das Problem habe ich zur Hälfte gefixt. Denke ich zumindest. Soweit ich das jetzt sehen kann, laufen die NPCs zum richtigen Ort, aber ich muss *immer* die Zellen mit den NPCs betreten, sonst geht das irgendwie nicht... wieso auch immer. (Die NPCs laufen eine sehr weite Strecke zum McCarren Airport und dann ins dortige Gebäude.)

Zitat
3. Ein NPC soll mich ansprechen, was via AI Package geregelt wird. Problem: Wenn Variable X == Y ist, soll das *nicht* passieren... funktioniert nicht.

Hatte da was vergessen, geht jetzt.
only when you no-life you can exist forever, because what does not live cannot die

Offline Hunnter

  • Karawanenwache
  • Beiträge: 67
Re: FNV Modding - Allgemeine Fragen
« Antwort #35 am: 29. November 2010, 11:57:17 Uhr »
kleine Frage

ich suche jetzt schon seit ner weile nach nem schönen Fleckchen wüste,
in der ich ein abgestürztes Flugzeug platzieren will.
es sollte am besten komplett entlegen und NPC leer sein

kennt jemand zufälliger weise so einen Ort?
Rechtschreibfehler sind beabsichtigt und dienen der Aufmerksamkeitssteigerung des Lesers.

Offline Tyler

  • Heilige Granate
  • Beiträge: 5.643
  • Discord #2324
Re: FNV Modding - Allgemeine Fragen
« Antwort #36 am: 29. November 2010, 12:16:43 Uhr »
WTF?! Wieso suchst du nicht einfach weiter? Es gibt genug davon...
"Soviet radiation is the best radiation in the world."
- Artur Korneyev

First rule of gun safety: Have fun

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #37 am: 29. November 2010, 13:10:02 Uhr »
rechts der straße vom mojave outpost zu nipton gibt es schon ein stück wüste mit abgestürztem flugzeug.
only when you no-life you can exist forever, because what does not live cannot die

Offline Hunnter

  • Karawanenwache
  • Beiträge: 67
Re: FNV Modding - Allgemeine Fragen
« Antwort #38 am: 30. November 2010, 10:08:33 Uhr »
Ich hatte auch schon daran gedacht das Flugzeug weg zu machen und es (meinen Wünschen entsprechen) wieder zu platzieren.
Rechtschreibfehler sind beabsichtigt und dienen der Aufmerksamkeitssteigerung des Lesers.

Offline Lexx

  • Administrator
  • Auserwähltes Wesen
  • Beiträge: 17.726
Re: FNV Modding - Allgemeine Fragen
« Antwort #39 am: 30. November 2010, 17:51:30 Uhr »
Im Zweifelsfall immer schauen, ob es im ESM Format besser klappt.

Ironie: Aufgrund einiger echt nerviger Probleme wollte ich probieren, wie meine Quest in einer ESM funktioniert... und da kann ich die nicht mal starten. Meine NPCs usw. werden nicht mal aktiviert. :>

Echt, ich hab nur Probleme. Gerade wenn ich eins gelöst habe, taucht plötzlich das nächste auf und wenn das so weiter geht, trete ich das Ding in die Tonne. Aktuell denke ich drüber nach, nur noch die Dialoge fertig zu schreiben und dann jemand anderes wegen den Bugs drüber schauen zu lassen... Ist wohl besser für meine Gesundheit.
only when you no-life you can exist forever, because what does not live cannot die