Skriptthread zum Creation Kit

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

  1. Dacri

    Dacri Vertrauter

    Normalerweise sollte es reichen, wenn du einfach im ReferenceWIndow den Schalter und die Brücke per Parent verbindest.

    Nocheinmal meine Frage: GIbt es eine Methode, die die Tragfähigkeit des SPielers beeinflusst?
     
  2. Seidenweber

    Seidenweber Reisender

    Zuletzt bearbeitet: 12. Februar 2012
    Dacri gefällt das.
  3. Dacri

    Dacri Vertrauter

    Danke danke danke! Genau was ich gesucht habe :)
     
  4. Draconis

    Draconis Reisender

    Ich stehe mit der neuen Scriptsprache wirklich auf Kriegsfuß!
    Folgendes Script habe ich einem MagicEffect zugefügt, doch der Effekt tritt einfach nicht ein:
    Code:
    Scriptname DrReEsEssential   
    
    ReferenceAlias property akTarget auto
    
    Event OnEffectStart(Actor akTarget, Actor akCaster)
    	Actor target = akTarget.GetActorReference()
    	ActorBase targetBase = target.GetActorBase()
        if (target.IsEssential())
            targetBase.SetEssential(False)
            Debug.Notification("Dieser NPC ist nicht mehr Essential")
        else
            targetBase.SetEssential()
            Debug.Notification("Dieser NPC ist nun Essential")
        endif
    endEvent
     
  5. Wenn Ich dies richtig interpretiere benötigst du lediglich eine Ziel Referenz.
     
    Zuletzt von einem Moderator bearbeitet: 13. Februar 2012
  6. Draconis

    Draconis Reisender

    Ah, danke, so langsam verstehe ich die Sprache. Nun habe ich aber noch ein letztes Problem: Die Wirkung fehlt, ich bekomme dauernd die Meldung "Dieser NPC ist nun Essential", egal ob er es vorher schon war oder nicht, wenn nicht wird er aber nicht Essential. Mein aktuelles Script:

    Code:
    Scriptname DrReEsEssential   extends ActiveMagicEffect
    
    ReferenceAlias property akTarget auto
    
    Event OnEffectStart(Actor akTarget, Actor akCaster)
    	Actor target = akTarget.GetActorReference()
    	ActorBase targetBase = target.GetActorBase()
        if (targetBase.IsEssential())
            targetBase.SetEssential(False)
            Debug.Notification("Dieser NPC ist nicht mehr Essential")
        else
            targetBase.SetEssential()
            Debug.Notification("Dieser NPC ist nun Essential")
        endif
    endEvent
     
  7. Code:
    Event OnEffectStart(Actor akTarget, Actor akCaster)
    Actor target = akTarget
    bool status = target.GetActorBase().IsEssential()
    if(status == true)
    target.SetEssential(False)
    Debug.Notification("Dieser NPC ist nicht mehr Essential")
    else
    target.SetEssential()
    Debug.Notification("Dieser NPC ist nun Essential")
    endif
    endEvent 
    
     
  8. Dacri

    Dacri Vertrauter

    DIesen Script habe ich aus dem CK-Wiki, etwas abgeändert...

    PHP:
    Scriptname RHOSCarrying   
    {Hauptskript von RHOS-Carrying}
    Event OnObjectEquipped(Form akBaseObject)
      if 
    akBaseObject as Weapon
        Debug
    .Trace("TestDebug")
      endIf
    endEvent
    Es soll immer, wenn eine Waffe irgendeiner Art angelegt wird diese Debugmeldung kommen (Der eigentliche Effekt soll dann natürlich ein anderer sein, aber ich wollte zuerst mal das Event an sich testen).
    Im SPiel tut sich allerdings überhaupt nichts, weis jemand, wieso? Vielen dank, ich bin leider in Papyrus noch nicht so drin :)

    EDIT: Mir ist gerade eine Vermutung gekommen dass das Skript garnicht läuft...In Oblivion hätte ich das ganze auf eine QUest legen müssen, muss ich das hier auch?
     
    Zuletzt bearbeitet: 14. Februar 2012
  9. CrDa

    CrDa Fremdländer

    Sofern bei dir der Trace nicht angezeigt wird ist meine erste Vermutung das dir die INI Settings fehlen. Diese sind default auf FALSE und somit ist die Debug Klasse unnütz. Siehe:
    http://www.creationkit.com/INI_Settings_(Papyrus)
    EDIT: Um zu kontrolliere ob das Skript läuft empfehle ich die MessageBox funktion.
     
    Zuletzt bearbeitet: 14. Februar 2012
    Dacri gefällt das.
  10. Dacri

    Dacri Vertrauter

    Trace...Davon hab ich bis gerdae eben nie was gehört, tja das komment eben von den Beispielscripts :D .Ja, ich werds mal mit MessageBox versuchen, danke! :)
     
    Zuletzt bearbeitet: 14. Februar 2012
  11. Draconis

    Draconis Reisender

    Funktioniert leider immer noch nicht, gleiches Problem. Ich musste das Script wegen den Bezügen noch etwas abändern, damit der Compiler nicht meckert, mein aktuelles Script:
    Code:
    Scriptname DrReEsEssential   extends ActiveMagicEffect
    
    ReferenceAlias property akTarget auto
    
    Event OnEffectStart(Actor akTarget, Actor akCaster)
    	Actor target = akTarget.GetActorReference()
    	ActorBase targetBase = target.GetActorBase()
    	bool status = targetBase.IsEssential()
        if (status == true)
            targetBase.SetEssential(False)
            Debug.Notification("Dieser NPC ist nicht mehr Essential")
        else
            targetBase.SetEssential()
            Debug.Notification("Dieser NPC ist nun Essential")
        endif
    endEvent
    Hoffentlich findet sich eine Lösung, ich werde nämlich langsam ratlos :(
     
  12. blackHawk

    blackHawk Abenteurer

    Hallo, ich komme mit diesem neuen Scriptsystem nicht klar.

    Kann mir kurz jemand erklären, was dieses neue System sich vom alten Oblivion System unterscheidet und was man neuerdings beachten muss? Muss man die Scripts neu umschreiben? Gibt es irgendwo eine Liste mit den Scriptbefehlen? Oder gibt es irgendwo ein vernünftiges Tutorial?

    Ich bin für jede Hilfe dankbar.

    LG
     
  13. CrDa

    CrDa Fremdländer

    blackHawk gefällt das.
  14. adinsx

    adinsx Neuankömmling

    Hallo,

    kann man irgendwie von einem Script aus auf das Leben und das Mana des Spielers zugreifen, also es auslesen und verändern?
    Und ist es möglich den Schaden von einer gegnerischen Atacke auszulesen?

    Danke
     
    Zuletzt bearbeitet: 15. Februar 2012
  15. Van Helsing

    Van Helsing Neuankömmling

    Ja das ist möglich!
    Die Befehle dafür sind
    GetActorValue("Health") --> Hiermit wird z.B. die Lebensenergie abgefragt
    ModActorValue("Health", 100) --> Hiermit wird z.B. die Lebensenergie um 100 erhöht
    SetActorValue("Health", 100) --> Hiermit wird z.B. die Lebensenergie genau auf 100 gesetzt, unabhängig vom ursprünglichen Wer.

    Das funktioniert mit allen 3 Attributen und allen 18 Fertigkeiten.
     
    adinsx gefällt das.
  16. MaGlas

    MaGlas Abenteurer

    Ich suche für meinen Mod jemanden, der mir 2 Scripte erstellen kann. Undzwar:
    1.) Sobald sich das Spielerpferd in der ´´Aktivatorbox´´ befindet, soll es zu einem X-Marker gehen. Das soll das Einparken erleichtern :D
    2.) Bei Regen sollen Objekte aktiviert werden.

    Ihr bekommt dann natürlich auch Credits
     
  17. Van Helsing

    Van Helsing Neuankömmling

    Es gibt ne Condition Function "IsRaining" die man im Objektfenster unter den Conditions direkt eintragen kann ohne Script. Ich seh mir das heut am Abend mal genauer an, kann mir aber nicht vorstellen dass man damit in Kombination mit "Initially Diasabled" was machen kann in der Richtung. Das wäre fast zu einfach... ^^
     
  18. MaGlas

    MaGlas Abenteurer

    Ah danke für den Tipp, muss ich mir auchmal anschauen ob es klappt.
     
  19. Kahmul

    Kahmul Angehöriger

    Zu 1.: Das läuft mit Packages, dazu habe ich keine Ahnung. Das Event, das nötig wäre, lautet OnTrigger.

    Zu 2.: Versuche es mal mit einem Quest-Script:

    Code:
    ScriptName <ScriptNameEinfügen> extends Quest
    
    ObjectReference Property Obj1
    ObjectReference Property Obj2
    ObjectReference Property Obj3
    ObjectReference Property Obj4
    ; und so weiter, für jedes Objekt eine Property
    
    Event OnInit()
    
    registerforupdate(1)
    gotostate("s")
    
    EndEvent
    
    State s
       Event OnUpdate()
          weather w = weather.getcurrentweather()
         if(w == <Regen-Status>)  ; Ich kenne die ID für die Wetter-Stadien nicht, muss man nachschauen
            Obj1.enable(true)
            Obj2.enable(true)
            ; und so weiter
         else
            if(Obj1.isdisabled())
               gotostate("s")
            else
               Obj1.disable(true)
               Obj2.disable(true)
               ; und so weiter
            endif
         endif
       EndEvent
    EndState
    Den Properties weist Du die Objekte zu.
     
    Zuletzt bearbeitet: 15. Februar 2012
    MaGlas gefällt das.
  20. MaGlas

    MaGlas Abenteurer

    Wow danke für die schnelle hilfe. Hab auch die WetterID´s gefunden: SkyrimOvercastRain
    SkyrimOvercastRainFF
    SkyrimOvercastRainMA
    SkyrimOvercastRainRE
    SkyrimOvercastRainTU
    SkyrimOvercastRainVT
    SkyrimStormRain
    SkyrimStormRainFF
    Was muss ich also dran ändern, damit es für mehrere Wetter gilt?

    SkyrimStormRainTU
     
  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