Construction Set Skriptthread zum Construction Set

Da ich aber kein OBSE benutze und es kein Pfeil sein soll, mal was anderes
wie mach ich es das der Spieler die Waffe ausgerüstet haben muss?
 
Code:
scn AAskript0001mining

begin onActivate
if player.getequipped 0001waffe == 1
  disable
elseif
   message "Ihr braucht einen schwere Waffen

end
irgendwas hab ich falsch gemach oder vergessen aber was, da komm ich nicht drauf,
kann mir jemand helfen?
 
Code:
scn AAskript0001mining

begin onActivate
if player.getequipped 0001waffe == 1
  disable
elseif
   message "Ihr braucht einen schwere Waffen

end
irgendwas hab ich falsch gemach oder vergessen aber was, da komm ich nicht drauf,
kann mir jemand helfen?

Ich weis zwar nicht, was das Skript bewirken soll, aber 3 Fehler habe ich entdeckt:

Code:
SCN AAskript0001mining

Begin OnActivate Player
if(player.getequipped 0001waffe)
    disable
[COLOR=Red]else[/COLOR]
     Message "Ihr braucht eine andere Waffe![COLOR=Red]"[/COLOR]
[COLOR=Red]endif[/COLOR]

end
 
  • Like
Reaktionen: ichich
Hi Freunde, ich brauch noch mal eure Hilfe.

Dieses Skript habt ihr mir beim letzten Mal zusammengestellt und es funktioniert tadellos. Habt ihr prima gemacht.
Angenommen, ich möchte es jetzt folgendermaßen erweitern:

Nachdem der Player in der Messagebox "ja" gedrückt hat soll jetzt erst mal ein neuer Sound ertönen, wenn der zu Ende abgespielt ist soll die Karte enabled werden.
Dieser Zusatz muss leider sein, da ich beim Testen festgestellt habe, dass der Questverlauf für den Player nicht eindeutig ist.
Was muss diesem Skript hinzugefügt werden, und wo?

Könntet ihr das wieder so machen, dass ihr die Veränderungen im Skript in roter Schrift einsetzt? Das ist für mich leichter nachzuvollziehen. ;)

scn ForgottenAltarScript
short state
short finished
short button
float timer
Begin onActivate
if finished
return
endif
if state == 0
set state to 1
playSound AWDDaedra
set timer to 15
endif
end

Begin GameMode
if finished
return
endif
if state == 1
set timer to (timer - getSecondsPassed)
if timer <= 0
set state to 2
messagebox "Diese furchteinflößende Stimme lässt Euch erschaudern. Wollt Ihr euch dem Willen dieses Wesens unterwerfen?" "Ja!" "Nein!"
endif
elseif state == 2
set button to getButtonPressed
if button == -1
return
elseif button == 0
AWDQuestVSchreinKarte01ref.enable
set finished to 1
return
else
set state to 0
cast AWDVergessenerSchreinBlitzEffekt player
endif
endif
end
 
Hallo allerseits!

Ich versuche mich gerade an einem Musik System, aber leider schaff ich es nicht. Wenn ich auf speichern drücke, kommt keine Fehlermeldung.

Was mache ich falsch ?

PHP:
scn MusikSystem
 
float songtimer
float fQuestDelayTime
 
short songNR
short ZellWechsel
short Drinnen
short Kampf
short FakeFightDone
  
 
Begin Gamemode
 
if player.GetInWorldspace 00Ankarda == 1 || player.GetInCell 00HafenHouse01 == 1
; Wenn der Spieler in einer Zelle oder einem Worldspace von dir ist. 
 
    if fQuestDelayTime != 0.1  ; Durchlauf Häufigkeit
        set fQuestDelayTime to 0.1
    endif
 
 
;Zellwechsel
 
    if player.IsInInterior == 1 && drinnen == 0
        set drinnen to 1
    elseif player.IsInInterior == 0 && drinnen == 1
        set drinnen to 0;                                                                    
    endif
 
 
    if player.GetInSameCell ZellWechselFlyRef == 0 && drinnen == 1
        set ZellWechsel to 1
        set songtimer to 0    
        ZellWechselFlyRef.moveto player    
    elseif player.GetInSameCell ZellWechselFlyRef == 0 && drinnen == 0 
        if ZellWechselFlyRef.IsInInterior == 1
            ZellWechselFlyRef.moveto player
            set ZellWechsel to 1
            set songtimer to 0
        Elseif ZellWechselFlyRef.IsInInterior == 0
            ZellWechselFlyRef.moveto player    
        endif
    endif
 
 
;Kampf-Erkennung
 
    if  Kampf == 0 && player.IsInCombat == 1
        set Kampf to 1; Spieler ist grade in einem Kampf
    elseif Kampf == 1 && player.IsInCombat == 0
        set Kampf to 0; Spieler ist nicht mehr im Kampf
        set Songtimer to 0 ; Lied kann von vorne anfangen
    endif
 
 
 
 
 
    if songtimer <= 0  
 
;Kampf erzeugen
        if FakeFightDone < 3 ; 3 Frames lang den Kampf laufen lassen
            if FakeFightDone == 0
                MusikKampfDummyREF.moveto player ;Ratte zum Spieler
                MusikKampfDummyREF.StartCombat player ;Ratte greift an
                set FakeFightDone to 1
                return
            endif
            set FakeFightDone to FakeFightDone + 1 ; wird bis 3 zählen
            return
        elseif FakeFightDone == 3 ; nach 3 Frames Kampf
            MusikKampfDummyREF.poscell  0,0,0, 0, 00MusicCell ;Ratte kommt weg
            MusikKampfDummyREF.StopCombat player;Kampf beenden
            set FakeFightDone to 4; Kampferzeugen schließen
            return
        endif
 
 
    if Kampf == 0 ; Wenn der Spieler nicht im Kampf ist
 
;Zufälliges Lied spielen
        if drinnen == 1  ; Für Interior 
            set SongNR to 1 + 0.05 * GetRandompercent; 4 für Interior
        else  ; Für Exterior
            set SongNR to 5 + 0.05 * GetRandomPercent; 4 für Exterior
        endif
 
    set FakeFightDone to 0; Kampferzeugung wieder möglich machen
 
        if SongNR == 1  ;Alle Lieder mit Dauer,songtimer ist Lied-Dauer
            set songtimer to 104
            streammusic "Data\Music\Ankarda\01 - The pursuit of immortality"
        elseif SongNR == 2
            set songtimer to 207
            streammusic "Data\Music\Ankarda\02 - Escape" 
        elseif SongNR == 3
            set songtimer to 81
            streammusic "Data\Music\Ankarda\03 - Interlude - In the sky"
        elseif SongNR == 4
            set songtimer to 177
            streammusic "Data\Music\Ankarda\04 - Sword Battle"
        elseif SongNR == 5
            set songtimer to 104
            streammusic "Data\Music\Ankarda\01 - The pursuit of immortality"
        elseif SongNR == 6
            set songtimer to 207
            streammusic "Data\Music\Ankarda\02 - Escape"
        elseif SongNR == 7
            set songtimer to 81
            streammusic "Data\Music\Ankarda\03 - Interlude - In the sky" 
        elseif SongNR == 8
            set songtimer to 177
            streammusic "Data\Music\Ankarda\04 - Sword Battle" 
        endif
        endif
    elseif Songtimer > 0 
        set songtimer to songtimer - getsecondspassed;
    endif
endif
 
End
 
Begin Menumode  ;das Gleiche ohne Kampf & Zellwechsel
 
 
if player.GetInWorldspace 00Ankarda == 1 || player.GetInCell 00HafenHouse01 == 1
 
    if songtimer <= 0 
 
;Kampf-erzeugen
        if FakeFightDone < 3 ; 3 Frames lang den Kampf laufen lassen
            if FakeFightDone == 0
                MusikKampfDummyREF.moveto player ;Ratte zum Spieler
                MusikKampfDummyREF.StartCombat player ;Ratte greift an
                set FakeFightDone to 1
                return
            endif
            set FakeFightDone to FakeFightDone + 1 ; wird bis 3 zählen
            return
        elseif FakeFightDone == 3 ; nach 3 Frames Kampf
            MusikKampfDummyREF.poscell  0,0,0, 0, 00MusicCell ;Ratte kommt weg
            MusikKampfDummyREF.StopCombat player;Kampf beenden
            set FakeFightDone to 4; Kampferzeugen schließen
            return
        endif
 
 
    if Kampf == 0
 
;zufälliges lied
        if drinnen == 1
            set SongNR to 1 + 0.05 * GetRandompercent
        else
            set SongNR to 5 + 0.05 * GetRandomPercent
        endif
 
 
 
            set FakeFightDone to 0
            if SongNR == 1  ;Alle Lieder mit Dauer,songtimer ist Lied-Dauer
            set songtimer to 104
            streammusic "Data\Music\Ankarda\01 - The pursuit of immortality"
        elseif SongNR == 2
            set songtimer to 207
            streammusic "Data\Music\Ankarda\02 - Escape" 
        elseif SongNR == 3
            set songtimer to 81
            streammusic "Data\Music\Ankarda\03 - Interlude - In the sky"
        elseif SongNR == 4
            set songtimer to 177
            streammusic "Data\Music\Ankarda\04 - Sword Battle"
        elseif SongNR == 5
            set songtimer to 104
            streammusic "Data\Music\Ankarda\01 - The pursuit of immortality"
        elseif SongNR == 6
            set songtimer to 207
            streammusic "Data\Music\Ankarda\02 - Escape"
        elseif SongNR == 7
            set songtimer to 81
            streammusic "Data\Music\Ankarda\03 - Interlude - In the sky" 
        elseif SongNR == 8
            set songtimer to 177
            streammusic "Data\Music\Ankarda\04 - Sword Battle"
        endif
        endif
    elseif Songtimer > 0
        set songtimer to songtimer - getsecondspassed
    endif
endif
End
 
@ Arielle:

Code:
scn ForgottenAltarScript

short state
short finished
short button

float timer


Begin onActivate Player

if(finished)
   return
endif

if(state == 0)
    set state to 1
    playSound AWDDaedra
    set timer to 15
endif

End


Begin GameMode

if(finished)
   return
endif

if(state == 1)
    set timer to (timer - getSecondsPassed)
  if(timer <= 0)
      set state to 2
      messagebox "Diese furchteinflößende Stimme lässt Euch erschaudern. Wollt Ihr euch dem Willen dieses Wesens unterwerfen?" "Ja!" "Nein!"
  endif

elseif state == 2
  set button to getButtonPressed
 if button == -1
     return
 elseif button == 0
[COLOR=Red]       playsound <soundID>
       set timer to <DauerdesSounds>

       set timer to timer - getsecondspassed
     if(timer <= 0)[/COLOR]
       AWDQuestVSchreinKarte01ref.enable
[COLOR=Red]       set timer to 0[/COLOR]
       set finished to 1
      return
     [COLOR=Red]endif[/COLOR]
 else
[COLOR=Red]      set timer to 0[/COLOR]
      set state to 0
      cast AWDVergessenerSchreinBlitzEffekt player
 endif
endif

End
Ein Bitte hätte ich: Ich musste Dein Skript erstmal wieder so umschreiben, weil wenn alles untereinander steht, ist das sehr schwer zu lesen.
Wenn Du Scripts in einen Kasten hier im Thread machst, dann bitte in einen
Code:
 oder [php] und nicht in ein Zitat ([quote]). Da bleiben dann auch die Leerzeichen. ;)
 
  • Like
Reaktionen: Arielle 1000
Gibt es einen Befehl, mit dem man abfragen kann, ob sich ein Actor in einem Oblivion-Worldspace befindet? Also allgemein, ohne, dass ich jetzt alle IDs aufschreiben muss...
 
HI.

Wie kann ich per Script den effekt benutzen, der erschein wenn man einene Siegelstein berührt?

Das mit dem Moveto ist mir klar.

noch etwas:
Wie kann ich per Script den Schatten berechnen?
Also wenn ich im schatten stehe soll die Variable (zzSchattenVar) 1 sein sonst 0.
wenn möglich noch komplexer, also die Dunkelheit des Schattens in % (1-100)
und dies in der Var speichern?


Wenn möglich OHNE OBSE...

Danke & LG
 
HI.

Wie kann ich per Script den effekt benutzen, der erschein wenn man einene Siegelstein berührt?

Das mit dem Moveto ist mir klar.

noch etwas:
Wie kann ich per Script den Schatten berechnen?
Also wenn ich im schatten stehe soll die Variable (zzSchattenVar) 1 sein sonst 0.
wenn möglich noch komplexer, also die Dunkelheit des Schattens in % (1-100)
und dies in der Var speichern?


Wenn möglich OHNE OBSE...

Danke & LG

Zu 1: Der Effekt ist, glaube ich, mit dem Schließen des Oblivion-Tores verbunden. Ich glaube nicht, dass es diesen Effekt einzeln gibt

Zu 2: Sowas ist noch nicht mal mit OBSE möglich, soweit ich weis.
 
Hättest einfach mal im CS bei einem Siegelstein gucken können xD Müsste "SigilFireBoom01" sein. Wenn du da playgroup foreward benutzt, soltle es den gewünschten Effekt abspielen.
 
Hallo braüchte mal Hilfe bei diesen Skript:

scn w123

short sword

Begin ScriptEffectStart
MessageBox "Welches Schwert wollt ihr haben?", "S1", "S2", "S3"
End


Begin GameMode
Set sword to GetButtonPressed
if sword == 0
;Auswahl 1 S1
player.additem abc 1
elseif sword == 1
;Auswahl 2 S2
player.addiem abc 1
elseif sword == 2
;Auswahl 3 S3
player.additem abc 1

endif
End

Wenn ich den Zauber ausführe passiert nichts.
Was muss ich ändern?

MFG
Sammael