Wie der Titel schon sagt funktionieren bei mir die Dialoge nicht.
Also ich geh ganz normal im CS auf Quests, erstell da ein neues Topic stell alles im ersten Reiter ganz normal ein. Dann geh ich auf Topics erstell da auch neu, geb dafür einen neuen Text, sag wer dieses Topic haben soll und des erscheint net ingame.
Nun des ungefähre Aussehen:
EditorId: Hunter
TopicText: Jäger
Info Flags #R... NPC Disposition Conditions
Die Jagd... 1 Hunter GetIsID Hunter==1
Response Text
Die Jagd ist nicht einfach, man braucht viel Ausdauer.
Result Scripts
-
Conditions
Target FunctionName FunctionInfo Comp Value
no GetIsID Hunter == 1
Wie der Titel schon sagt funktionieren bei mir die Dialoge nicht.
Also ich geh ganz normal im CS auf Quests, erstell da ein neues Topic stell alles im ersten Reiter ganz normal ein. Dann geh ich auf Topics erstell da auch neu, geb dafür einen neuen Text, sag wer dieses Topic haben soll und des erscheint net ingame.
Nun des ungefähre Aussehen:
EditorId: Hunter
TopicText: Jäger
Info Flags #R... NPC Disposition Conditions
Die Jagd... 1 Hunter GetIsID Hunter==1
Response Text
Die Jagd ist nicht einfach, man braucht viel Ausdauer.
Result Scripts
-
Conditions
Target FunctionName FunctionInfo Comp Value
no GetIsID Hunter == 1
...
Was genau funktioniert denn nicht ? Kannst du die Mod dann nicht mehr speichern, erscheinenen die Dialoge nicht ingame bei deinem Jäger usw. ?
Jedes Topic muss dem NPC auch erst hinzugefügt werden.
Dafür darfst Du jedoch im Topicfenster nicht die Funktion "Add Topic" ganz rechts im Fenster verwenden. Die ist leider verbuggt. (Add Choice kann man übrigens verwenden.)
Am besten beim Greeting im Resultscriptfenster das Topic mit folgendem Script hinzufügen:
"MeinNPCReferenz".addTopic "MeinTopic"
Oder Du bringst diese Zeile in einem anderem Script unter, damit das Topic zu einem passenden Zeitpunkt erscheint.
Kann es vllt auch sein das du am Anfang eine Condition gesetzt hast die nicht erfüllt wird?
Ich hatte z.B. ausversehen mal eine 0 anstatt eine 1 bei GetIsPlayableRace gesetzt und so hat die Quest garnicht erst angefangen.
--
If you're not too great at construction - don't worry! You can place a variety of characters in silly positions. Ihr glaubts mir nicht? Klick
Also das Hauptproblem ist erstmal, dass das Topic nicht auftaucht. Muecke49s Antwort war schon genau richtig, ich werde versuchen das noch ein wenig auszuführen.
Erstmal ein kleiner Tipp: Zu Testzwecken würde ich dir empfehlen, dass du einfach alle Conditions, die du eingegeben hast, löschst. So kannst du ganz klar und deutlich sehen, ob das Script funktioniert hat, das du geschrieben hast.
Noch ein Tipp: Es gibt eine Mod namens "Lore Dialogue 300", kennst du die? Als ich angefangen habe, Dialoge zu schreiben, habe ich mir für die technischen Aspekte einfach ein paar Mal diese Mod angesehen. Denn die Mod deckt viele Bereiche des Dialogsystems ab. Download bei TESNexus
Wenn du diese Mod im CS öffnest, wirst du bei Quests irgendwo die eine Quest finden, in der die Topics der Mod sind.
Bei dieser Mod kannst du auch gut sehen, wie das Hinzufügen von Topics funktioniert. Sieh dir dazu das Script an, das der Quest gegeben wurde (im ersten Reiter ist irgendwo so ein Scroll-Down-Menü, bei dem ein Scriptname zu sehen ist - rechts davon ist ein Button, mit dem du das Script öffnen kannst).
Du wirst sehen, dass das Script im Grunde ganz simpel ist, da immer wieder das Gleiche geschieht.
Ich habe dieses Script mal grob für dich hingeschrieben. Es sieht so aus:
Erklärungen:
1) Am Anfang wird eine Short-Variable erstellt (die den Namen DoOnce trägt, aber das ist egal).
2) Danach wird dem Script gesagt, dass es nur im GameMode laufen soll.
3) Die "If ..."-Zeile sagt im Grunde: Wenn die gerade eben erstellte Variable gleich 0 ist (wenn also noch nichts mit ihr passiert ist), dann führe eine Reihe von Befehlen aus.
4) Der letzte dieser Befehle ist "Set DoOnce to 1". Was bedeutet das? Naja, die Variable DoOnce wird auf 1 gesetzt, das heißt das nächste Mal, wenn das Script bei (3) abfragt, ob die Variable gleich 0 ist, wird es feststellen, dass dem nicht so ist, und folglich alle Befehle innerhalb der Klammer "If..."/"EndIf" überspringen. Das Skript wird also effektiv nur ein einziges Mal ausgeführt.
(5) Am Ende der Liste von Befehlen steht die "EndIf"-Zeile; die sagt, dass die darunterstehenden Befehle nicht mehr diese Bedingung erfüllen müssen.
(6) Der einzige Befehl, der darunter steht, ist der "End"-Befehl. Der sagt nur: Hier ist der Teil des Skripts, der im GameMode laufen soll, zu Ende (in diesem Fall ist das aber das komplette Skript!)
Das kannst du im Grunde direkt kopieren und als neues Script speichern.
Was passieren wird: Egal welchen NPC du ansprichst, er wird das Thema "Hunter" haben. Warum? Na weil du hoffentlich zu Testzwecken vorher alle Bedingungen von deinem Thema entfernt hast. Wenn das Thema erscheint, dann ist alles in Butter. Du kannst dann wieder die Conditions hinzufügen, so dass nur noch der eine NPC aus deiner Mod dieses Thema anbietet.
Das Skript wird also effektiv nur ein einziges Mal ausgeführt.
...
Ähnlich wie in Morrowind wird bis zum return-Statement das gesamte Script durchgearbeitet. Nur sorgt der DoOnce-Schalter dafür, dass die Operation nicht mehrfach ausgeführt wird - das Script nudelt aber fröhlich weiter (und verbraucht Ressourcen).
Problem: Dann verschwinden aber auch die Dialoge aus dieser Quest wieder.
Also, steht zumindest so beim CS Wiki, ich habs selbst noch nie ausprobiert. Machst du das so bei Dialog-Quests?
Problem: Dann verschwinden aber auch die Dialoge aus dieser Quest wieder.
Also, steht zumindest so beim CS Wiki, ich habs selbst noch nie ausprobiert. Machst du das so bei Dialog-Quests?
...
Deshalb erstellt man ja auch zwei Quests: Eine mit Script, eine ohne - und in der ohne liegen dann die Dialoge.
Grundsätzlich sollten Quests, die Dialoge haben, niemals ein laufendes Script haben. Laufende Scripts gehören immer und ohne Ausnahme in "dummy"-Quests. Erspart eine Menge Arbeit .
sry das ich solang auf mich warten lasse. ich hab ein tut durchgearbeitet in dem steht das mein Script reichen sollte (abgesehen natürlich davon das kein Topic genannt ist).
so jetzt hab ich es endlich geschafft zumindest fast, denn noch immer liegt irgenwo ein Fehler vor . wenn ich ein eigenes GREETING erstell und einen eigenen Char und dem Char des Greeting zuteile benutzt der des net, statdessen sagt er "Ich habe keine eigene Begrüßung" oder so ähnlich wenn ich es aber irgendeinem anderen Char zuteile benutzt er des weiß jemand warum?
--
Name: Feurio
Wer die Wahrheit sucht, sucht solange, bis er erkennt das sie direkt vor einem ist.
Edit: Erste Antwort gelöscht, da erst den Beitrag falsch verstanden......*schäm*
Hrmm, hat dieser NPC eine eigene Rasse? Wenn er dieses Greeting nicht nutzt, doch andere schon, dann stimmt noch irgendwas mit den Conditions nicht. Das müssen nicht mal die Conditions des Greetings sein, es können auch die Conditions der Quest sein. Wenn Du dort eine Condition mit PlayableRace eingegeben hast, kann da der Hund schon begraben liegen, falls dieser NPC keine der Vanillarassen hat, sondern eine eigens erstellte.
Check also mal die Conditions im Greeting und vor allem auch in der Quest, welche den Dialog trägt.
Conditions stimmen ich hab zum Test mal einfach einen Waldelf erstellt -> die Condition Playable Race stimmt also sonst stimmen sie auch die einzige weitere Bedinung ist nämlich GetIsId und dann ID meines Test NPC und Value ist auf 1
--
Name: Feurio
Wer die Wahrheit sucht, sucht solange, bis er erkennt das sie direkt vor einem ist.
Wenn dein Char eine eigene Rasse ist, musst du ihm bei der Race-Erstellung, ich glaube auf der ersten Seite (wenn nicht, geh die anderen Reiter durch) bei Voice, die Stimme einer Oblivion-Rasse (also Redguard oder Nord z.B.) zuordnen. Oder du machst für deinen Char eine eigene Sprach-Aufnahme, ansonsten kommt immer der unten genannte Spruch.
--
[FONT=Fixedsys]"Death smiles at us all
all we can do
is smile back"[/FONT]
Hrmm, die Quest mit dem Greeting ist auch bereits am laufen?
Wenn die Quest noch nicht aktiv ist,kann der char auch das Greeting noch nicht nutzen.
Liegt auf dem NPC ein Script oder kommt der NPC in einem anderen Script vor?
(das ist zwar weit hergeholt, doch so langsam gehen mir die Optionen aus, warum er das Greeting nicht nutzen sollte, wenn es bei anderen NPCs auch schon geklappt hat.)