Construction Set Skriptthread zum Construction Set

Das ganze kannst du auf einen anderen Gegenstand in der leichen Zelle legen, dem ein Script zugewiesen werden kann (z.B. in ein bestehendes Script mit einbauen) oder du legst es auf eine Dummy-Quest, die nur diese eine Aufgabe hat.

Das Script sieht dann z.B. so aus:
Code:
Scriptname ...

begin GameMode
if (gamehour >= 8) && (gamehour <= 18)
    [Ref-ID des Lichts].disable
elseif (gamehour > 18) && (gamehour < 8)
    [Ref-ID des Lichts].enable 
endif
end

Die Zahlen kannst du beliebig ändern.
So würde das Licht zwischen 8 und 18 Uhr disabled sein (~ausgeschaltet) und zwischen 18 und 8 Uhr enabled sein (~eingeschaltet).

Na das hört sich doch mal gut an. Da ich ja ein Mesh und nicht ein Licht disablen möchte, was kommt [ ] hier hinein. Der IDName oder wie schreibe ich den Objektnamen?
Gibt es etwas dazu zu beachten?

Da es ja nicht die Editor-Id ist sondern die ObjectID ist, würde das bedeuten wenn ich das Objekt sagen wir mal noch 4 mal wo anders verwänden würde, alle 4 Gleichzeitig reagieren? Also auch in verschiedenen Zellen obwohl das Script woanders liegt. Oder müsste ich so bei jedem Objekt in jeder Zelle das neu zuweisen mit einer neuen Object -ID?
 
Zuletzt bearbeitet:
Nein, die ID, die du verwendest, ist für jedes platzierte Objekt einmalig.
Um die Reference-ID zuzuweisen, klickst du im Render-Window doppelt auf das Objekt und gibst dann ganz oben bein "Reference Editor ID" etwas ein und setzt unten einen Haken bei "Persistance Reference".
Die ID setzt du dann im Script ein (ohne die []).

Wenn sich die Objekte in verschiedenen Interior- oder Interior- und Exteriorzellen befinden, solltest du mit einem Questscript arbeiten und das Script nicht auf ein Objekt legen, sondern halt auf eine Quest, die nur diese Funktion hat und dauerhaft läuft.
 
  • Like
Reaktionen: robinH
Und noch ne Frage:

Ich mache mir grade ein Skript für einen Beschwörungszauber. Damit sollte man irgendein Objekt herzaubern können (in diesem Fall ein überdimesnsionierter Felsbrocken) und nach der abgelaufenen Beschwörungszeit sollte das Objekt wieder an seine alten Standplatz zurück versetzt werden.

Nun hab ich erstens das Problem, dass ich der Felsbrocken nicht erscheint und zweitens weiß ich nicht wie ich den dann wieder zurücksetze.

Hoffe ihr könnt mir helfen
 
Poste am besten mal Dein Script als edit in Deinen Post, dann können wir sehen wo der Fehler liegt.

Für den Anfang: Ist der Fels eine Persistent Reference?
 
Hm man könnte den Felsen mit nem Teleportskript belegen..aber das würde nicht viel bringen, mit .enable und .disable müsste es gehen. Aber kenne die genauen Skripts dazu nicht.
 
Hey ich habe eine kurze Frage zum Befehl "Streammusic".

Nämlich ist ja bekannt, dass man damit keine Default (Explore) Musik überspielen kann.
Meine Frage: Liegt das Nicht-Gehen des Befehls nur an der Musik aus dem Explore-Ordner oder daran, dass der Music type auf default steht? Also wenn ich jetzt einen Worldspace mit Musik "Dungeon" machen würde (oder nachträglich so ändern), dann würde ja für alle dortigen Cells die "Default" Musik Dungeon sein. Spielt dann also Musik, wenn ich dort Streammusic anwende?

Oder muss explizit die Cell einen Dungeon-Typ haben?
 
...................., solltest du mit einem Questscript arbeiten und das Script nicht auf ein Objekt legen, sondern halt auf eine Quest, die nur diese Funktion hat und dauerhaft läuft.

kNOCHENKEULE ES HAT ALLES SO FUNKTIONIERT WIE DU GESAGT HAST. VERGISS MEINE Mail. Großes Dankeschön an alle die mir geholfen haben.:)

Aber zurück zur Frage von Rakios. Würde mich auch interessieren?
 
Zuletzt bearbeitet:
Hey ich habe eine kurze Frage zum Befehl "Streammusic".

Nämlich ist ja bekannt, dass man damit keine Default (Explore) Musik überspielen kann.
Meine Frage: Liegt das Nicht-Gehen des Befehls nur an der Musik aus dem Explore-Ordner oder daran, dass der Music type auf default steht? Also wenn ich jetzt einen Worldspace mit Musik "Dungeon" machen würde (oder nachträglich so ändern), dann würde ja für alle dortigen Cells die "Default" Musik Dungeon sein. Spielt dann also Musik, wenn ich dort Streammusic anwende?

Oder muss explizit die Cell einen Dungeon-Typ haben?

Damit die Musik wie gewünscht abgespielt wird, muss bei den Zellen der Musiktyp auf Dungeon oder Public gestellt sein, das liegt nicht an den Titeln selbst.
Im Wiki steht ja auch, dass, wenn default eingestellt ist, nur der momentane Titel neu gestartet wird:
StreamMusic works fine in cells with the music type set to either "Dungeon" or "Public" When used in a "Default" cell, StreamMusic only restarts the current track.

Im nächsten Punkt wird jedoch eine Möglichkeit genannt, wie man dies auch mit default-Einstellung umgehen kann:
To use this command in a cell with music-type "Default", you need to call StreamMusic random first, then wait for a frame for the command to be executed, and then use Streammusic "<filename>"

http://cs.elderscrolls.com/constwiki/index.php/StreamMusic


================================

@22er:
Das hier könnte dir helfen:
http://www.scharesoft.de/joomla/forum/showpost.php?p=475873&postcount=11
 
  • Like
Reaktionen: Rakios und 22er
Wie ist es mögich, dass man zu einer bestimmten Stelle teleportiert wird (player.moveto) aber dann nach einer bestimmten Zeit..z.b. 5 Minuten zurück an den Ausgangsort teleportiert wird. Oder zu einer anderen Ref-Id ist mir eigentlich egal.
 
Code:
scn name

short init
float timer

Begin onActivate
 if isActionRef player == 1 && init == 0
  player.MoveTo <Marker-Ref>
  set init to 1
  set timer to 300
 endif
end

Begin GameMode
 if timer >= 0 && init == 1
  set timer to timer - getSecondsPassed
 endif
 if timer == 0 && init == 1
  player.MoveTo <Marker-Ref>
  set init to 2
 endif
end

Edit: Dadurch wird der Spieler beim Aktivieren des gescripteten Objektes zu einem Marker teleportiert und nach fünf Minuten zu einem anderen teleportiert. Die Refs müsstest du durch eigene ersetzen. Wenn der Spieler beim ersten Teleport die Zelle verlässt, kann es sein (bin mir nicht sicher), dass du den GameMode-Block als Quest-Script schreiben musst. Die Variablen init und timer müsstest du dann im Quest-Script nicht deklarieren, aber in "<Aktivator-Ref>.init" und "<Aktivator-Ref>.timer" umändern.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Pc-Killer
Außerdem musst du das Script etwas umschreiben, sonst haut das nicht hin:

Code:
scn name

short init
float timer

Begin onActivate
 if isActionRef player == 1 && init == 0
  set init to 1
  set timer to 300
  player.MoveTo <Marker-Ref>
 endif
end

Begin GameMode
 if timer >= 0 && init == 1
  set timer to timer - getSecondsPassed
 endif
 if timer == 0 && init == 1
  set init to 2
  player.MoveTo <Marker-Ref>
 endif
end

Moveto in Verbindung mit player wirkt wie ein return-Befehl und das Script würde garnicht bis zum Punkt mit dem timer = 300 kommen.
 
  • Like
Reaktionen: Pc-Killer
Ah, Danke euch beiden.

Edit: Das geht doch sicherlich auch mich Begin ScriptEffektStart oder?
Edit2: Klappt iwie nicht. :(
 
Zuletzt bearbeitet:
Zauber Script

hallo

Ich benötige ein Script das den Spieler nach 5 Sekunde(nachdem der Zaber auf die Person traf) zu einem XMaker Teleportiert wird und dann eien MessagesBox erscheinnt.
Danke im Vorraus :)
Lg yves
 
Hoppla. Ich lese jetzt erstmal Deinen post RICHTIG, merke ihn mir und lerne daraus :)
Im Falle das Du einen Zaber auf den Spieler wirken willst, gehe folgendermaßen vor:

Mache einen Zauberspruch und trage im Effektfeld "Script effect" ein. Dann wirst Du aufgefordert ein Script auszuwählen. Das folgende Script nimmst Du als Inhalt, speicherst es aber nicht unter Object, sondern unter Magic effect ab. Neben den Knöpfen im Script Fenster findest Du so ein kleines süßes Rolldownmenu dafür. So. Das sollte jetzt aber laufen.

scn XXX
short stoptimer
short triggered
float timer

begin begin ScriptEffectStart

if triggered == 0 ; Wenn triggered auf 0 steht...
set timer to 5 ; ...setze den Timer auf 5 und
set triggered to 1 ; setz triggered auf 1, damit der Käse nur einmal durchläuft
endif
end

begin gameMode ;Solange das Spiel an ist und sich nicht im pausemodus befindet

if stoptimer == 0 ;Wenn stoptimer auf 0 steht
if timer >= 0 && timer <= 1 ; Und der Timer größer als 0 und kleiner als 1 ist
set stoptimer to 1 ; Setze stoptimer auf 1
player.moveto XXX
endif

if timer >= 0 ;Sollte timer aber größer sein als 1, zähle weiter runter.
set timer to timer - getSecondsPassed ;Setzte timer gleich mit aktuellem timerwert minus 1.
endif
endif
end

*Edit
 
Zuletzt bearbeitet:
Damit die Musik wie gewünscht abgespielt wird, muss bei den Zellen der Musiktyp auf Dungeon oder Public gestellt sein, das liegt nicht an den Titeln selbst.
Im Wiki steht ja auch, dass, wenn default eingestellt ist, nur der momentane Titel neu gestartet wird

I.....
http://www.scharesoft.de/joomla/forum/showpost.php?p=475873&postcount=11


Knochenkeule weisst du, wie die Musik per Script auf stumm gestellt werden kann, umso eine Andere per Soundelement abspielen zu können? Beispiel die Chöre in den Kirchen jaulen auch während die Musik weiter läuft.

Müsste doch einen Befehl geben, der die Lautstärke per Sript beeinflusst. Da das Element ja dann kein Musikfile ist sondern ein Soundfile, wäre damit geholfen. Musik läuft zwar aber man hört sie nicht. Soundfile mit Musiktrack hätte dann ja die selben Partameter wie die Sounds und würde gehört werden.
 
Zuletzt bearbeitet:
Ah, Danke euch beiden.

Edit: Das geht doch sicherlich auch mich Begin ScriptEffektStart oder?
Edit2: Klappt iwie nicht. :(

Hmm, ja. Kanns auch im Grund nicht.
Der GameMode-Block des Scripts wird vermutlich nur ausgeführt, wenn der Spieler in der Zelle ist, in der das Objekt, auf dem das Script liegt, ist.

Das ganze muss etwas anders aufgebaut werden.

Ich teile das ganze mal in zwei Scripte auf.

1. Das Script für den Gegenstand, dass der Spieler aktiviert:
Du gehst erst mal oben im CS auf Gameplay und dann auf Globals. Dort erstellst du eine neue. Short, Wert auf 0.
Code:
Scriptname ...

short once

begin OnActivate player
if (once == 0)
    set once to 1
    set [Global] to 1
    player.moveto [Ref-ID XMarker 1]
endif
end

Damit wird der Spieler das erste Mal teleportiert. Den Teil in [] muss du natürlich ersetzen und die [] dann weglassen.
Das [Global] halt durch deine gerade erstellte Global ersetzen.

2.Script.
Dies wird ein Quest-Script.
Code:
Scriptname ...

float timer

begin GameMode
if ([Global] == 1)
    set timer to 300
    set [Global] to 2
endif

if ([Gloabl] == 2)
    set timer to timer - GetSecondsPassed
    set [Global] to 3
endif

if (timer <= 0)
    player.moveto [Ref-ID XMarker 2]
endif
end

Hier ebenfalls alles in [] ersetzen und die [] weglassen.
Dann erstellst du eine Quest und weist ihr das Script zu, mehr brauchst du da nicht einstellen.

Das ist jetzt etwas umständlicher, sollte jetzt aber klappen.


=============================

@robinH:
Einen direkten Befehl dafür gibts, meine ich, nicht.
Da müsstest du etwas tricksen, indem du eine Musikdatei erstellst, die stumm ist. Die spielst du dann an der entsprechenden Stelle.
 
Zuletzt bearbeitet:
allo Leute

Vielleicht sehe ich den Wald vor lauter Bäumen nicht, oder wie auch immer. Ich kann den Fehler nicht finden. :öhm

Es geht hier um die Abfrage der "Schürze der Geschicklichkeit. Das Teil ist gelevelt und hat die aufsteigende Bezeichnung:
MS14RytheApron01
MS14RytheApron05
MS14RytheApron10
MS14RytheApron15
MS14RytheApron20
MS14RytheApron25

Ich frage also ab, welche dieser möglichen Schürzen der Spieler im Inventar hat. Genau das funktioniert nicht. Es erfolgt die Meldung:

Message "Ihr solltet die Schürze der Geschicklichkeit besitzen um sie hinein legen zu können."

Also wird die Abfrage mit GetItemCount == 0 beantwortet.

Das Script ist erprobt und funktioniert bei allen anderen Items. Warum nicht bei der Schürze? Habe ich wo einen Fehler, wenn ja (muss ja), ich sehe ihn nicht.


PHP:
scn MuseumVitrineMalerScript

short button
short messageNumber
short FirstTime
short Schuerze
short TrollFett
short Terpentin

Begin Onload

	if FirstTime == 0
		set FirstTime to 1									
		SchuerzeRef.disable
		TrollFettRef.disable
		TerpentinRef.disable
		MalerLichtRef.disable
	endif

end

begin OnActivate

	if IsActionRef player == 1
		set messageNumber to 0
		MessageBox "Was möchtet Ihr machen?", "Etwas ablegen", "Etwas entnehmen", "Abbrechen"
	endif

end

begin gamemode

		set button to getButtonPressed
		if messagenumber == 0
			if button == 0
				MessageBox "Was möchtet Ihr ablegen?", "Schürze der Geschicklichkeit", "Fett eines gemahlten Trolls", "Terpentin", "Abbrechen"
				set messageNumber to 1
			elseif button == 1	
				MessageBox "Was möchtet Ihr entnehmen?", "Schürze der Geschicklichkeit", "Fett eines gemahlten Trolls", "Terpentin", "Abbrechen"
				set messageNumber to 2		
			elseif button == 2
				return		
			endif
		elseif messageNumber == 1
			if Button == 0
				if Schuerze == 0
					if player.GetItemCount MS14RytheApron01 >= 1
						player.RemoveItem MS14RytheApron01 1
						SchuerzeRef.enable
						set Schuerze to 1
					elseif player.GetItemCount MS14RytheApron05 >= 1
						player.RemoveItem MS14RytheApron05 1
						SchuerzeRef.enable
						set Schuerze to 2
					elseif player.GetItemCount MS14RytheApron10 >= 1
						player.RemoveItem MS14RytheApron10 1
						SchuerzeRef.enable
						set Schuerze to 3
					elseif player.GetItemCount MS14RytheApron15 >= 1
						player.RemoveItem MS14RytheApron15 1
						SchuerzeRef.enable
						set Schuerze to 4
					elseif player.GetItemCount MS14RytheApron20 >= 1
						player.RemoveItem MS14RytheApron20 1
						SchuerzeRef.enable
						set Schuerze to 5
					elseif player.GetItemCount MS14RytheApron25 >= 1
						player.RemoveItem MS14RytheApron25 1
						SchuerzeRef.enable
						set Schuerze to 6
					elseif player.GetItemCount MS14RytheApron01 == 0 || player.GetItemCount MS14RytheApron05 == 0 || player.GetItemCount MS14RytheApron10 == 0 || player.GetItemCount MS14RytheApron15 == 0 || player.GetItemCount MS14RytheApron20 == 0 || player.GetItemCount MS14RytheApron25 == 0
						Message "Ihr solltet die Schürze der Geschicklichkeit besitzen um sie hinein legen zu können."
					endif
				elseif Schuerze == 1
					Message "Die Schürze der Geschicklichkeit ist schon in der Vitrine."
				endif
			elseif Button == 1
				if TrollFett == 0
					if player.GetItemCount PaintedTrollFat >= 1					
						TrollFettRef.enable
						player.RemoveItem PaintedTrollFat 1
						set TrollFett to 1
					elseif player.GetItemCount PaintedTrollFat == 0
						Message "Ihr solltet das Fett eines gemahlten Trolls besitzen um es hinein legen zu können."
					endif
				elseif TrollFett == 1
					Message "Das Fett eines gemahlten Trolls ist schon in der Vitrine."
				endif
			elseif Button == 2
				if Terpentin == 0
					if player.GetItemCount MS14PotionTurpentine >= 1
						player.RemoveItem MS14PotionTurpentine 1
						TerpentinRef.enable
						set Terpentin to 1
					elseif player.GetItemCount MS14PotionTurpentine04 >= 1
						player.RemoveItem MS14PotionTurpentine04 1
						TerpentinRef.enable
						set Terpentin to 2
					elseif player.GetItemCount MS14PotionTurpentine08 >= 1
						player.RemoveItem MS14PotionTurpentine08 1
						TerpentinRef.enable
						set Terpentin to 3
					elseif player.GetItemCount MS14PotionTurpentine12 >= 1
						player.RemoveItem MS14PotionTurpentine12 1
						TerpentinRef.enable
						set Terpentin to 4
					elseif player.GetItemCount MS14PotionTurpentine16 >= 1
						player.RemoveItem MS14PotionTurpentine16 1
						TerpentinRef.enable
						set Terpentin to 5
					elseif player.GetItemCount MS14PotionTurpentine20 >= 1
						player.RemoveItem MS14PotionTurpentine20 1
						TerpentinRef.enable
						set Terpentin to 6
					elseif player.GetItemCount MS14PotionTurpentine == 0 || player.GetItemCount MS14PotionTurpentine04 == 0 || player.GetItemCount MS14PotionTurpentine08 == 0 || player.GetItemCount MS14PotionTurpentine12 == 0 || player.GetItemCount MS14PotionTurpentine16 == 0 || player.GetItemCount MS14PotionTurpentine20 == 0
						Message "Ihr solltet das Terpentin besitzen um es hinein legen zu können."
					endif
				elseif Terpentin == 1
					Message "Das Terpentin ist schon in der Vitrine."
				endif
			elseif Button == 3
				return
			endif
		elseif messageNumber == 2
			if Button == 0
				if Schuerze == 1
					player.AddItem MS14RytheApron01 1
					SchuerzeRef.disable
					set Schuerze to 0
				elseif Schuerze == 2
					player.AddItem MS14RytheApron05 1
					SchuerzeRef.disable
					set Schuerze to 0
				elseif Schuerze == 3
					player.AddItem MS14RytheApron10 1
					SchuerzeRef.disable
					set Schuerze to 0
				elseif Schuerze == 4
					player.AddItem MS14RytheApron15 1
					SchuerzeRef.disable
					set Schuerze to 0
				elseif Schuerze == 5
					player.AddItem MS14RytheApron20 1
					SchuerzeRef.disable
					set Schuerze to 0
				elseif Schuerze == 6
					player.AddItem MS14RytheApron25 1
					SchuerzeRef.disable
					set Schuerze to 0
				elseif Schuerze == 0
					Message "Was wollt Ihr entnehmen? Ihr habt noch nichts hinein gelegt."
				endif
			elseif Button == 1
				if TrollFett == 1
					player.AddItem PaintedTrollFat 1
					TrollFettRef.disable
					set TrollFett to 0
				elseif TrollFett == 0
					Message "Was wollt Ihr entnehmen? Ihr habt noch nichts hinein gelegt."
				endif
			elseif Button == 2
				if Terpentin == 1
					player.AddItem MS14PotionTurpentine 1
					TerpentinRef.disable
					set Terpentin to 0
				elseif Terpentin == 2
					player.AddItem MS14PotionTurpentine04 1
					TerpentinRef.disable
					set Terpentin to 0
				elseif Terpentin == 3
					player.AddItem MS14PotionTurpentine08 1
					TerpentinRef.disable
					set Terpentin to 0
				elseif Terpentin == 4
					player.AddItem MS14PotionTurpentine12 1
					TerpentinRef.disable
					set Terpentin to 0
				elseif Terpentin == 5
					player.AddItem MS14PotionTurpentine16 1
					TerpentinRef.disable
					set Terpentin to 0
				elseif Terpentin == 6
					player.AddItem MS14PotionTurpentine20 1
					TerpentinRef.disable
					set Terpentin to 0
				elseif Terpentin == 0
					Message "Was wollt Ihr entnehmen? Ihr habt noch nichts hinein gelegt."
				endif
			elseif Button == 3
				return
			endif
	endif
	if Schuerze == 0 && Terpentin == 0 && TrollFett == 0
		MalerLichtRef.disable
	else
		MalerLichtRef.enable
	endif

end
 
Code:
scn MuseumVitrineMalerScript 

short button 
short messageNumber 
short FirstTime 
short Schuerze 
short TrollFett 
short Terpentin 

Begin Onload 

    if FirstTime == 0 
        set FirstTime to 1                                     
        SchuerzeRef.disable 
        TrollFettRef.disable 
        TerpentinRef.disable 
        MalerLichtRef.disable 
    endif 

end 

begin OnActivate 

    if IsActionRef player == 1 
        set messageNumber to 0 
        MessageBox "Was möchtet Ihr machen?", "Etwas ablegen", "Etwas entnehmen", "Abbrechen" 
    endif 

end 

begin gamemode 

        set button to getButtonPressed 
        if messagenumber == 0 
            if button == 0 
                MessageBox "Was möchtet Ihr ablegen?", "Schürze der Geschicklichkeit", "Fett eines gemahlten Trolls", "Terpentin", "Abbrechen" 
                set messageNumber to 1 
            elseif button == 1     
                MessageBox "Was möchtet Ihr entnehmen?", "Schürze der Geschicklichkeit", "Fett eines gemahlten Trolls", "Terpentin", "Abbrechen" 
                set messageNumber to 2         
            elseif button == 2 
                return         
            endif 
        elseif messageNumber == 1 
			Set Button to GetButtonPressed
            if Button == 0 
                if Schuerze == 0 
                    if player.GetItemCount MS14RytheApron01 >= 1 
                        player.RemoveItem MS14RytheApron01 1 
                        SchuerzeRef.enable 
                        set Schuerze to 1 
                    elseif player.GetItemCount MS14RytheApron05 >= 1 
                        player.RemoveItem MS14RytheApron05 1 
                        SchuerzeRef.enable 
                        set Schuerze to 2 
                    elseif player.GetItemCount MS14RytheApron10 >= 1 
                        player.RemoveItem MS14RytheApron10 1 
                        SchuerzeRef.enable 
                        set Schuerze to 3 
                    elseif player.GetItemCount MS14RytheApron15 >= 1 
                        player.RemoveItem MS14RytheApron15 1 
                        SchuerzeRef.enable 
                        set Schuerze to 4 
                    elseif player.GetItemCount MS14RytheApron20 >= 1 
                        player.RemoveItem MS14RytheApron20 1 
                        SchuerzeRef.enable 
                        set Schuerze to 5 
                    elseif player.GetItemCount MS14RytheApron25 >= 1 
                        player.RemoveItem MS14RytheApron25 1 
                        SchuerzeRef.enable 
                        set Schuerze to 6 
                    elseif player.GetItemCount MS14RytheApron01 == 0 || player.GetItemCount MS14RytheApron05 == 0 || player.GetItemCount MS14RytheApron10 == 0 || player.GetItemCount MS14RytheApron15 == 0 || player.GetItemCount MS14RytheApron20 == 0 || player.GetItemCount MS14RytheApron25 == 0 
                        Message "Ihr solltet die Schürze der Geschicklichkeit besitzen um sie hinein legen zu können." 
                    endif 
                elseif Schuerze == 1 
                    Message "Die Schürze der Geschicklichkeit ist schon in der Vitrine." 
                endif 
            elseif Button == 1 
                if TrollFett == 0 
                    if player.GetItemCount PaintedTrollFat >= 1                     
                        TrollFettRef.enable 
                        player.RemoveItem PaintedTrollFat 1 
                        set TrollFett to 1 
                    elseif player.GetItemCount PaintedTrollFat == 0 
                        Message "Ihr solltet das Fett eines gemahlten Trolls besitzen um es hinein legen zu können." 
                    endif 
                elseif TrollFett == 1 
                    Message "Das Fett eines gemahlten Trolls ist schon in der Vitrine." 
                endif 
            elseif Button == 2 
                if Terpentin == 0 
                    if player.GetItemCount MS14PotionTurpentine >= 1 
                        player.RemoveItem MS14PotionTurpentine 1 
                        TerpentinRef.enable 
                        set Terpentin to 1 
                    elseif player.GetItemCount MS14PotionTurpentine04 >= 1 
                        player.RemoveItem MS14PotionTurpentine04 1 
                        TerpentinRef.enable 
                        set Terpentin to 2 
                    elseif player.GetItemCount MS14PotionTurpentine08 >= 1 
                        player.RemoveItem MS14PotionTurpentine08 1 
                        TerpentinRef.enable 
                        set Terpentin to 3 
                    elseif player.GetItemCount MS14PotionTurpentine12 >= 1 
                        player.RemoveItem MS14PotionTurpentine12 1 
                        TerpentinRef.enable 
                        set Terpentin to 4 
                    elseif player.GetItemCount MS14PotionTurpentine16 >= 1 
                        player.RemoveItem MS14PotionTurpentine16 1 
                        TerpentinRef.enable 
                        set Terpentin to 5 
                    elseif player.GetItemCount MS14PotionTurpentine20 >= 1 
                        player.RemoveItem MS14PotionTurpentine20 1 
                        TerpentinRef.enable 
                        set Terpentin to 6 
                    elseif player.GetItemCount MS14PotionTurpentine == 0 || player.GetItemCount MS14PotionTurpentine04 == 0 || player.GetItemCount MS14PotionTurpentine08 == 0 || player.GetItemCount MS14PotionTurpentine12 == 0 || player.GetItemCount MS14PotionTurpentine16 == 0 || player.GetItemCount MS14PotionTurpentine20 == 0 
                        Message "Ihr solltet das Terpentin besitzen um es hinein legen zu können." 
                    endif 
                elseif Terpentin == 1 
                    Message "Das Terpentin ist schon in der Vitrine." 
                endif 
            elseif Button == 3 
                return 
            endif 
        elseif messageNumber == 2 
			Set Button to GetButtonPressed
            if Button == 0 
                if Schuerze == 1 
                    player.AddItem MS14RytheApron01 1 
                    SchuerzeRef.disable 
                    set Schuerze to 0 
                elseif Schuerze == 2 
                    player.AddItem MS14RytheApron05 1 
                    SchuerzeRef.disable 
                    set Schuerze to 0 
                elseif Schuerze == 3 
                    player.AddItem MS14RytheApron10 1 
                    SchuerzeRef.disable 
                    set Schuerze to 0 
                elseif Schuerze == 4 
                    player.AddItem MS14RytheApron15 1 
                    SchuerzeRef.disable 
                    set Schuerze to 0 
                elseif Schuerze == 5 
                    player.AddItem MS14RytheApron20 1 
                    SchuerzeRef.disable 
                    set Schuerze to 0 
                elseif Schuerze == 6 
                    player.AddItem MS14RytheApron25 1 
                    SchuerzeRef.disable 
                    set Schuerze to 0 
                elseif Schuerze == 0 
                    Message "Was wollt Ihr entnehmen? Ihr habt noch nichts hinein gelegt." 
                endif 
            elseif Button == 1 
                if TrollFett == 1 
                    player.AddItem PaintedTrollFat 1 
                    TrollFettRef.disable 
                    set TrollFett to 0 
                elseif TrollFett == 0 
                    Message "Was wollt Ihr entnehmen? Ihr habt noch nichts hinein gelegt." 
                endif 
            elseif Button == 2 
                if Terpentin == 1 
                    player.AddItem MS14PotionTurpentine 1 
                    TerpentinRef.disable 
                    set Terpentin to 0 
                elseif Terpentin == 2 
                    player.AddItem MS14PotionTurpentine04 1 
                    TerpentinRef.disable 
                    set Terpentin to 0 
                elseif Terpentin == 3 
                    player.AddItem MS14PotionTurpentine08 1 
                    TerpentinRef.disable 
                    set Terpentin to 0 
                elseif Terpentin == 4 
                    player.AddItem MS14PotionTurpentine12 1 
                    TerpentinRef.disable 
                    set Terpentin to 0 
                elseif Terpentin == 5 
                    player.AddItem MS14PotionTurpentine16 1 
                    TerpentinRef.disable 
                    set Terpentin to 0 
                elseif Terpentin == 6 
                    player.AddItem MS14PotionTurpentine20 1 
                    TerpentinRef.disable 
                    set Terpentin to 0 
                elseif Terpentin == 0 
                    Message "Was wollt Ihr entnehmen? Ihr habt noch nichts hinein gelegt." 
                endif 
            elseif Button == 3 
                return 
            endif 
    endif 
    if Schuerze == 0 && Terpentin == 0 && TrollFett == 0 
        MalerLichtRef.disable 
    else 
        MalerLichtRef.enable 
    endif 

end

Könnte daran liegen das du den Button nicht der neuen MessageBox zuteilst.
Probiers mal aus.
 
  • Like
Reaktionen: Eddy Kaschinski