Construction Set Skriptthread zum Construction Set

@Arielle
Zu 1)
Keine Ahnung

Zu 2)
Dazu schreibst du das in die "Nein" Auswahl

Code:
...
Cast ID-von-Zauber player
...

Und der Zauber ist ein Scriptzauber mit diesem Script

Code:
scn ...

Ref Ziel

Begin ScriptEffectStart

Set Ziel to GetSelf
Ziel.kill

End
 
  • Like
Reaktionen: Arielle 1000
Ist in diesem Skript mit "Ziel" auch der Player gemeint?
Sorry, wenn die Frage dumm erscheint, aber ich habe wirklich gar keine Ahnung.



edit: bitte jetzt nicht die Haare raufen......wohin genau soll ich das "Cast ID-von-Zauber player" einsetzen?
Könntest du mir das bitte einsetzen und das fertige Skript nochmal posten?
 
Zuletzt bearbeitet:
Kannst du machen, aber die Zielreferenz wird in der Zeile davor automatisch gesetzt.
Eigentlich sollte es auch reichen, wenn du das Script nur so schreibst:
Code:
scn name

Begin ScriptEffectStart

kill

end

Der "Cast"-Befehl kommt in die Abfrage für "button == 1" (Antwort: Nein), also unter das "else" und "set state to 0".
 
Ich benötige einen Skript...

1.
... der einen Sound aktiviert, sobald der Spieler eine Triggerbox durchschreitet.

2.
...der einen "Motion Blur" (bzw. Verschwimmungseffekt) beim Spieler verursacht und für X Sekunden die Geschwindigkeit um X erhöht, wenn der Sound ertönt.


Man könnte zwar ein und dieselbe Triggerbox für den Adrenalineffekt UND den Sound verwenden, aber es wäre logischer, wenn der Effekt erst unmittelbar eintritt, nachdem der Sound ertönt ist.

Ich wäre für Antworten sehr dankbar. :)

Grüße,

peecee
 
Ich nehme trotzdem nur einen Trigger:
Code:
scn name

short triggered
short finished
float timer

Begin onTriggerActor player

if finished
 return
endif

if triggered == 0
 set triggered to 1
 set timer to <Länge-des-Sounds>
 playSound <Sound-ID>
endif

end


Begin GameMode

if finished
 return
endif

if triggered
 if timer > 0
  set timer to (timer - getSecondsPassed)
  if triggered == 2
   triggerHitShader 3   ;kannst du je nach Belieben verändern (auch mit Nachkommastellen)
  endif
 else
  if triggered == 1
   set triggered to 2
   set timer to x  ;gewünschte Dauer des Effekts
   player.modAV speed y   ;gewünschter Geschwindigkeitsbonus
  else
   set finished to 1
   player.modAV speed -y   ;Rücknahme des Speed-Bonus
  endif
 endif
endif

end
 
  • Like
Reaktionen: peecee
Du musst zuerst die fünf Marker platzieren und ihnen allen eine Referenz zuweisen. Das Skript sieht dann so aus:
Code:
scn name

short random

Begin onActivate

if isActionRef player
 set random to getRandomPercent
 if random >= 80
  player.moveTo <Marker1-Ref>
 elseif random >= 60
  player.moveTo <Marker2-Ref>
 elseif random >= 40
  player.moveTo <Marker3-Ref>
 elseif random >= 20
  player.moveTo <Marker4-Ref>
 else
  player.moveTo <Marker5-Ref>
 endif
endif

end
 
  • Like
Reaktionen: ichich
Ich nehme trotzdem nur einen Trigger:
Code:
scn name

short triggered
short finished
float timer

Begin onTriggerActor player

if finished
 return
endif

if triggered == 0
 set triggered to 1
 set timer to <Länge-des-Sounds>
 playSound <Sound-ID>
endif

end


Begin GameMode

if finished
 return
endif

if triggered
 if timer > 0
  set timer to (timer - getSecondsPassed)
  if triggered == 2
   triggerHitShader 3   ;kannst du je nach Belieben verändern (auch mit Nachkommastellen)
  endif
 else
  if triggered == 1
   set triggered to 2
   set timer to x  ;gewünschte Dauer des Effekts
   player.modAV speed y   ;gewünschter Geschwindigkeitsbonus
  else
   set finished to 1
   player.modAV speed -y   ;Rücknahme des Speed-Bonus
  endif
 endif
endif

end

Vielen Dank Diarrhoe! :good:

Mir ist eine wichtige Sache eingefallen, die ich noch benötige...

Sobald man eine Triggerbox durchschreitet, sollen sämtliche Items aus dem Inventar des Spielers in das Inventar einer Kreatur X verschoben werden.

Das war's erstmal. :)

Grüße,

peecee
 
Sollte so funktionieren:
Code:
scn name

short triggered

Begin onTriggerActor player

if triggered
 return
endif
set triggered to 1
player.removeAllItems <Creature-Ref>

end
 
  • Like
Reaktionen: peecee
Skript aufs Item:
Code:
scn name

short doonce

Begin onAdd player

if doonce
 return
endif
set doonce to 1
<Ref>.enable

end
Du kannst ja fast einen Thread nur mit deinen Skriptfragen aufmachen... :ugly:
 
  • Like
Reaktionen: ichich
Ich hab mal wieder ne frage. Diesmal zu einem bestehenden Script:
Code:
scn PWBGDoorLockScript
;Dieser Script bewirkt, dass Türen Falls sie aufgesperrt sind wieder zugesperrt werden können
short Open
Begin OnActivate
If Open == 0 ;Wenn die Tür geschlossen ist
 activate ;Aktiviere die Tür
 Set Open to 1 ; Setze Open auf eins
endif
If Open == 1 ;Wenn die Tür geöffnet ist
 activate ;Aktiviere die Tür
 Lock Open ;Tür auf Unmöglich zusperren
 Set Open to 0 ;Setze Open auf 0
endif
End

Als ich die Tür dann ingame aktiviert habe(ist keine teleport tür) ist Oblivion abgestürzt. oblivion funktioniert nicht mehr etc.
Kann jemand in dem Script einen (oder mehrere;)) Fehler finden? Bitte auch posten wenn ihr glaubt dass alles passt...dann liegts warscheinlich an was anderem.
LG
Dacri
 
Etwas offensichtliches: Du solltest die beiden Bedingungen durch ein "elseif" verknüpfen.
Code:
scn name

short open

Begin onActivate

if open
 activate
 lock 100
 set open to 0
else
 activate
 set open to 1
endif

end
Ich habe auch das "lock open" geändert, da "open" in dem Fall 1 wäre, was nicht unmöglich ist, sondern sehr leicht.
Näheres kann ich nicht sagen, da ich nicht weiß, was genau das Skript bewirken soll.
 
  • Like
Reaktionen: Dacri
Das lock Open habe ich beim posten falsch geschrieben...da sollte eigentlich 100 stehen. Das stimmt also eigentlich schon... aber eine Frage habe ich noch zu deinem Script: Du hast am Anfang eine Bedingung "If Open". Open ist in meinem Fall eine Variable, müsste da dann nicht stehen "If Open == 0" ? Oder gibt es einen Befehl? Bedingung die Open heist?
LG
Dacri
 
Du kannst einfach eine Variable so abfragen,

Code:
if(<var>)
    ; do stuff
endif
wenn Du abfragen willst, ob die Variable einen Wert hat. Dabei ist es egal, wie groß dieser Wert ist.
 
  • Like
Reaktionen: Dacri
Da "open" nur die Werte 0 und 1 annimmt, kann man ruhig "if open" als alias für "if open == 1" abfragen. Angeblich ist das Skript schneller, wenn man die Relation weglässt, was bei boolschen Variablen ja auch egal ist.
 
  • Like
Reaktionen: Dacri
Ok, habe das mal ausprobiert, allerdings geht es nicht...Ich kann das ganze nur einmal ausführen. ich glaube wenn da steht "if open", dann heist das dass open keinen wert hat, also auch nicht 0. Das funktioniert dann beim ersten mal, da unter dieser Variable noch nichts gespeichert wurde, aber später wird dann da ja 0 gespeichert, deshalb geht es nicht.
oder rede ich gerade völligen Schwachsinn?:ugly:
LG
Dacri
 
hmmm...Der Script geht irgendwie einfach nicht...habe auch schon rumprobiert wenn ich nehme if open == 0 und sonst was...Die Tür wird aufgesperrt, die message erscheint, dass die Tür mit einem schlüssel geöffnet wurde, dann fängt die Tür an aufzugehen und wird aber sofort wieder in den urpsrungszustand zurückgesetzt und zugesperrt.
Also frag ich nochmal:

Ich brauche einen Script, der bewirkt dass:
Wenn man eine Tür, die man vorher aufmacht wieder zumacht, das heist sie ein zweites mal aktiviert soll die Tür auf unmöglich verschlossen werden. Das ganze soll wiederholbar sein, also wenn man die Tür nun ein drittes mal aktivert soll sie wieder aufgesperrt und geöffnet werden und wenn man sie ein viertes mal aktiviert soll sie wieder zugesperrt werden...

So, jetzt ist das ganze hoffe ich etwas verständlicher...die Beschreibungen in meinem Script sind wohl doch nur für mich verständlich^^

LG
Dacri
 
Probiers mal so:
Code:
scn name

short open

Begin onActivate

if isAnimPlaying
 return
endif

if open
 set open to 0
 activate
 lock 100
else
 set open to 1
 unlock
 activate
endif

end
 
  • Like
Reaktionen: Dacri