Skriptthread zum Creation Kit

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

  1. Schmelz

    Schmelz Vertrauter

    Ich hätte einige Fragen:

    - gibt es Arrays?
    - gibt es eine Möglichkeit diese Automatisch zu füllen. (z.B. Parents)?
    - gibt es Befehle zum Ändern der Textur, oder des Modells einer Referenz?
     
  2. Kahmul

    Kahmul Angehöriger

    @adinsx: Damit meint er, dass er den Perk EagleEye30 nicht findet. Im CK-Wiki steht auch nicht, was man dort angeben muss. Versuche mal den Namen des Perks (Adlerauge) zu benutzen, auch wenn ich nicht glaube, dass es etwas ändert. Vielleicht muss man auch die FormID angeben, wozu ich leider auch keine Ahnung habe, wo man die findet, wenn es sie in dem Fall überhaupt gibt.

    @Schmelz: Hier findest Du so ziemlich alles zu Arrays. Für Textures scheint es nichts zu geben.
     
    Zuletzt bearbeitet: 10. Februar 2012
    Schmelz gefällt das.
  3. Zipacna

    Zipacna Fremdländer

    So, mein LichtschalterScript ist fertig. Es ist eine reduzierte Variante von "defaultActorEnableDisableLinkedRef" allerdings ohne "STATE Done" (Wartezeit für die Schalteranimation, in der der Activator nicht nocheinmal aktiviert werden kann solange er noch beschäftigt ist), weil's mit State einfach nicht klappt. (Vermutlich wartet der Activator sonst auf ein Feedback von der Referenz, was aber nicht kommt, da hier ja nur enabled/disabled wird und es keine Aktivierung in dem Sinne gibt die wahrgenommen werden kann.)

    Danke an dieser Stelle nochmal an Kahmul, der mich auf die Idee gebracht hat IsEnabled zu verwenden, anstatt extra eine weitere Variable für die Sensorik zu verschwenden.

    Code:
    Scriptname DisableEnableFlipFlopLinkRef extends ObjectReference  
    {
    - This script enables by first activation and disables by second activation linked ref (FlipFlop-Switch)
    - This script fires always by activation
    - Delay and Fade optional
    }
    
    bool Property Fade = FALSE auto
    {
    Fade in/out when enabled/disabled? (DEFAULT = FALSE)
    }
    
    float Property Delay = 0.0 auto
    {
    Delay before Enable/Disable (DEFAULT = 0.0)
    }
    
    ObjectReference myLinkedRef
    
        Event onActivate(ObjectReference akActor)
            myLinkedRef = GetLinkedRef() as ObjectReference
                
            utility.Wait(Delay)
    
            if (myLinkedRef.IsEnabled())
                myLinkedRef.disable(Fade)
            else
                myLinkedRef.enable(Fade)
            endif
            
        endEvent
    

    Unfassbar das ein ganzer Nachmittag draufgeht für einen simplen Flip-Flop-Schalter... :cry:
     
  4. Du musst über eine Property auf den Perk zugreifen.
     
  5. benon

    benon Abenteurer

    Kann mir einer helfen, ich habe bei einem pi einen Eimer "bucket02b" verwendet und möchte, dass man diesen nicht als gegenstand aufheben kann, sondern als Objekt sieht ohne mit ihm zu interargieren und ohne dass sich der Eimer bewegt.
    Gibt es dazu ein script?
     
  6. adinsx

    adinsx Neuankömmling

    Danke

    aber wie mache ich das mit den Properties ich steig da grad irgendwie nicht durch
     
  7. Draconis

    Draconis Reisender

    Muss man dafür nicht einfach den Eimer unter Statics einordnen? Also im ObjectWindow unter Static rechtsklick --> New --> Mesh des Eimers, Name, ... und fertig?
     
  8. benon

    benon Abenteurer

    das problem ist, der computer findet keine .nif dateien. und das ck auch nicht
     
  9. Dacri

    Dacri Vertrauter

    Die einfachste Methode ist oft die beste :oops:

    Das liegt daran dass die *.nif dateien noch in den BSA-Archiven Gepackt sind. Du musst diese Archive öffnen (Mit einem BSA-Unpacker) Und die entsprechenden *.nif files entpacken.
     
    benon gefällt das.
  10. benon

    benon Abenteurer

    Hmmm dann hat das erste mal entpacken wohl nicht gefunst...
    also nochmal, danke ;)
     
  11. o815michi

    o815michi Abenteurer

    Hallo,

    mal eine einfache Frage.
    Wo ist eigentlich der Text definiert. Im Bild (link klicken) sieht man ja z.B. "Aktueller Filter" und "Filter aktiviert". Wo kommt das her?

    Grüße
     
  12. PixelMurder

    PixelMurder Angehöriger

    Das sind Messageboxen, die findest du im CK und kannst sie dann mit Show zurückgeben.
     
    o815michi gefällt das.
  13. o815michi

    o815michi Abenteurer

    Hallo,

    Danke, gefunden.

    Sie befinden sich im Editor-Teil (Object-Window) unter "Miscellaneous/Message"

    Grüße
     
  14. PixelMurder

    PixelMurder Angehöriger

    Habe gestern mein Script für meinen Mod erweitert, hatte dann aber im Spiel ein seltsames Verhalten.

    Code:
    Message Property DRWEffectsMsgMain Auto
    
    Function MenuMain()
        int selected = DRWEffectsMsgMain.Show(EffectQuest.EffectsEnabled)
    
    Event OnEquipped(Actor reader)
         MenuMain()
    EndEvent
    Die Property zeigt im CK auf das richtige Menu, wenn ich Auto fill mache. Im Spiel wird aber anschliessend das falsche Menu aufgerufen und zwar das für Tiefenunschärfe. Ich kann mir das nur so erklären, dass das Auto im Spiel zickt. Oder gibt es sonst eine Erklärung dafür?

    Edit:
    Bin ja auch ein Vollidiot, dass ich die letzte BSA nicht gelöscht habe. Problem erledigt.
     
    Zuletzt bearbeitet: 12. Februar 2012
  15. PixelMurder

    PixelMurder Angehöriger

    Sowiet funktioniert alles in meinem Mod, allerdings merke ich, dass da doch zuviel Performance gesogen wird, wenn alle Filter aktiv sind.
    Kann das sicher teilweise begrenzen, indem ich beim Initialisieren des Mods nicht mehr alle Filter aktiviere und auf einen Default-Wert stelle. Da läuft halt doch ein Filter mit, obwohl einer keine Verstärkung der Sättigung benötigt.
    Aber im Script selbst gibt es möglicherweise ebenfalls noch Potential zur Optimierung:

    Code:
    ImageSpaceModifier[] Property DRWFxSaturation  Auto
    ImageSpaceModifier[] Property DRWFxBrightness  Auto
    ImageSpaceModifier[] Property DRWFxContrast  Auto
    ImageSpaceModifier[] Property DRWFxColor  Auto
    ImageSpaceModifier[] Property DRWFxDof  Auto
    ImageSpaceModifier[] Property DRWFxBloom  Auto
    Das hier sind Arrays von durchnummerierten Filtern: 6 Kanäle zu je 13 Filtern(=Einstellungen).
    An sich sind das ja nur Referenzen und benötigt werden im Maximal-Fall genau 6 Filter, je einen pro Kanal.
    Jetzt frage ich mich, ob ich die Arrays jeweils zur Laufzeit erstellen soll, wenn das Buch geöffnet wird und wieder auf null zu setzen, wenn es geschlossen wird.
    Stelle mir das aber relativ komplex vor, und ich habe keine Lust, für 6x13 Filter eine Ininitialisierung und Entladung zu schreiben, wenn das keinen deutlichen Vorteil bei der Performance bringt.
    Im CK kann man ja Arrays sehr komfortabel auffüllen, aber für die Automatisierung müsste es eine Schleife geben, die nach Filtern sucht, etwa GetFx("DRWFxDof" + x) Gibt es eine Möglichkeit mit erstellten Strings nach Forms zu suchen?
     
  16. Dacri

    Dacri Vertrauter

    Gibt es eine Methode, die die Tragfähigkeit des SPielers beeinflusst? Ich hab nämlich irgendwie nichts gefunden...

    EDIT: Und noch etwas: Keine Direkte Scriptfrage, aber was genau soll das Notepad alles können, wenn man es Papyrus-Fähig macht? Mehr als dass die Scripte in schönen bunten Farben hinterlegt werden passiert nämliich nicht :D Ich denke irgendetwas von einer AutoVervollständigung gelesen zu haben in dem Tutorial... Und das mit dem Compilen funktioniert auch nicht so ganz (Hab zu Testzwecken nen offensichtlichen Fehler eingebaut und auf Compile geklickt --> Nichts ist passiert).
    Welche Fehler könnte ich gemacht haben? Und sorry wegen der ungenauen Beschreibung aber in dem Tutorial dafür habe ich nicht wirklich viel verstanden :D
     
    Zuletzt bearbeitet: 12. Februar 2012
  17. PixelMurder

    PixelMurder Angehöriger

    Das hat bei mir auch nocht besser geklappt, aber die Farbunterlegung ist schon nützlich. Ich entwickle mit Notepad++, paste den Code anschliessend rüber und kompiliere im CK.
     
    Dacri gefällt das.
  18. Öffne den Papyrus Script Manager und mach einen rechtsklick=>Compile
     
  19. o815michi

    o815michi Abenteurer

    Hallo,


    irgendwie scheint es nicht so recht zu klappen.

    Ich habe folgendes script geschrieben.

    Code:
    Scriptname MR_transport_Nereleft extends ObjectReference  
    
    Message Property MR_Nereleft Auto
    objectReference property MR_TransMarkerREF auto
    
    Event OnEquipped(Actor akActor)
    
        int choice = MR_Nereleft.Show()
        if (choice == 0)
            ; nichts
        elseif (choice == 1)
            ; akActor.moveto(MR_TransMarkerREF)
                 ; utility.wait(2.5)
            game.getPlayer().moveTo(MR_TransMarkerREF)
    
        else
            ; nichts
        endif
    
    endevent
    
    

    MR_Nereleft ist eine Message.
    MR_TransMarkerREF ist die Reference auf einen TeleportMarker.

    Wenn ich den Ring im Spiel anziehe, passiert nichts. Fehlermeldungen beim "Speichern" des Scripts kommen aber nicht mehr.

    Es soll so funktionieren, das wenn man ihn anzieht man sofort nach Nereleft (zu Marker Position) teleportiert wird.

    Grüße
     
  20. Junuz

    Junuz Fremdländer

    Hallo,

    ich bräuchte auch Hilfe ich möchte eine Brücke, die durch ein Schalter aktiviert wird, erstellen und weis nicht wie man das hinbekommt.Sowas ähnliches möchte ich auch mit eine Tor und einem Schalter machen.

    Könnt ihr mir beschreiben wie man das einstellt?

    Viel Dank im vorraus

    MfG,

    Junuz
     
  21. 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