Construction Set Skriptthread zum Construction Set

Danke Gildur, jetzt verschwinden die Teile richtig. :hail:
Nur am Ende das weiterschalten der Quest ging mit dem elseif nicht sondern nur mit einem if. :)

@robinH
Code:
scn [B][Name deiner Wahl][/B]

short act
float Timer

begin GameMode

if timer >= 0
	set timer to timer - getsecondspassed
endif

if player.GetInCell [B][Editor-ID der Zelle][/B] && (Act == 0)
	Set timer to 60
	set Act to 1
endif

If Act && Timer <= 0
	[B][Referenz der Lampe][/B].disable
endif
End

Versuche es mal damit, nach 60 Sekunden wird die Lampe/Lichtquelle entfernt oder in deinem Fall wirkt es als würde sie ausgehen. :)
Du musst nur die fett gedruckten Sachen dementsprechend ändern.

Edit: :sorry:

Mfg Master of Worlds
 
Zuletzt bearbeitet:
  • Like
Reaktionen: robinH
Was soll das denn für ein Script sein? Liegt es auf einem Gegenstand in der Zelle oder auf dem Licht selbst? Du könntest zum Beispiel einen Aktivator erstellen (mit XMarker-nif) auf den du folgendes Skript legst (das Skript kann natürlich auch auf das Licht selber):
Code:
scn name

short init
float timer

Begin onLoad
 if init == 0
  set timer to 5
  set init to 1
 endif
end

Begin GameMode
 if timer >= 0 && init == 1
  set timer to timer - getSecondsPassed
 endif

 if timer < 0 && init == 1
  <Light-Ref>.disable
  set init to 2
 endif
end

Ansonsten könnte man das per Questskript lösen:
Code:
scn name

short init
float fQuestDelayTime
float timer

Begin GameMode
 set fQuestDelayTime to 0.01
 if player.getInCell <Cell-ID> == 1 && init == 0
  set timer to 5
  set init to 1
 endif

 if timer >= 0 && init == 1
  set timer to timer - getSecondsPassed
 endif

 if timer < 0 && init == 1
  <Light-Ref>.disable
  set init to 2
 endif
end

Edit: Drängler!:thunder:
 
  • Like
Reaktionen: robinH
Während ich ohne Laptop auskommen muss, reift in meinem Kopf langsam ein neuer Plan für eine kleine Mod heran. Daher will ich mal fragen, ob es einen Scriptbefehl gibt, der abfragt, ob ein bestimmter Gegenstand im Inventar ist.
 
Hey
ich bräuchte ein Skript dass das Wetter ändert wenn man sich im Radios eines bestimmten gegenstand befindet.

Mfg yves :)
 
@ Yves: Das wird aber nur in einer Messagebox geregelt. Der komplette Script würde so lauten:
Code:
sn Scriptname

short doonce

Begin GameMode
If getdistance player <= 140 && doonce == 0 ;70 entpsricht ungefähr 1 Meter
Forceweather [WetterID]
set doonce to 1
Endif

Für [WetterID] musst du die entsprechende Wetter-ID einsetzen.
Forceweather lässt das Wetter sofort wechseln, der Übergang ist relativ schnell. Willst du einen längeren, sanften Übergang, ersetzt du Forceweather durch setweather.

@ Jollina: Man kann keine Items ausrüsten.
Code:
scn Name

short button

Begin OnActivate
     if MenuMode
          MessageBox "Wollt Ihr "xy"?", "Ja","Nein"
     else
          activate
     endif
End

Begin MenuMode
    set button to GetButtonPressed
        if (button == 0) && (Player.GetItemCount Z >= 1) && (Player.GetItemCount W >= 1)
            ;Auswahl 1 Ja
            Player.RemoveItem Z 1
            Player.RemoveItem W 1
            Player.AddItem A 1
            MessageBox "xy war erfolgreich"
    Endif
End
 
Zuletzt bearbeitet:
  • Like
Reaktionen: robinH
@ Jollina: Man kann keine Items ausrüsten.

Code:
scn Name

short button

Begin OnActivate
     if MenuMode
          MessageBox "Wollt Ihr "xy"?", "Ja","Nein"
     else
          activate
     endif
End

Begin MenuMode
    set button to GetButtonPressed
        if (button == 0) && (Player.GetItemCount Z >= 1) && (Player.GetItemCount W >= 1)
            ;Auswahl 1 Ja
            Player.RemoveItem Z 1
            Player.RemoveItem W 1
            Player.AddItem A 1
            MessageBox "xy war erfolgreich"
    Endif
End

Das funktioniert nicht. Ich habe noch folgende Sachen geändert, nämlich:

1)
Die Bedingung mit der Anzahl der beiden Items muss schon oben hin, denn die MessageBox soll ja erst erscheinen, wenn ich die beiden Items im Inventar habe. Das funktioniert aber auch nicht, denn mein Chara isst die Zutaten nur, die MessageBox geht aber nicht auf. Scheinbar funktioniert das im MenuMode nicht.

2)
Also lasse ich MenuMode weg. Das funktioniert, die MessageBox erscheint. Das hätte aber zur Folge, dass ich diese Zutaten nie mehr in mein Inventar aufnehmen könnte, da immer die MessageBox erscheint.

3)
Im unteren Abschnitt muss man MenuMode durch GameMode ersetzen. Hatte vorher den merkwürdigen Effekt, dass sich laufend das Item "A" hinzugefügt hat.

Mein Script sieht jetzt so aus:

Code:
scn Name

short button

Begin OnAdd
     if (Player.GetItemCount Z >= 1) && (Player.GetItemCount W >= 1)
          MessageBox "Wollt Ihr "xy"?","Ja","Nein"
     else
          activate
     endif
End

Begin GameMode
    set button to GetButtonPressed
        if (button == 0)
            ;Auswahl 1 Ja
            Player.RemoveItem Z 1
            Player.RemoveItem W 1
            Player.AddItem A 1
            MessageBox "xy war erfolgreich"
    Endif
End

So glücklich bin ich damit jedoch nicht. Ich hätte das ganze gerne im MenuMode ähnlich wie beim Vergiften einer Waffe: Man aktiviert das Gift, Waffe auswählen und eine MessageBox erscheint "Wollt Ihr vergiften blabla..."

Außerdem stürzt Oblivion komischerweise nach dem Script ab.
 
Hab wieder ne frage.

ich möchte einen Zauber machen der bei dem Aufprall auf den boden,Stein etc.
Mich an die Stelle des aufpralls beamt.. Ich brauche nur noch hilfe beim script:
sieht gerade so aus
Code:
scn reise

begin scripteffectstart

 
player.moveto ; was muss hinter moveto?? und brauche ich moveto ;überhaupt?

end
Hoffe ihr versteht was ich will ;)
 
Zuletzt bearbeitet:
So glücklich bin ich damit jedoch nicht. Ich hätte das ganze gerne im MenuMode ähnlich wie beim Vergiften einer Waffe: Man aktiviert das Gift, Waffe auswählen und eine MessageBox erscheint "Wollt Ihr vergiften blabla..."

Außerdem stürzt Oblivion komischerweise nach dem Script ab.
Nimm halt statt OnAdd einfach OnEquip, denn das reagiert, wenn man es im Inventar anklickt, also so wie ein Gift.
 
Hey Ho
Hab eine frage und zwar wie kann ich machen das nach einer Converstion der NPC zu einem X-Marker geht und dort einen Zauber ausführt.

Mfg Yves
 
Dann kannst du ja vielleicht einen Misc-Gegenstand verwenden (also mit onequip), z.B. statt das rohe Verbinden von 2 Gegenständen nimmst du halt eine Mischschüssel, ein Seil, einen Hammer ... irgendwas, was deine Gegenstände zum neuen vereint. OnActivate geht soweit ich weiß nur, wenn der Gegenstand auf dem Boden liegt und dann aktiviert wird?
 
  • Like
Reaktionen: Jollina
Dann kannst du ja vielleicht einen Misc-Gegenstand verwenden (also mit onequip), z.B. statt das rohe Verbinden von 2 Gegenständen nimmst du halt eine Mischschüssel, ein Seil, einen Hammer ... irgendwas, was deine Gegenstände zum neuen vereint. OnActivate geht soweit ich weiß nur, wenn der Gegenstand auf dem Boden liegt und dann aktiviert wird?

Ja, danke. Das hat funktioniert mit einem Misc Item und OnEquip Player.

Nur ein Problem habe ich noch.

Nachdem die Abfrage durchgelaufen ist, die Zutat aus dem Inventar entfernt und das neue Item hinzugefügt wurde, erscheint die MessageBox mit "Ihr habt...!". Wenn ich auf ok klicke wird das Entfernen/Hinzufügen undendlich fortgeführt, auch wenn ich keine Zutaten mehr im Inventar habe worauf sich die if-Abfrage bezieht. Woran liegt das?

Der entsprechende Script sieht jetzt so aus. Anmerkung: Item X bleibt weiterhin im Inventar.

Code:
scn "Script"

short button

Begin OnEquip Player
     if MenuMode && (Player.GetItemCount "X" == 1) && (Player.GetItemCount "Y" >= 1)
          MessageBox "Wollt Ihr...?","Ja","Nein"
     else
          activate
     endif
End

Begin MenuMode
    set button to GetButtonPressed
        if (button == 0)
            ;Auswahl 1 Ja
            Player.RemoveItem "Y" 1
            Player.AddItem "A" 1
          MessageBox "Ihr habt...!"
    Endif
End
 
Zuletzt bearbeitet:
Meine Idee wäre folgende:
Das "set button to GetButtonPressed" bezieht sich auf den gesamten MenuMode-Block. Das Ok von der zweiten MessageBox wird auch zu der Schleife gezählt und die Variable "button" wird auf "0" gesetzt, da Ok ja der erste Button ist. Deswegen wird der ganze Block noch einmal ausgeführt und wiederholt sich unendlich oft.

Vielleicht solltest du auch noch angeben, was passiert, wenn "Nein" gedrückt wird. So würde nein gedrückt und das Programm würde nichts machen.
 
Kann man eigentlich eine Verzauberung einer Waffe von einem Zauber abhängig machen, d.h. dass man die verzauberung mit nem Zauber aktiviert, und wenn ja, wie?
 
Spontan würde ich jetzt mal sagen, dass man auf den Zauber einen Skript legt, der das dann bewegt. Aber genau weiß ich das auch nicht, habe mich noch nicht allzu sehr mit den Zauberskripts beschäftigt.