Skriptthread zum Creation Kit

1. In der Quest-Kategorie Rechtsklick -> New.
2. ID oben links eingeben.
3. OK klicken.
4. Doppelklick auf die soeben erstellte Quest in der Liste.
5. Zum Scripts-Tab navigieren.
6. Add Script klicken und Script auswählen.
7. OK im Quest-Fenster klicken.
8. Quest erneut öffnen.
9. Im Scripts-Tab das Property-Fenster des Scripts öffnen.
10. Properties ausfüllen.
11. Im Quest-Fenster OK klicken.
12. Datei speichern.

EDIT: Deinen Edit nicht mehr gesehen.
 
  • Like
Reaktionen: Tywele
Trotzdem danke auch wenn es zu spät kam. ^^
Aber muss die Quest dann noch zu irgendetwas hinzugefügt werden, oder funktioniert die Quest auch, wenn bei der Anzahl der "uses" 0 steht?
 
Aber muss die Quest dann noch zu irgendetwas hinzugefügt werden, oder funktioniert die Quest auch, wenn bei der Anzahl der "uses" 0 steht?

Uses zeigt dir nur ob und wo die Quest verwendet wird, ob als Property oder vielleicht als Condition irgendwo, ist aber nicht relevant. Wenn deine Quest "Start Game Enabled" hat, dann sollte sie starten und je nachdem was du vor hast, etwas geschehen.

MfG Master of Worlds
 
  • Like
Reaktionen: Tywele
Hallo zusammen

Kann mir vielleicht ein erfahrener Scripter erklären wie man eine Zelle Resettet?

Ich arbeite gerade an einem Quest. Dafür gibt es eine Höhle. Jetzt ist es möglich bevor man das Quest annimmt in die Höhle zu gehen und auszuräumen. Wenn man dann das Quest annimmt ist die Höhle leer, bis auf die aktivierten Charaktere wie zB der Boss, den ich selber gemacht habe. Der soll nur erscheinen wenn ich die Quest annehme.

Ich würde jetzt gerne die ganze Höhle zurücksetzen wenn ich die Quest annehme.

Ich dachte... aber da lag ich wohl schief, das ich im Quest bei Stage 10 (Queststart) eine Property erstelle wo ich die Zelle wählen kann. Und im Papyrus Fragment dann noch CellReset.Reset() eingebe. Beim Compile nimmt er es an. Doch im Spiel merke ich keinen unterschied.

Hilfe :) Das ist sicher komplizierter für jemand der nicht scripten kann und gerade das Quest Tutorial gemacht hat hihi
 
Hallo. Ich melde mich mal wieder aus längerer inaktiver Phase zurück und sitze auch schon wieder an einem Quest-Projekt. Nun habe ich dasselbe Problem, was ich schonmal hatte, nämlich dass ich einen Actor nicht dazu bewegen kann, den Spieler nach einem Dialog anzugreifen. Beim letzten Mal hat glaube ich der StartCombat Befehl gewirkt, doch jetzt sagt er mir, dass dieser Befehl nicht existiert? Haben die da seit dem letzten Update den Befehl rausgeschmissen?? Das kann doch nicht sein! Was mache ich falsch?! Ich gebe einfach nach dem Dialog ein: "StartCombat (Game.GetPlayer())" , doch dann sagt er mir kurz und knapp: "StartCombat is not a function or does not exist" ...
 
Ich habe zwar noch nie mit Quest-Dialogen/Stages/etc. gearbeitet, aber ich kann Dir anhand der Meldung sagen, dass Papyrus ein Object fehlt, an dem es die Function ausführen kann. Soweit ich weiß gibt es dafür "akSpeaker" und "akSpeakerRef". Probier's mal so:

Code:
akSpeakerRef.startCombat(game.getplayer())
 
  • Like
Reaktionen: freezing_rain
Irgendwie spinnt bei mir jede selbst erstellte Quest rum. Vor ca. 4 Monaten lief alles wunderbar, wenn ich jetzt aber ein Spiel lade und eine der selbsterstellten Quests starten will, wird die Dialogoption für den Beginn der Quest beim entsprechenden Charakter nicht angezeigt.

Beispielsweise sollte General Tullius eine neue Dialogoption anbieten. Ich habe auch schon versucht diese Dialogoption (um das als Fehler auszuschließen) ganz ohne Bedingungen zu machen und auch schon alle Bedingungen entfernt und nur die stehen gelassen, dass Tullius derjenige ist, bei dem die Option angezeigt werden soll. Ändert alles nichts.

Das Einzige, was aber nicht immer hilft, ist in die entsprechenden Instanz zu gehen, in dem der NPC sich befindet, dort zu speichern und das Spiel dann noch einmal zu laden. Erst dann wird manchmal die Dialogoption angezeigt. Ich kapier nicht, woran das liegt. Bin mir sicher, dass das vor besagten 4 Monaten noch nicht so war.

Ich habe gerade eben auch alle Mods deaktiviert/deinstalliert. Mich würde jetzt interessieren, ob jemand eine anderen Ursache für das Problem kennt, bzw. ob noch jemand die Erfahrung gemacht hat.
 
Schon einmal mit einem neuen Charakter ohne Mods ausprobiert? Eine deinstallierte Mod ist bei Skyrim nicht gleich eine sauber entfernte Mod. Rückstände bleiben bei dem jetztigen System immer.
 
  • Like
Reaktionen: 1 Person
Ich habe gerade mit aktiven Mods nen neuen Char erstellt. Da passiert das selbe. Morgen werde ich Skyrim mal neu installieren, um es dann nochmal zu testen.

Ich habe Dawnuard nicht, aber da kann kein Zusammenhang bestehen oder?
 
Morgen werde ich Skyrim mal neu installieren, um es dann nochmal zu testen.

Ich denke das wird dir auch nichts bringen, den ich habe ein ähnliches Problem mit einem oder wahrscheinlich mehreren NPCs, nur ist es mir bisher nur bei genau diesem einen aufgefallen. Wenn du versuchst Tullius anzusprechen hat er diese Option gar nicht, ähnlich ist es bei meinem NPC. Dieser hat jedoch auch neue Greetings und spricht somit erst gar nicht mit mir, erst nach neustart des Spiels. Zuvor hatte auch alles gepasst, der einzige und größte Unterschied ist die Patchversion.

mfG Master of Worlds
 
Ich denke das wird dir auch nichts bringen, den ich habe ein ähnliches Problem mit einem oder wahrscheinlich mehreren NPCs, nur ist es mir bisher nur bei genau diesem einen aufgefallen. Wenn du versuchst Tullius anzusprechen hat er diese Option gar nicht, ähnlich ist es bei meinem NPC. Dieser hat jedoch auch neue Greetings und spricht somit erst gar nicht mit mir, erst nach neustart des Spiels. Zuvor hatte auch alles gepasst, der einzige und größte Unterschied ist die Patchversion.

mfG Master of Worlds

Danke, dass du mich bewahrt hast! ;) Jetzt kann ich mir den Aufwand sparen.

Der Fehler ist bekannt und lässt sich extrem einfach beheben, indem man einmal mit aktivierter Mod abspeichert und diesen Spielstand dann wieder lädt. Dann sollten die neuen Dialoge angezeigt werden. :)

Seltsamer Weise funktioniert das nicht immer. Ich habe gestern zum Testen einfach mal ein paar "Quests" gemacht, die nur neue Dialogoptionen einbauen. Die funktionieren teilweise auf die von dir beschriebene Weise. Wenn sie funktionieren, dann auch immer. Einzelne (dann immer genau die selben) dieser Test-"Quests" gehen aber auch nie.

Jedenfalls laufen die Quests, um die es mir ging. Jetzt kann ich die also endlich finalisieren. Danke allen! Und hoffen wir mal, dass das fix gepatcht wird.
 
Zuletzt bearbeitet von einem Moderator:
Hallo Leute,

Ich brauch nochmals eure Hilfe :)

Ich suche nach einem Script für eine Schriftrolle (bzw Zauber), der bewirkt, das der Zauber nur aus bestimmte Monster Rassen wirkt
Ich hoffe ihr könnt mir da weiter helfen, da ich momentan leider etwas wenig zeit habe, aber meine Mod gerne weiterführen würde

Grüße LindayWolf
 
Du erstellst einfach einen MagicEffect und stellst unter Target Conditions ein, welche Rassen nur betroffen sein sollen. Beispiel:

GetIsRace ArgonianRace == 1 OR
GetIsRace BretonRace == 1 OR


Beachte, dass das OR wichtig ist, da das Ziel ja nur eine Rasse sein kann.
 
  • Like
Reaktionen: LindayWolf
Der Fehler ist bekannt und lässt sich extrem einfach beheben, indem man einmal mit aktivierter Mod abspeichert und diesen Spielstand dann wieder lädt. Dann sollten die neuen Dialoge angezeigt werden. :)

Um darauf nochmal zurückzukommen. Es scheint in Sachen Quest-Erstellung leider Fehler zu geben, die man nicht so leicht umgehen kann.

Sobald man im Quest-Aliases-Tab ein Alias anlegt, werden ingame anscheinend keine Dialogoption mehr angezeigt, egal wie oft man lädt. Erst wenn man die Aliases im Creation Kit löscht oder (bei NPCs) diese per "Force Into Alias When Filled" auswählt und erzwingt, geht es.

Das hilft mir in einer selbsterstellten Quest aber nicht weiter, da ich ein Quest-Item habe, das man ja mit "Create Reference to Object", als Quest-Alias setzt. Hier irgendwas zu erzwingen führt letztlich nur dazu, dass das Item ingame nicht mehr created wird. Einziger Grund, warum dieser Quest-Alias dort exisitiert ist, dass das Item als Quest-Item geflagged sein soll.
Die Dialoge gehen erst wieder (natürlich erst nachdem man dann einmal gesipeichert und geladen hat), wenn ich dieses Item-Alias im Quest-Aliases-Tab lösche.

Einen anderen Weg, ein Item als nicht droppbaren Quest-Gegenstand zu flaggen gibt es nicht, oder?

EDIT: Hier übrigens die (englische) Diskussion im Bethesda-Forum: http://forums.bethsoft.com/topic/1399783-dialogue-no-longer-works/page__st__180
 
Zuletzt bearbeitet von einem Moderator:
Ja, das ist möglich, wenn Du die Variable als Property definierst. Danach erstellst Du einfach eine Variable vom Type Deines Skriptes in dem Skript, das auf die Variable zugreifen soll. Sieht dann so aus:

Code:
Scriptname ScriptWithVariable extends Whatever

Int Property propInt auto

Code:
Scriptname ScriptToAccessVariable extends Whatever

ScriptWithVariable scriptVariable    ; Name des Skriptes, das die variable enthält, als Type.

Event OnWhatever(...)

int ourVariable = scriptVariable.propInt
debug.notification(ourVariable)

EndEvent
 
  • Like
Reaktionen: Tywele
Irgendwie will das ganze noch nicht so richtig funktionieren. Ich kann die Scripte kompilieren, jedoch bekomme ich den Wert der Variablen aus dem ersten Script nicht in das zweite Script.

Code:
Scriptname ExhaustedOptionsMenu extends ActiveMagicEffect

Int Property IntBS Auto
Int Property IntH Auto
Int Property IntM Auto
Int Property IntS Auto

Code:
Scriptname Exhausted Extends Quest

ExhaustedOptionsMenu OptionsMenu

Event OnUpdate()
 Int BlackSight = OptionsMenu.IntBS
 Int Health = OptionsMenu.IntH
 Int Magicka = OptionsMenu.IntM
 Int Stamina = OptionsMenu.IntS
EndEvent

Das dürften alle relevanten Stellen sein. Ich weiß einfach nicht mehr weiter.