Skriptthread zum Creation Kit

Ich habe das Problem, daß mir ein Skript aus "Beyond Reach" (SSE) das Log zumüllt und möglicherweise auch sonst einige Unruhe stiftet. Die Meldung sieht so aus:


[04/26/2017 - 01:27:20PM] error: Cannot call Cast() on a None object, aborting function call stack:
[ (0C2896F9)].ArnimaLoopSpellScript.onBeginState() - "ArnimaLoopSpellScript.psc" Line 74
[ (0C2896F9)].ArnimaLoopSpellScript.GotoState() - "Form.psc" Line ?
[ (0C2896F9)].ArnimaLoopSpellScript.OnLoad() - "ArnimaLoopSpellScript.psc" Line 42

Scriptname ArnimaLoopSpellScript extends ObjectReference


{Script that fires a spell at a target in random intervals.}

import utility
import weapon
import debug

bool Property Looping auto hidden
float Property WaitTimer Auto hidden
float Property WaitTimer2 Auto hidden
float Property WaitTimer3 Auto hidden
int property prereqStageOPT = -1 auto
Objectreference property TargetObj auto
Objectreference property Source auto
Objectreference property Source2 auto
Objectreference property Source3 auto
Objectreference property Source4 auto
Objectreference property Source5 auto
Objectreference property Source6 auto
quest property myQuest auto
Spell property Firedspell auto
float property lowerlimit auto
float property upperlimit auto
float property lowerlimit2 auto
float property upperlimit2 auto
float property lowerlimit3 auto
float property upperlimit3 auto


Event Ontriggerenter(objectReference triggerRef)
if prereqStageOPT == -1 || MyQuest.getStageDone(prereqStageOPT) == 1
Looping = TRUE
GoToState("FireLoop")
endif
endEVENT

Event Onload()
if prereqStageOPT == -1 || MyQuest.getStageDone(prereqStageOPT) == 1
Looping = TRUE
GoToState("FireLoop")
endif
endEVENT



Event Onunload()
Looping = FALSE
GoToState("Waiting")
endEVENT



auto state Waiting
;Waiting...
endstate


state FireLoop
EVENT OnBeginState()
;trace("DARYL - In 'FireLoop' State")
;Looping = TRUE
;trace("DARYL - Setting 'Looping' to " + Looping)
While(Looping)
;trace ("DARYL - Entering WHILE loop and waiting " + waitTimer + " seconds before firing.")
waitTimer = randomFloat(Lowerlimit, UpperLimit)
waitTimer2 = randomFloat(Lowerlimit2, UpperLimit2)
waitTimer3 = randomFloat(Lowerlimit3, UpperLimit3)

;trace ("DARYL - Now setting the WaitTimer to " + waitTimer)
wait(waitTimer)
if (self as ObjectReference).IsEnabled()
FiredSpell.Cast(Source, TargetObj)
FiredSpell.Cast(Source2, TargetObj)
wait(waitTimer2)
FiredSpell.Cast(Source3, TargetObj)
FiredSpell.Cast(Source4, TargetObj)
wait(waitTimer3)
FiredSpell.Cast(Source5, TargetObj)
FiredSpell.Cast(Source6, TargetObj)


;trace ("DARYL - Marker isn't loaded, no longer firing")
else
;trace ("DARYL - Marker isn't loaded, no longer firing")
Looping = False
endif
endWhile
goToState("Waiting")
endEvent
endstate

Läßt sich rauskriegen, wo da der Wurm drin steckt und warum das Skript läuft, obwohl ich garnicht im Gebiet der Mod bin?
Und gibt es eine Möglichkeit das zu stoppen?

Bye, Bbm.
 
  • Like
Reaktionen: doritis
Hallo Leute,
ich habe ein kleines bzw. riesengroßes und nerviges Problem mit einem Dialogscript, sitze seit einige Stunden dabei und krieg es einfach nicht gebacken.
Ich wollte in ein Gespräch einige Überzeugungsversuche unterbringen (Überreden und Einschüchtern).

Also bin ich dem Tutorial auf der Creation-Kit-Wiki gefolgt und habe beim Dialog bei "Begin" folgenden Script eingegeben:
pFDS.Persuade(akSpeaker)

Dies hat nicht funktioniert und dabei habe ich wirklich versucht, das zu tun, was auf dieser elenden Seite stand. Das dumme ist nur, dass ich keinerlei Properties einfügen kann,
weil ich dann immer ein "Error" bekomme.

Außerdem habe ich mir mal die erste Quest der Magierakademie-Reihe angesehen "Erste Lektionen" und dort diesen Script gefunden:
DialogueFavorGeneric.Persuade(akSpeaker)

Das hatte leider ebenso wenig Wirkung gezeigt, wie meine vorherigen kläglichen Versuche.
Das blöde ist einfach, dass es nirgendwo eine Lösung zu diesem verdammten Problem zu finden gibt und ich meine sogar, diesen Script schon einmal in der Vergangenheit genutzt zu haben, wo es, wie ich glaube, funktionierte, aber da möchte ich mich jetzt nicht drauf festnageln.
Ich bin sogar auf "Add" gegangen und habe einen neuen Script mit einer Property erstellt, jedoch konnte ich bei Source und bei Begin nichts eingeben, ohne eine Fehlermeldung zu erhalten.

Das mit den Conditions dürfte meines Erachtens keine sonderlich großen Schwierigkeiten darstellen.
Da habe ich GetActorValue und daneben Speechcraft eingegeben sowie darunter Target ausgewählt, sowie es meines Wissens sein soll.
Nur der Script ist für mich ein großes Problem und das habe ich schonmal erlebt, dass ich im Spiel in irgendeinem Quest einen Script sehe, welcher da auch funktioniert, jedoch Probleme macht, wenn ich ihn dann selbst übernehmen will bzw. in meinem Quest nutze. Keine Ahnung, wieso...

Ich war eigentlich dabei eine Questmod zu erstellen und bin damit schon recht weit. Wäre ärgerlich, wenn es jetzt daran scheitern würde...
Gibt es hier irgendjemand, der sich damit auskennt und weiß, wie man dieses Problem löst?
Für Hilfe wäre ich sehr dankbar...

Gruß

Thalmor
 
Huhh! Über drei Jahre kein Post mehr? Dann scheinen alle Scriptprobleme gelöst!?
Meins leider nicht - okay ist eigentlich ein Problem mit dem CK (1.9.36.0, LE).
Wenn ich ein Script z.B. aus einer Quest einsehen will, bekomme ich immer die folgende Meldung.
upload_2020-9-19_13-12-48.png

Ich habe vor Ewigkeiten hier gelesen, daß es im CK einen Bug o. ähnl. gäbe, der das verursacht,
mich aber seit Oblivion nicht mehr mit Skripten befasst. Jetzt habe ich seit Stunden wie ein Teckel
im Dachsbau gesucht (nicht nur hier), aber nichts gefunden. Gibt es da einen Patch, den ich übersehen
habe, oder eine andere Lösung, oder bin ich zu blöd die SuFu zu bedienen?
Ich danke 'mal vorab.
 
Wenn du die Source nicht hast, kannst du das vergessen. .pex sind die kompilierten Scripte, die kannst du zwar auch ohne Source zuweisen und die Eigenschaften vergeben. Aber ohne .psc in scripts/source keine Änderung oder Einsicht in den Code möglich. Ausser du versuchst es mit einem PEX Decompiler zu dekompilieren.
 
Danke für die schnelle Antwort. Jetzt wird mir auch klar, warum die sich nicht mit einem Editor öffnen ließen.
Ich nehme mir schon seit Jahren vor, mich mal mit Papyrus zu befassen, aber da war dann immer noch eine
neue Mod...
Nochmals vielen Dank für das Licht im Dunkel.
 
Ist ja eine Weile her seit dem letzten Beitrag. Ich hoffe es findet sich dennoch jemanden der mir helfen würde.
Ich habe seit Jahren nicht mehr geskriptet und wegen meiner Arbeit fehlt mir die Zeit.

Kennt ihr das Spiel Gothic? Den ersten Teil? Dann kennt ihr sicher die Waffe "Uriziel". Seit 5 Jahren arbeite ich an einer Nachbildung der Klinge mit ein paar Anpassungen. Das Modell habe ich eigentlich so gut wie fertig, nur an der Textur hackt's noch etwas. Kürzlich habe ich substance painter für mich entdeckt, da ich im zeichnen aber eher eine Flasche bin ärgere ich mich zur Zeit noch an den Verzierungen an der Parrierstange rum. Es ist aber ein extrem grosser Vorteil wenn man direkt mit Materialien und direkt auf dem Model zeichnen kann.

Wie auch immer, das Original ist durch Magie verstärkt und kann Gegner in Flammen setzen. Meine Schöpfung möchte ich mit den Mächten von Innos, Adanos und Beliar füllen. Soll heissen es kann auf die Elemente Feuer, Frost und Schock zurückgreifen können.

Was ich nun machen möchte ist die Möglichkeit das Element als "Kräfte" wechseln zu können (magischer Effekt).

Bedienung: Uriziel muss ausgerüstet sein
Wenn die Kraft bereits in Nutzung ist: Nachricht Element bereits aktiv!

Der Edelstein soll je nach Element die Farbe wechseln, ich dachte da an Texturensets. Kann man die via Befehl tauschen?

Auf die Waffe muss natürlich noch eine Verzauberung wenn sie Elementschaden verursachen soll. Hier müsste man die bestehende Verzauberung entfernen und die neue hinzufügen.

Ich habe bereits nach vielen Jahren ein neues Spiel in Skyrim gestartet und hatte es als Zweihandwaffe immer dabei. Ich habe mir sogar den Helden aus Gothic nachgebaut...

Sollte das ganze klappen werde ich ein Video machen.
 
ich hab ja von Scripten Null Ahnung, aber wenn ich lese, was das alles machen soll, dann ist das wohl nicht ein kleines Script, sondern ein Riesenpaket, d.h. massig Arbeit.
Ob überhaupt noch jemand aktiv ist, der sowohl die notwendigen Kenntnisse, als auch die Zeit dafür hat, versehe ich mal mit einem großen Fragezeichen.
 
Bedaure, für Morrowind könnte ich dir das sehr schnell basteln, aber Skyrim arbeitet anders. Wenn dir hier keiner mehr helfen kann, wirst du dich im englischsprachigen Raum umhören müssen. Die sind noch deutlich aktiver.
 
Bedaure, für Morrowind könnte ich dir das sehr schnell basteln, aber Skyrim arbeitet anders. Wenn dir hier keiner mehr helfen kann, wirst du dich im englischsprachigen Raum umhören müssen. Die sind noch deutlich aktiver.
ja, dabei empfehle ich Reddit, dort habe ich öfters gute Hilfe von Usern aus dem asiatischen Raum erhalten, im Gegensatz zu den "großen" Foren bei Steam oder Nexus.
 
Habe mal wieder mit meinem "Lieblingsthema" zu tun, und es funktioniert mal wieder nicht wie es soll!

Ich kriege es einfach nicht compiliert, obwohl ich es genau so abgeschrieben habe, wie DF127 es vorgegeben hat.

_________________________________________________________________

Scriptname DestTeleportspell extends ActiveMagicEffect

ObjectReference Property Loc01 Auto

EventOnEffectStart(Actor akTarget, Actor akCaster)
Utility.Wait(1.5)
Game.FadeOutGame(False, True, 2.0, 1.0)
Game.GetPlayer().MoveTo(Loc01)
Game.EnableFastTravel()
Game.FastTravel(Loc01)
EndEvent

__________________________________________________________________

Falls es jemand compilieren kann würde ich mich über die fertig compilierte Version freuen, da ich schon vermute, dass irgendwas systemisch auf meinem PC nicht funktioniert. Wie auch immer die Hilfe am Ende aussieht, DANKE im Voraus!

Edit: Hat sich erledigt, hat jetzt funktioniert, allerdings habe ich das script im 1. kommentar des videos kopiert!
 
Zuletzt bearbeitet: