Construction Set Skriptthread zum Construction Set

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?
 
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
 
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
scn 00ToterBote

short DoOnce

Begin OnActivate

if DoOnce == 0 §§ getstage 00AriellesWeyeDorfMarasLieferung == 30

setstage 00AriellesWeyeDorfMarasLieferung 40

set DoOnce to 1
endif
activate
end

1 Banditen, dessen Tod eine stage auslösen soll
scn 00ToddesBanditenanfuehrers

Short DoOnce

Begin OnDeath
If DoOnce == 0 §§ getstage 00AriellesWeyeDorfMarasLieferung == 40
SetStage 00AriellesWeyeDorfMarasLieferung 50
Set DoOnce to 1
Endif
End

1 Tagebuch, das beim Öffnen im Inventar eine stage auslösen soll
scn 00TagebuchdesBanditenanfuehrers

short DoOnce

Begin OnEquip Player
If DoOnce == 0 §§ getstage 00AriellesWeyeDorfMarasLieferung == 50
SetStage 00AriellesWeyeDorfMarasLieferung 60
Set DoOnce to 1
Endif
End

Was muss ich hier korrigieren?
 
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
 
@ 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:
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
 
  • Like
Reaktionen: Arielle 1000
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
 
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
 
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
 
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.
 
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