Construction Set Skriptthread zum Construction Set

Hallo,
ich bräuchte mal ein Skript das bewirkt, das wenn ich eine Ausgerüstete Waffe ziehe durch eine andere ausgetauscht wird. Z.B hab mich mit einen Dolch ausgerüstet und wenn ich ihn ziehe hab ich ein Langschwert in der Hand. Habe vorerst den Skript genommen von den Mod "Warglaive" von Tesnexus. Aber dazu muss ich mich immer mit einen Item (z.b. einem Schild) ausrüsten.

mfg
Sammael
 
Ich brauche mal wieder was ... :D

Und zwar soll man bei einem Teleport egal wo man ist, zu einem Marker teleportiert werden. Das hab ich ja noch hingekriegt. Problem ist bloß: Es soll auch umkehrbar sein. Das heißt, dass man zu der Stelle geportet wird, wo man zuvor war.

Wie kann ich das anstellen?
 
Moin,

Ich hab da mal eine Frage.
Ich hätte gern folgendes , wenn man einen Hebel benutzt wird ein Gitter aktiviert. ( Den Teil bekomm ich noch selber hin ) Aber dann soll dieses Gitter nach dem passieren eines Triggers wieder geschlossen werden.

Diesen Teil bekomm ich nicht hin ( Und wehe ich muss dafür einfach den Skript vom Hebel auf einen Trigger legen....)
 
Hi Leute,

das ist ja mal ein Zufall, solch ein Skript brauche ich gerade auch. Funktioniert das auch mit einem Activator-Door? Ähnlich einem Ayleiden-Door? Meines wird durch einen Druckknopf geöffnet und soll nach dem Passieren selbständig schließen. Wenn ich anschließend das Tor wieder aktivieren will, soll eine Messagebox erscheinen, den Text setze ich schon selber ein.

Danke schon mal für eure Antworten.
 
Hiho, ich bräuchte nochmal Hilfe bei einem Skript:

Code:
Scn AAAMusikwürfelScript

Short Choosing
Short Choice
Short Choice2
Short MusicChoice
Short MusicChoice2
Float Timer

Begin onActivate player

set timer to 0 

     if Choosing == 0
          set Choosing to -1
     endif
end

Begin onEquip player

set timer to 0

     if Choosing == 0
          set Choosing to -3
     endif
end

Begin gameMode
     If (Choosing == -1)
          MessageBox "Was möchtet ihr tun?", "Nehmen", "Musik auswählen", "Fertig"
          set Choosing to 1
          set Choice to GetButtonPressed
     elseif (Choosing == 1)
          if (Choice == -1)
               set Choice to GetButtonPressed
          elseif (Choice == 0)
               Activate
               Set Choosing to 0
          elseif (Choice == 1)
               Set Choosing to -2
          elseif (Choice == 2)
               Set Choosing to 0
          endif
     Endif

     If (Choosing == -2)
          MessageBox "Welche Musik möchtet ihr hören?", "Lied 1", "Lied 2", "Lied 3", "Lied 4", "Lied 5", "Zurück", "Abbrechen"
          set Choosing to 2
          set MusicChoice to GetButtonPressed
     elseif (Choosing == 2)
          if (MusicChoice == -1)
               set MusicChoice to GetButtonPressed
          elseif (MusicChoice == 0)
               if Timer <= 0
            set Timer to 141 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_1.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif 
               Set Choosing to -1
          elseif (MusicChoice == 1)
               if Timer <= 0
            set Timer to 161 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_2.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif                
               Set Choosing to -1
          elseif (MusicChoice == 2)
               if Timer <= 0
            set Timer to 189 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_3.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif                
               Set Choosing to -1
          elseif (MusicChoice == 3)
               if Timer <= 0
            set Timer to 156 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_4.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif                
               Set Choosing to -1
          elseif (MusicChoice == 4)
               if Timer <= 0
            set Timer to 136 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_5.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif               
               Set Choosing to -1
          elseif (MusicChoice == 5)
               Set Choosing to -1
          elseif (MusicChoice == 6)
               Set Choosing to 0
          endif
     Endif
End

Begin menuMode
     If (Choosing == -3)
          MessageBox "Was möchtet ihr tun?", "Ablegen", "Musik wählen", "Fertig"
          set timer to 0
          set Choosing to 3
          set Choice2 to GetButtonPressed
     elseif (Choosing == 3)
          if (Choice2 == -1)
               set Choice2 to GetButtonPressed
          elseif (Choice2 == 0)
               DropMe
               Set Choosing to 0
          elseif (Choice2 == 1)
               Set Choosing to -4
          elseif (Choice2 == 2)
               Set Choosing to 0
          endif
     Endif
    
     If (Choosing == -4)
          MessageBox "Welche Musik möchtet ihr hören?", "Lied 1", "Lied 2", "Lied 3", "Lied 4", "Lied 5", "Zurück", "Abbrechen"
          set Choosing to 4
          set MusicChoice2 to GetButtonPressed
     elseif (Choosing == 4)
          if (MusicChoice2 == -1)
               set MusicChoice2 to GetButtonPressed
          elseif (MusicChoice2 == 0)
               if Timer <= 0
            set Timer to 141 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_1.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif 
               Set Choosing to -3
          elseif (MusicChoice2 == 1)
               if Timer <= 0
            set Timer to 161 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_2.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif                               
               Set Choosing to -3
          elseif (MusicChoice2 == 2)
               if Timer <= 0
            set Timer to 189 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_3.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif                               
               Set Choosing to -3
          elseif (MusicChoice2 == 3)
               if Timer <= 0
            set Timer to 156 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_4.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif                
               Set Choosing to -3
          elseif (MusicChoice2 == 4)
               if Timer <= 0
            set Timer to 136 ; Länge der Musik in Sekunden
               StreamMusic "Data\Music\Eydis\Lied_5.mp3"
               else 
        set Timer to Timer - getSecondsPassed 
           endif               
               Set Choosing to -3
          elseif (MusicChoice2 == 5)
               Set Choosing to -3
          elseif (MusicChoice2 == 6)
               Set Choosing to 0
          endif
     Endif
End
Das Skript liegt auf einem Objekt, das entweder aus dem Inventar oder wie ein normaler Activator aktiviert werden können soll. Das Problem ist, dass die Musik nicht abgespielt wird sondern nur die Hintergrundmusik kurz unterbrochen wird. Weiß jemand woran das liegt und wie ich das am besten beheben kann? :)

Liebe Grüße,
Eydis
 
Steht auf dem CS-Wiki:

To use this command in a cell with music-type "Default", you need to call StreamMusic random first, then wait for a frame for the command to be executed, and then use Streammusic "<filename>".

Trifft das zu?
 
Ich glaube, ich hatte meine Frage ein paar Posts früher nicht deutlich genug formuliert.:lol:

Ich habe eine Activator-Door (ähnlich einem Ayleiden-Tor), das durch einen Button geöffnet wird.

Ich brauche jetzt ein Skript, das dieses Tor nach dem Passieren in den nächsten Raum selbständig schließen lässt und anschließend nicht mehr zu öffnen ist. Es soll auch eine Messagebox erscheinen.
Ich möchte dies alles über eine Triggerbox laufen lassen. Wer kann mir helfen?

LG
Arielle
 
in das Tor-Script schreibst du einfach die Variable "short closed" und in den Activate-Block:
Code:
if closed==1
messagebox"tor bleibt zu!"
endif
und das hier ist für den Trigger
Code:
scn name
short once

begin ontrigger player
if once==0
TOR-REF.playgroup backward 0
set TOR-REF.closed to 1
set once to 1
endif
end
 
  • Like
Reaktionen: Arielle 1000
Vielen Dank Waldmeister. Aber sei so nett, sag mir bitte noch, in welche Zeile ich die Variable und den Messagebox-Zusatz zwischenschieben soll.

Das Door-Skript sieht im Moment so aus:

scn AWDWerwolfTor01Script

short init
short open
short next
short busy
float timer
ref mySelf
ref myParent

begin onActivate

if isActionRef player == 0 && isActionRef mySelf == 0 && busy == 0
if open == 0
playgroup forward 0
set open to 1
enableLinkedPathPoints
else
playgroup backward 1
set open to 0
disableLinkedPathPoints
endif
set next to 1
set busy to 1
set timer to 1
endif

end

begin gameMode

if init == 0
; set up ref vars
set mySelf to getSelf
set myParent to getParentRef
; prepare linked pathsgrid points
disableLinkedPathPoints
set init to 1
endif

; daisy-chain activation
if next == 1 && timer <=0
set next to 0
myParent.activate mySelf 1
endif

if isAnimPlaying == 0 && busy == 1
set busy to 0
endif

if timer > 0
set timer to timer - getSecondsPassed
endif

end

begin onReset

reset3DState
set open to 0
set next to 0
set busy to 0
disableLinkedPathPoints

end
 
Steht auf dem CS-Wiki:

To use this command in a cell with music-type "Default", you need to call StreamMusic random first, then wait for a frame for the command to be executed, and then use Streammusic "<filename>".

Trifft das zu?

Ich habs nochmal getestet, in Zellen die "Dungeon" oder "Public" als Musiktyp haben funktionierts, bei Zellen mit "Dafault" nicht. :?

Code:
Scn AAAMusikWürfelScript

Short Choosing
Short Choice
Short Choice2
Short MusicChoice
Short MusicChoice2

Begin onActivate player
     if Choosing == 0
          set Choosing to -1
     endif
end

Begin onEquip player
     if Choosing == 0
          set Choosing to -3
     endif
end

Begin gameMode
     If (Choosing == -1)
          MessageBox "Was möchtet ihr tun?", "Nehmen", "Musik auswählen", "Fertig"
          set Choosing to 1
          set Choice to GetButtonPressed
     elseif (Choosing == 1)
          if (Choice == -1)
               set Choice to GetButtonPressed
          elseif (Choice == 0)
               Activate
               Set Choosing to 0
          elseif (Choice == 1)
               Set Choosing to -2
          elseif (Choice == 2)
               Set Choosing to 0
          endif
     Endif

     If (Choosing == -2)
          MessageBox "Welche Musik möchtet ihr hören?", "Lied 1", "Lied 2", "Lied 3", "Lied 4", "Lied 5", "Zurück", "Abbrechen"
          set Choosing to 2
          set MusicChoice to GetButtonPressed
     elseif (Choosing == 2)
          if (MusicChoice == -1)
               set MusicChoice to GetButtonPressed
          elseif (MusicChoice == 0)
               StreamMusic "Data\Music\Eydis\Lied_1.mp3"
               Set Choosing to -1
          elseif (MusicChoice == 1)
               StreamMusic "Data\Music\Eydis\Lied_2.mp3"
               Set Choosing to -1
          elseif (MusicChoice == 2)
               StreamMusic "Data\Music\Eydis\Lied_3.mp3"
               Set Choosing to -1
          elseif (MusicChoice == 3)
               StreamMusic "Data\Music\Eydis\Lied_4.mp3"
               Set Choosing to -1
          elseif (MusicChoice == 4)
               StreamMusic "Data\Music\Eydis\Lied_5.mp3"
               Set Choosing to -1
          elseif (MusicChoice == 5)
               Set Choosing to -1
          elseif (MusicChoice == 6)
               Set Choosing to 0
          endif
     Endif
End

Begin menuMode
     If (Choosing == -3)
          MessageBox "Was möchtet ihr tun?", "Ablegen", "Musik wählen", "Fertig"
          set Choosing to 3
          set Choice2 to GetButtonPressed
     elseif (Choosing == 3)
          if (Choice2 == -1)
               set Choice2 to GetButtonPressed
          elseif (Choice2 == 0)
               DropMe
               Set Choosing to 0
          elseif (Choice2 == 1)
               Set Choosing to -4
          elseif (Choice2 == 2)
               Set Choosing to 0
          endif
     Endif
    
     If (Choosing == -4)
          MessageBox "Welche Musik möchtet ihr hören?", "Lied 1", "Lied 2", "Lied 3", "Lied 4", "Lied 5", "Zurück", "Abbrechen"
          set Choosing to 4
          set MusicChoice2 to GetButtonPressed
     elseif (Choosing == 4)
          if (MusicChoice2 == -1)
               set MusicChoice2 to GetButtonPressed
          elseif (MusicChoice2 == 0)
               StreamMusic "Data\Music\Eydis\Lied_1.mp3"
               Set Choosing to -3
          elseif (MusicChoice2 == 1)
               StreamMusic "Data\Music\Eydis\Lied_2.mp3"
               Set Choosing to -3
          elseif (MusicChoice2 == 2)
               StreamMusic "Data\Music\Eydis\Lied_3.mp3"
               Set Choosing to -3
          elseif (MusicChoice2 == 3)
               StreamMusic "Data\Music\Eydis\Lied_4.mp3"
               Set Choosing to -3
          elseif (MusicChoice2 == 4)
               StreamMusic "Data\Music\Eydis\Lied_5.mp3"
               Set Choosing to -3
          elseif (MusicChoice2 == 5)
               Set Choosing to -3
          elseif (MusicChoice2 == 6)
               Set Choosing to 0
          endif
     Endif
End
Ich habe das Skript nochmal etwas gekürzt, was müsste ich jetzt noch wo ergänzen damit mein Skript in allen Zellen funktioniert? :)

Liebe Grüße,
Eydis
 
@Arielle:
Code:
scn AWDWerwolfTor01Script

short closed
short init
short open
short next
short busy
float timer
ref mySelf
ref myParent

begin onActivate

    if isActionRef player == 0 
      if isActionRef mySelf == 0 && busy == 0
        if open == 0
            playgroup forward 0
            set open to 1
            enableLinkedPathPoints
        else
            playgroup backward 1
            set open to 0
            disableLinkedPathPoints
        endif
        set next to 1
        set busy to 1
        set timer to 1
    endif
   else
   if closed==1
   messagebox"Du kommst hier net rein!"
   endif
end

begin gameMode

    if init == 0
        ; set up ref vars
        set mySelf to getSelf
        set myParent to getParentRef
        ; prepare linked pathsgrid points
        disableLinkedPathPoints
        set init to 1
    endif

    ; daisy-chain activation
    if next == 1 && timer <=0
        set next to 0
        myParent.activate mySelf 1
    endif

    if isAnimPlaying == 0 && busy == 1
        set busy to 0
    endif

    if timer > 0
        set timer to timer - getSecondsPassed
    endif

end

begin onReset

    reset3DState
    set open to 0
    set next to 0
    set busy to 0
    disableLinkedPathPoints

end
 
  • Like
Reaktionen: Arielle 1000
Ja, danke Waldmeister, aber ich glaube, du hast mich falsch verstanden.:D
Ich will die Tür passieren, wenn ich im nächsten Raum bin soll sie hinter mir zugehen, und ich kann nicht mehr raus und muss mir einen anderen Ausgang suchen. Macht die Messagebox nicht mehr Sinn im Triggerskript, das ich nach dem Tor durchlaufen muss?
 
Dann kannst du das Tor-Script eig so lassen wie es war. Das geht ja sowieso nur per Hebel auf... Die Messagebox kannst du dann einfach im Triggerscript irgendwo zwischen if udn endif platzieren.
 
  • Like
Reaktionen: Arielle 1000
Dann formuliere ich es etwas genauer:

Ich stehe vor einem großen Tor.

Ich betätige den Button, das Tor öffnet sich.

Ich durchschreite das Tor und betrete den neuen Raum. (bis hierhin funktioniert mein jetziges Skript wunderbar)

Aber ab jetzt sollte das Triggerskript eingreifen, denn ich laufe im neuen Raum durch den Trigger.

Jetzt muss sich das Tor hinter mir schließen!

Wenn ich das Tor jetzt aktiviere, soll die Messagebox erscheinen: "du kommst nicht mehr raus"