Construction Set Skript für ein Bett

Beolo

Abenteurer
Hallo Miteinander,

ich möchte ein Bett bauen, welches den Spieler von Attributsverlusten befreit wenn er darin schläft. Dazu habe ich mir einen Spell gebastelt und darin alle Wiederherstellungszauber eingefügt. Hoffe mal daß das auch so funktioniert, habe nämlich noch nie einen Zauber erstellt.
Auf das Bett möchte ich ein Skript legen welches den Zauber ausführt, allerdings wird beim Schlafen das Menü angezeigt und einen MenuMode Skript habe ich noch nie erstellt.
Wer wäre so nett und würde sich mein Beispiel einmal anschauen?

Code:
scn BettSkript

short Schlafen

Begin OnActivate

    if ( IsActionRef Player == 1 ) && ( GetStage QuestID >= 60 ) 
         Set Schlafen to 1
endif

Activate

End

Begin MenuMode 1012

    if ( Schlafen == 1 )
       Cast SpellID Player ; 
       Message "Ihr fühlt Euch wie neugeboren, bla bla"
       Set Schlafen to 0
    endif
End

Viele Grüsse
Gert
 
Funktioniert das script nicht ? Wenn ja wo hängt es.
Ansonsten einfach mal Testen würde ich sagen ;)

Grüsse Zerlix
 
Das ist doch gut... ansonsten brauchst du keine ShortVariable.... für Schlafen das Spiel kennt die Funktion

get pcsleeping (oder is-sleeping, weiß nicht mehr guck mal öh... B&M I da haben wir das am Bett der Stute und dann gibt es das noch bei ... verdammt!... ach ja Hernantier Quest MS08 <- ich glaub am AMULETTE, hängt das Script drann... also "MS08Amulette" oder so...)

Gruß
Ryan
 
Danke für Euere Antworten. :)

Ich war mir nicht sicher ob das Skript überhaupt so aufgebaut werden kann. Skripte mit mehr als fünf Zeilen übersteigen bei Weitem mein Fassungsvermögen und ich staune immer wieder, weshalb doch einige meiner Kreationen funktionieren, kann mir aber nicht erklären warum. Deswegen hege ich auch den Verdacht, daß in meinem Gehirn die Synapsen, welche fürs Skripten benötigt werden, nicht vorhanden sind.
Vielleicht wäre es vernünftiger ein Wiederherstellungsskript auf mein eigenes Bett zu legen. :lol:

Gruß, Gert
 
Ich fühle mich geehrt, Jan:lol: :lol:

Du musst dabei aber aufpassen, denn so kann nur der Player selbst das Gerät aktivieren.

Wenn du willst, dass auch ein NPC das benutzen kann, musst du es so schreiben

Code:
scn Bettscript

ref act


Begin OnActivate
     set act to GetActionRef
     bedref.activate act ;bei bedref referenceId des Bettes einsetzten
End

Kann aber passieren, dass dein Npc dann verschwindet, wenn er dein Bed aktiviert, quasi zu dem Bed im nichts teleportiert wird.
Das eigentliche Bett halt irgendwo im grauen Nichts des Cs versenken und persistant reference anhaken.

Hoffe ich konnte helfen

Gruß

Frontschwein
 

Ich versuche mir gerade vorzustellen welche Vorteile mir daraus erwachsen, wenn ich auf ein Bett ein Skript lege welches den Spieler nicht in dieses, sondern in ein Bett im oblivionschen Nirvana beamt und den NPC der dieses benutzt gleich da behält. :)

Doch irgendwie bringt mich dieses Skript auf eine Idee. In meinem Quest findet der Spieler in einer Höhle am Boden liegend eine bewusstlose Frau. Um sie zu heilen muß er sich auf die Suche nach einem speziellen Heilmittel machen.
Wie wäre es, wenn die Frau an der Schlafkrankheit leidet und der Spieler beim Versuch ihr zu helfen selbst infiziert wird. Die Symtome zeigen sich dann in unkontrollierbaren Schlafattacken und der Schlaf ist nicht erholsam, sondern zehrt an der Lebensenergie. Wäre sicher lustig wenn der Spieler zufallsgesteuert öfter mal für ein, zwei Stündchen entschläft, zum Beispiel während eines Kampfes.
Reicht es aus "SetPCSleepHours" zu benutzen, oder braucht es dazu so ein Nirvanabett, also ein vorhandenes Bett?

Grüsse, Gert
 
Ich glaube da hat jemand die Posts nur überflogen und dabei "Bett" und "Script" gelesen. ;)

Das Script, von Frontschwein, hat dann einen Sinn, wenn man z.B. irgendein Objekt(Tisch) als Schlafplatz misbrauchen will. das geht zwar auch mit "SetPCSleepHours" aber dann kommt das schöne "Fenster" nicht wo man die länge der Schlafdauer einstellen kann.


Grüsse Zerlix
 
Ja Zerlix, ich weiss, meine Frage war auch ironisch gemeint. :D

Beim Testen des Skripts ist mir aufgefallen, daß die Message schon beim ersten Klick auf das Bett erscheint, also noch bevor die Schlafdauer eingestellt wird. Ich würde es vorziehen die Ausführung dieses Blocks in diesen "Ladebildschirm" verlagern. Eigentlich glaubte ich das Flag "1012" würde sich auf dieses Fenster beziehen.
...geht zwar auch mit "SetPCSleepHours" aber dann kommt das schöne "Fenster" nicht wo man die länge der Schlafdauer einstellen kann.
Das ist ja interessant, vielleicht könnte ich diese Funktion auf das Bett legen, weil eine Einstellmöglichkeit in meinem Fall gar nicht von Nöten wäre. Damit könnte gleichzeitig mein obiges Problem gelöst werden.

Gibt es einen Konsolenbefehl mit dem ich der Spielfigur einen Attributsverlust zufügen kann, ansonsten kann ich nicht feststellen ob mein Zauber funktioniert. Im Wiki habe ich keinen passenden gefunden.

Gruß, Gert
 
Beolo schrieb:
Beim Testen des Skripts ist mir aufgefallen, daß die Message schon beim ersten Klick auf das Bett erscheint, also noch bevor die Schlafdauer eingestellt wird. Ich würde es vorziehen die Ausführung dieses Blocks in diesen "Ladebildschirm" verlagern. Eigentlich glaubte ich das Flag "1012" würde sich auf dieses Fenster beziehen.
Hmm, ob nee Message überhaupt in einem "Ladebidschirm" erscheint ist fraglich. So könntest du es aber nach dem Aufwachen erreichen.
Keine Ahnung ob es so funktioniert, aber einen Versuch ist es wert ;)
Code:
scn BettSkript

short Schlafen

Begin OnActivate

    if ( IsActionRef Player == 1 ) && ( GetStage QuestID >= 60 ) 
         Set Schlafen to 1
endif

Activate

End

Begin MenuMode 1012

    if ( Schlafen == 1 )
       Cast SpellID Player ; 
       Set Schlafen to 0
       Set WakeUp to 1
    endif
End

Begin GameMode
     if ( WakeUp == 1 )   
       Message "Ihr fühlt Euch wie neugeboren, bla bla"
       Set WakeUp to 0 
     endif 
end

Beolo schrieb:
Das ist ja interessant, vielleicht könnte ich diese Funktion auf das Bett legen, weil eine Einstellmöglichkeit in meinem Fall gar nicht von Nöten wäre. Damit könnte gleichzeitig mein obiges Problem gelöst werden.
*buh* Vorsichtig, ich habe die Funktion nicht getestet oder ausprobiert.
Aber soweit ich das mit meinen bescheidenen Englischkenntnisse deuten kann, sollte die Funktion so arbeiten.
http://cs.elderscrolls.com/constwiki/index.php/SetPCSleepHours

Beolo schrieb:
Gibt es einen Konsolenbefehl mit dem ich der Spielfigur einen Attributsverlust zufügen kann, ansonsten kann ich nicht feststellen ob mein Zauber funktioniert. Im Wiki habe ich keinen passenden gefunden.
Gruß, Gert
Code:
     Player.ForceActorValue Strength -10
Eigentlich sollten alle Funktionen auch in der Konsole Arbeiten, jedenfalls konnte ich letztens mit "getpos" und "setpos" in der Konsole rumspielen.
Ansonsten fällt mir nur der gang zur Kaiserlichen Universität ein. Da kannst dir dann ein Spell mit Atributtschaden auf sich selbst basteln ;)
Gruß Zerlix
 
Hallo Zerlix,

beim Sklavin-Alba Modul erscheint eine Message während des Ladebildschirms, also muß es schon möglich sein. Deine Idee mit der Nachricht nach dem Aufwachen finde ich fast noch besser, auf alle Fälle realistischer. Entweder schläft man, oder liest Nachrichten. :lol:
Ich teste dein Skript mal aus und vielen Dank für deine Hilfe.

Gruß, Gert
 
Wenn ihr schon so beim scripten seid, kann mir einer sagen, wo man irgendwie ein Tutorial fürs skripten findet? Weil ich kenne noch keinen einzigen Befehl oder wie man das nennt.

Würd mich um antwort freuen.