Skriptthread zum Creation Kit

Dieses Thema im Forum "[Skyrim] Creation Kit" wurde erstellt von Eldarie, 2. Oktober 2011.

  1. Blaubeerman

    Blaubeerman Vertrauter

    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.
     
    doritis gefällt das.
  2. doritis

    doritis Freund des Hauses

    Hoffentlich kann da jemand schnell helfen. :oops:;)
     
  3. Thalmor

    Thalmor Neuankömmling

    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
     
  4. Hogar

    Hogar Neuankömmling

    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.
     
  5. PixelMurder

    PixelMurder Ehrbarer Bürger

    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.
     
  6. Hogar

    Hogar Neuankömmling

    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.
     
  7. PixelMurder

    PixelMurder Ehrbarer Bürger

    Fals du dich wieder einfuchst: Es gehört für mich zum guten Ton, die Sourcen für eine Mod mitzuliefern.
     
  8. Werbung (Nur für Gäste)
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden