Construction Set Skriptthread zum Construction Set

Dieses Thema im Forum "[Obl] PlugIns und Mods" wurde erstellt von Alexi, 2. April 2007.

  1. Arielle 1000

    Arielle 1000 Freund des Hauses

    Ich stelle hier meine Frage nochmal, weil sie zum Thema passt und im CS-Thread unbeantwortet blieb:

    Ein Objekt, auf dem ein Script liegt, soll eine Queststage auslösen, aber erst, wenn die vorherige Quest aktiv geworden ist. Z. B. soll dieses Objekt, in diesem Fall ein Buch, die Stage 40 auslösen. Im Quest-Reiter habe ich bei Conditions ein getstage 30 eingegeben.
    Ingame löst das Buch aber keine stage mehr aus. Entferne ich die condition mit dem getstage, löst das Buch wieder die stage aus, aber dafür jederzeit. Wie stelle ich es richtig ein?
     
  2. Eldarie

    Eldarie Hausvetter

    Das hier sollte funktionieren:

    Code:
    scn [I]name[/I]
    
    short doonce
    
    Begin OnActivate
         if doonce == 0 && getStage "[I][quest][/I]" == [I][stage][/I]
               setStage "[I][quest][/I]" [I][stage][/I]
               set doonce to 1
         endif
    End
     
  3. Arielle 1000

    Arielle 1000 Freund des Hauses

    @Eldarie

    Heißt das, ich soll das jetzige Script gegen deines austauschen und die conditions ganz weglassen?

    LG
    Arielle 1000
     
  4. Eldarie

    Eldarie Hausvetter

    Jup, so war das gedacht.
     
  5. Arielle 1000

    Arielle 1000 Freund des Hauses

    Sorry Eldarie,

    jetzt geht gar nichts mehr.
    Ich habe drei Objekte, die eine stage auslösen sollen

    1 Toter NPC
    so sieht sein Script aus
    1 Banditen, dessen Tod eine stage auslösen soll
    1 Tagebuch, das beim Öffnen im Inventar eine stage auslösen soll
    Was muss ich hier korrigieren?
     
  6. Eldarie

    Eldarie Hausvetter

    Die Questnamen müssen innerhalb von Anführungszeichen stehen. Dann sollte es funktionieren.

    Code:
    scn 00ToterBote
    
    short DoOnce
    
    Begin OnActivate
        if DoOnce == 0 §§ getstage [COLOR="Red"]"[/COLOR]00AriellesWeyeDorfMarasLieferung[COLOR="Red"]"[/COLOR] == 30
            setstage [COLOR="Red"]"[/COLOR]00AriellesWeyeDorfMarasLieferung[COLOR="Red"]"[/COLOR] 40
            set DoOnce to 1
        endif
    activate
    end
     
  7. Kahmul

    Kahmul Angehöriger

    @ Arielle:

    Ich glaube es liegt an diesem "Und"-Zeichen, du hast das Falsche, glaube ich, gesetzt.
    Aber mache es lieber so:

    1.Skript:

    Code:
    scn ...
    
    Short DoOnce
    
    Begin OnActivate
       If DoOnce == 0
         If getStage <Quest> == <Stage>
              setStage <Quest> <Stage>
           set DoOnce to 1
        Endif
      Endif
     Activate
    End
    2.Skript:

    Code:
    scn ...
    
    Short DoOnce
    
    Begin OnDeath  
      If DoOnce == 0
        If getStage <Quest> == <Stage>
             setStage <Quest> <Stage>
           set DoOnce to 1
         Endif
       Endif
    End                       
    3.Skript:

    Code:
    scn ...
    
    Short DoOnce
    
    Begin OnEquip Player
       If DoOnce == 0 
         If getStage <Quest> == <Stage>
              SetStage <Quest> <Stage>
            Set DoOnce to 1
        Endif
      Endif
    End                      
    mfg
    Kahmul
     
    Zuletzt bearbeitet: 24. Januar 2010
  8. Eldarie

    Eldarie Hausvetter

    Das hab ich übersehen. :oops:

    Kahmul hat recht das Undzeichen ist falsch. So müsste es sein. ;)

    Code:
    scn 00ToterBote
    
    short DoOnce
    
    Begin OnActivate
        if DoOnce == 0 [COLOR="Red"]&&[/COLOR] getstage "00AriellesWeyeDorfMarasLieferung" == 30
            setstage "00AriellesWeyeDorfMarasLieferung" 40
            set DoOnce to 1
        endif
    activate
    end
     
    Arielle 1000 gefällt das.
  9. Arielle 1000

    Arielle 1000 Freund des Hauses

    @Kahmul

    Die Änderung im Script wird nicht angenommen mit dieser Fehlermeldung:

     
  10. Kahmul

    Kahmul Angehöriger

    O ja, habe ich übersehen, mein Fehler. :oops:
    Mein Beitrag oben wird editiert, dann kannst du den Skript nehmen.

    mfg
    Kahmul
     
    Arielle 1000 gefällt das.
  11. Arielle 1000

    Arielle 1000 Freund des Hauses

    Vielen Dank Euch beiden, Kahmul und Eldarie,

    mit Kahmuls Scripts hat es funktioniert. Alles ist jetzt in genau der Reihenfolge, wie es sein soll. Ich habe es schon ingame getestet.

    LG
    Arielle 1000
     
  12. Neurosis404

    Neurosis404 Angehöriger

    Hoy,

    kann mir jemand sagen, wie ich es schaffe, per moveto ein Licht zu bewegen?
    Die Referenz steht, aber irgendwie kommt das Licht nicht :(
    Mit Placeatme klappt es zwar, das will ich aber nicht verwenden, da ich das Savegame nicht so zuspammen möchte.

    Danke schonmal
     
  13. Diarrhoe

    Diarrhoe Vertrauter

    Hast du auch eine Referenz, zu der das Licht bewegt wird? Alternativ kannst du es auch mal mit "positionCell" bzw. "positionWorld" versuchen...
     
  14. Jama

    Jama Bürger

    Meinst du eine Lampe? Oder ein Lich?
     
  15. Neurosis404

    Neurosis404 Angehöriger

    Ich meine ein Licht an und für sich.
    PositionCell und PositionWorld helfen mir da leider nicht, da das Licht am Player erscheinen soll und das unabhängig von der Zelle ist.
    Außerdem wird das sehr oft passieren, dass das Licht zum Spieler muss, deswegen bringt PlaceAtMe nichts
     
  16. Diarrhoe

    Diarrhoe Vertrauter

    Dann nimm doch einfach einen Zauber mit einem Licht-Effekt...
     
  17. Und wenn du ihn nicht dauernd wirken möchtest, verzauberst du einfach einen Gegenstand. :)
     
  18. Neurosis404

    Neurosis404 Angehöriger

    Also verzaubern und Zaubern kann ich ihn nicht, das es um eine Fackel geht und ich das Fackellicht brauche *g* Also kein "normales" Licht, sondern eben das flackernde, rötliche.
     
  19. Xaephrim

    Xaephrim Abenteurer

    Poste einfach mal das Script, dann kann man denke ich besser helfen. Vielleicht ist da nur irgendein doofer Fehler drin?!
     
  20. Neurosis404

    Neurosis404 Angehöriger

    Da gibts eig nich viel zu posten bzw. falsch zu machen:

    Code:
    set THIS to getSelf
    
    Begin OnDrop
    
    THIS.AddFlames
    ;THIS.placeatme Torch02Light <- Damit klappts, pustet aber das Savegame auf
    n404FackelLichtRef.disable
    n404FackelLichtRef.moveto THIS, 0, 0, 5
    n404FackelLichtRef.enable
    
    end
    
     
  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