Construction Set Merchant Chest Problem - Auch persönliches Inventar des NSC kaufbar

Andy1967

Reisender
Ich hab vor kurzem angefangen mich mit der Erstellung von NSC Packages zu beschäftigen und hab jetzt ein kleines Problem:

Ein NSC soll von X bis Y Uhr Waren verkaufen. Soweit kein Problem. Zu einer anderen Tageszeit soll der NSC auch irgendwo sitzen und etwas essen. Auch kein Problem. Ich erstelle ein Eat Package und lege dem NSC was essbares ins Inventar, damit er nicht anfängt wild in der Gegend nach Nahrungsmitteln zu suchen.

Jetzt taucht aber dieses Nahrungsmittel auch auf der Verkaufsliste des NSCs auf, obwohl es nicht in der entsprechenden Merchant Chest ist (und Ingredients nicht als potenzielle Waren bei der AI angekreuzt sind), zumindest wenn ich mit meinem regulären SC teste, der Handelsgeschick hoch genug hat um bei jedem alles zu kaufen und zu verkaufen. So hatte ich mir das eigentlich nicht vorgestellt.

Ich könnte natürlich auch einfach das Eat Package rausschmeißen, aber ich wurde Abends gerne die Dorfschänke auch mit ein paar Leuten bevölkern die mehr als nur flüssige Nahrung zu sich nehmen. :D

Gibt's da einen Kniff mit dem ich das abstellen kann, oder überseh ich als "Frischling" hier nur grade was offensichtliches? Würde mich freuen wenn mir hier jemand einen Fingerzeig in die richtige Richtung geben könnte. :)
 
Für eine Animation ist es normalerweise unerheblich was der NPC im Gepäck hat oder nicht. Der isst ja nicht genau das Nahrungsmittel, das er im Gepäck hat, sondern es wird immer das Brot, oder was auch immer das sein soll benutzt. Man kann einen NPC auch Krähenfüße essen lassen, muss dazu nur ein passendes Anim-Objekt erstellen.

Nur die vanilla Eat-Idle hat die eine Bedingung, dass der NPC einen essbaren Gegenstand nutzen muss, damit die Animation ausgeführt wird. Deswegen brauchen die NPC ein Objekt aus der Rubrik Ingredient dazu.
Du könntest eine neue ID im Idle-Manager anlegen, dort die eat.kf zuweisen und mit eigenen Bedingungen versehen, so dass der NPC nach deinem Gusto agiert und kein Nahrungsmittel im Gepäck benötigt. Das Ganze muss auch nicht mit einem Eat-Package verknüpft werden. Aber Achtung, eine neue Eat-ID ohne Bedingungen und ganz Cyrodiil würde nur noch essen. :lol:

Ob es bei Händlern noch eine Möglichkeit gibt, dass die essbaren Gegenstände nicht in seinem Inventar auftauchen, weiß ich auch nicht. Man kann doch bei Buys / Sells im AI Menü des NPC anhaken was gehandelt wird. Wenn da kein Häckchen bei Ingredients ist, solle der damit doch nicht handeln - sprich nicht für den Spieler anwählbar sein. Ich hab noch nie einen Händler erstellt, kann deswegen dazu nicht viel sagen.
 
  • Like
Reaktionen: Andy1967
Also das Problem liegt wohl irgendwie an der hohen Handelsgeschick Fähigkeit des Charakters mit dem ich da teste. Mit einem "sauberen" frischen erste Level Char passiert es nicht. Keine Ahnung wa sich da grade wie beisst. :?

Aber eins musst Du mir bitte erklären (da 90%+ meiner Modding Erfahrung im Interior Design besteht und ich mich hier auf völligem Neuland bewege): Wenn ich eine neue Eat-ID ohne Bedingungen hätte, warum sollten dann plötzlich alle anfangen ständig nur zu essen? Die haben doch alle ihre Packages die zumeist mit ganz anderen Targets und Animationen verknüpft sind. Das müssen sie doch erst mal machen bevor sie sich um andere Dinge Gedanken machen. Oder vesteh ich da grad irgendwas falsch?
 
Wenn ich eine neue Eat-ID ohne Bedingungen hätte, warum sollten dann plötzlich alle anfangen ständig nur zu essen?

Nicht verwechseln mit einem Package, das hat erstmal nichts mit einer Idle-Animation zu tun. Wobei natürlich die Packagetypen Eat und Sleep mit den jeweiligen Idles verküpft sind. Man braucht keine Packages um Animationen abzuspielen. Ein Eat-Idle, oder sonst eine Animation die Idle-Manager (Gameplay > Idle Animations) angelegt ist, wird für jeden NPC benutzt. Nur durch Bedingungen und durch die prioritätsmäßige Anordnung der ID´s wird verhindert, dass eine Animation ungewollt ausgeführt wird. Es gibt ja keinen Befehl, um einen NPC direkt eine bestimmte Animation ausführen zu lassen, man kann nur mit PickIdle sagen, überprüfe jetzt alle vorhandenen Animationen. Dann wird eben die ausgewählt, deren Bedingungen zutrifft. Die Engine feuert diesen PickIdle-Befehl aber auch in gewissen Zeitabständen selbständig ab. Wäre nun eine Animation ohne Bedingungen dabei, würden alle NPC, nur noch diese ausführen.

Ich hatte mal für einen NPC, der ins Gebüsch pinkeln sollte, eine Animation erstellt und zu Testzwecken keine Bedingungen rein gemacht. Glaub mit, das war ein grotesker Anblick im Spiel, selbst Kämpfe wurden unterbrochen, weil alle mal dringend mussten. :lol:
Wäre das nun die Eat-Idle gewesen, hätten eben alle gegessen, zu allen möglichen Zeiten und Situationen. Ob die nun gerade Packages am Laufen haben oder nicht, ist unerheblich.
 
  • Like
Reaktionen: Andy1967
Okay, ich werd mal schaun ob ich das hinkriege, sobald ich mit ein paar anderen Sachen durch bin die auch noch zu machen sind. Ich denk mal ich werd zu Testzwecken dem "brotlosen Essen" als Bedingung eine Factionzugehörigkeit zuweisen und eine selbsterstellte Faction abfragen die nur meine Dorfbewohner bekommen werden. Dann sollte der Rest von Cyrodil eigentlich außen vor bleiben. Das ist zumindest der einzige Weg der mir spontan einfällt mit möglichst wenig Condition Abfragen ans gewünschte Ziel zu kommen.