Construction Set Skriptthread zum Construction Set

Gibt es von OBSE einen Skript, der, sobald man angegriffen wird, andere Musik abspielt als die Kampfmusik?

LG,

peecee
 
Könnte man auch ohne OBSE mit einem Quest-Skript machen:

Code:
SCN ...

Begin GameMode

if(player.isincombat)
      playsound <musik>
endif

end
 
  • Like
Reaktionen: peecee
Hiho, ich bräuchte wieder Hilfe bei einem Script:

Code:
Scn AAAMusicFrostBScript
Float Timer
Short InCombat
Short InMyCell
Short MusicLenght 
Short Doonce
Float fQuestDelayTime 
 
begin GameMode 
 
    if Doonce == 0
        set fQuestDelayTime to 0.1
        set Doonce to 1
    endif
 
    if player.GetInCell 00FrostCaveB == 1 && InMyCell == 0 
        set InMyCell to 1
          set Timer to 0
    endif
 
    if player.GetInCell 00FrostCaveB == 0 && InMyCell == 1 
        set InMyCell to 0
    endif
 
    if player.isInCombat == 1 && InCombat == 0 
        set InCombat to 1 
    endif 
 
    if player.isInCombat == 0 && InCombat == 1
        set InCombat to 0 
        set Timer to 0 
    endif 
 
    if  InCombat == 0 && InMyCell  
        if Timer <= 0
            set Timer to 214 ; Länge der Musik in Sekunden 
               StreamMusic "Data\Music\BlutmagierPlaylist\track01.mp3"
        else 
            set Timer to Timer - getSecondsPassed 
        endif 
    endif 
end 
 
begin MenuMode 
 
    if player.GetInCell 00FrostCaveB == 1 && InMyCell == 0 
        set InMyCell to 1
        set Timer to 0
    endif
 
    if player.GetInCell 00FrostCaveB == 0 && InMyCell == 1 
        set InMyCell to 0
    endif
 
    if player.isInCombat == 1 && InCombat == 0 
        set InCombat to 1 
    endif 
 
    if player.isInCombat == 0 && InCombat == 1 
        set InCombat to 0 
        set Timer to 0 
    endif  
 
    if InCombat == 0 && InMyCell
        if Timer <= 0
            set Timer to 214 ; Länge der Musik in Sekunden
            StreamMusic "Data\Music\BlutmagierPlaylist\Track01.mp3"
        else 
            set Timer to Timer - getSecondsPassed 
        endif 
    endif 
end
Gibt es eine (leichtverständliche) Methode, das Skript auf mehrere Zellen auszuweiten? Für jede Zelle das Skript neuzuschreiben käme mir komisch vor, da ich jedesmal eine neue Quest erstellen müsste. Da würde auf Dauer die Übersicht verloren gehen, da es derzeit 45 Dungeonzellen sind (und da ist noch Luft nach oben), welchen ich eine atmosphärischere Hintergrundmusik spendieren möchte.

Liebe Grüße,
Eydis
 
Du solltest die Zellen-IDs mit einem bestimmten Präfix beginnen. Dann wird "player.getInCell <Präfix>" für alle Zellen ausgeführt, die diesen Präfix haben. So sparst du dir eine Menge Code.
Btw eignen sich Zahlen als Präfix eher weniger. Das kann ab und an zu Problemen führen.
 
Ich hoffe das ist der Richtige Thread.

Also ich bin gerade dabei eine Rasse zu erstellen und soweit ist auch alles gut aber ich brauch jetzt eure Hilfe und zwar möchte ich einen Zauber einbauen der zB alle 10 Stufen stärker wird. Kann man das irgend wie mit Scripts lösen?

Mfg Nagor
 
Kann mir jmd wieder mal helfn?

Mache Script, sieht so aus :

ScriptName Zierdescript

short controlvar

Begin OnActivate

If (controlvar > -1)

Set controlvar to -1

EndIf

End

Und bewirkt das man beim Raufdrücken, also nehmen das Schild oder was weis ich, nicht bekommt. Aber das Dumme ist, dass die Collosion noch an ist ...
Gibt es einen Befehl wo ich für dieses Object die Collosion ausschalten kann?
 
Zuletzt bearbeitet:
Zum Beispiel so:
Code:
scn name

short doonce
short controlvar

Begin onLoad

if doonce
 return
endif
set doonce to 1
setRigidBodyMass 0   ;für die Physik
setDestroyed 1  ;bewirkt, dass man ihn nicht aktivieren kann

end
 
Ich hoffe das ist der Richtige Thread.

Also ich bin gerade dabei eine Rasse zu erstellen und soweit ist auch alles gut aber ich brauch jetzt eure Hilfe und zwar möchte ich einen Zauber einbauen der zB alle 10 Stufen stärker wird. Kann man das irgend wie mit Scripts lösen?

Mfg Nagor

Kann mir keiner helfen?:cry:
 
Dafür musst du eine Quest sowie die Zauber für die Stufen erstellen. Das Skript legst du auf die Quest:
Code:
scn name

short doonce
float fQuestDelayTime

Begin MenuMode 1027

if player.getLevel == 10
 player.removeSpell <ZauberFürStufe1Bis9>
 player.addSpell <ZauberFürStufe10Bis19>
elseif player.getLevel == 20
 player.removeSpell <ZauberFürStufe20Bis29>
 player.addSpell <ZauberFürStufe30Bis39>

;hier beliebig weitere Zeilen einfügen

endif

end


Begin GameMode

if doonce
 return
endif

if getStageDone MQ02 25
 if player.getIsRace <Rassen-ID>
  set doonce to 1
  set fQuestDelayTime to 2
  player.addSpell <ZauberFürStufe1Bis9>
 else
  stopQuest <Quest-ID>
endif

end
 
  • Like
Reaktionen: Nagor