-1 bedeutet in diesem Falle, dass kein button gedrückt wurde, deswegen return.
Ich habe das Script nicht getestet, das mal eben zu erstellen, ist doch etwas zeitaufwenig.
Ich habe allerdings auch ein kleines Problem mit einem Script.
Das Script sieht so aus:
Code:
scn KKIrrlichtBankKontoKugel01Script
short level1
short level2
short level3
short button
short button1
short button2
begin OnEquip player
if (level1 == 0)
Messagebox "Was für eine Aktion wollt ihr durchführen?", "Einzahlung", "Abhebung", "Kontostand einsehen"
set level1 to 1
endif
end
begin GameMode
set button to GetButtonPressed
if (level1 == 1) && (button == -1)
set level1 to 0
return
elseif (level1 == 1) && (button == 0)
Messagebox "Wie viel wollt ihr einzahlen?", "500", "1.000", "5.000", "10.000", "50.000", "100.000"
set level2 to 1
elseif (level1 == 1) && (button == 1)
Messagebox "Wie viel wollt ihr abheben?", "500", "1.000", "5.000", "10.000", "50.000", "100.000", "Alles"
set level3 to 1
elseif (level1 == 1) && (button == 2)
Message "Euer Kontostand beträgt %.0f", KKIrrlichtBankKontostandGlobal
set level1 to 0
endif
set button1 to GetButtonPressed
if (level1 == 1) && (level2 == 1) && (button1 == -1)
set level2 to 0
return
elseif (level1 == 1) && (level2 == 1) && (button1 == 0)
if (player.GetItemCount gold001 >= 500)
player.removeitem gold001 500
KKIrrlichtBankSpielerKontoTruhe01REF.additem gold001 500
Message "Ihr habt 500 Gold eingezahlt."
set level2 to 0
else
Message "Ihr verfügt nicht über genügend Gold."
set level2 to 0
endif
elseif (level1 == 1) && (level2 == 1) && (button1 == 1)
if (player.GetItemCount gold001 >= 1000)
player.removeitem gold001 1000
KKIrrlichtBankSpielerKontoTruhe01REF.additem gold001 1000
Message "Ihr habt 1.000 Gold eingezahlt."
set level2 to 0
else
Message "Ihr verfügt nicht über genügend Gold."
set level2 to 0
endif
elseif (level1 == 1) && (level2 == 1) && (button1 == 2)
if (player.GetItemCount gold001 >= 5000)
player.removeitem gold001 5000
KKIrrlichtBankSpielerKontoTruhe01REF.additem gold001 5000
Message "Ihr habt 5.000 Gold eingezahlt."
set level2 to 0
else
Message "Ihr verfügt nicht über genügend Gold."
set level2 to 0
endif
elseif (level1 == 1) && (level2 == 1) && (button1 == 3)
if (player.GetItemCount gold001 >= 10000)
player.removeitem gold001 10000
KKIrrlichtBankSpielerKontoTruhe01REF.additem gold001 10000
Message "Ihr habt 10.000 Gold eingezahlt."
set level2 to 0
else
Message "Ihr verfügt nicht über genügend Gold."
set level2 to 0
endif
elseif (level1 == 1) && (level2 == 1) && (button1 == 4)
if (player.GetItemCount gold001 >= 50000)
player.removeitem gold001 50000
KKIrrlichtBankSpielerKontoTruhe01REF.additem gold001 50000
Message "Ihr habt 50.000 Gold eingezahlt."
set level2 to 0
else
Message "Ihr verfügt nicht über genügend Gold."
set level2 to 0
endif
elseif (level1 == 1) && (level2 == 1) && (button1 == 5)
if (player.GetItemCount gold001 >= 100000)
player.removeitem gold001 100000
KKIrrlichtBankSpielerKontoTruhe01REF.additem gold001 100000
Message "Ihr habt 100.000 Gold eingezahlt."
set level2 to 0
else
Message "Ihr verfügt nicht über genügend Gold."
set level2 to 0
endif
endif
set button2 to GetButtonPressed
if (level1 == 1) && (level3 == 1) && (button2 == -1)
set level3 to 0
return
elseif (level1 == 1) && (level3 == 1) && (button2 == 0)
if (KKIrrlichtBankSpielerKontoTruhe01REF.GetItemCount gold001 >= 500)
KKIrrlichtBankSpielerKontoTruhe01REF.removeitem gold001 500
player.additem gold001 500
Message "Ihr habt 500 Gold abgehoben."
set level3 to 0
set level1 to 0
else
Message "Ihr verfügt nicht über genügend Gold auf eurem Konto."
set level3 to 0
set level1 to 0
endif
elseif (level1 == 1) && (level3 == 1) && (button2 == 1)
if (KKIrrlichtBankSpielerKontoTruhe01REF.GetItemCount gold001 >= 1000)
KKIrrlichtBankSpielerKontoTruhe01REF.removeitem gold001 1000
player.additem gold001 1000
Message "Ihr habt 1.000 Gold abgehoben."
set level3 to 0
set level1 to 0
else
Message "Ihr verfügt nicht über genügend Gold auf eurem Konto."
set level3 to 0
set level1 to 0
endif
elseif (level1 == 1) && (level3 == 1) && (button2 == 2)
if (KKIrrlichtBankSpielerKontoTruhe01REF.GetItemCount gold001 >= 5000)
KKIrrlichtBankSpielerKontoTruhe01REF.removeitem gold001 5000
player.additem gold001 5000
Message "Ihr habt 5.000 Gold abgehoben."
set level3 to 0
set level1 to 0
else
Message "Ihr verfügt nicht über genügend Gold auf eurem Konto."
set level3 to 0
set level1 to 0
endif
elseif (level1 == 1) && (level3 == 1) && (button2 == 3)
if (KKIrrlichtBankSpielerKontoTruhe01REF.GetItemCount gold001 >= 10000)
KKIrrlichtBankSpielerKontoTruhe01REF.removeitem gold001 10000
player.additem gold001 10000
Message "Ihr habt 10.000 Gold abgehoben."
set level3 to 0
set level1 to 0
else
Message "Ihr verfügt nicht über genügend Gold auf eurem Konto."
set level3 to 0
set level1 to 0
endif
elseif (level1 == 1) && (level3 == 1) && (button2 == 4)
if (KKIrrlichtBankSpielerKontoTruhe01REF.GetItemCount gold001 >= 50000)
KKIrrlichtBankSpielerKontoTruhe01REF.removeitem gold001 50000
player.additem gold001 50000
Message "Ihr habt 50.000 Gold abgehoben."
set level3 to 0
set level1 to 0
else
Message "Ihr verfügt nicht über genügend Gold auf eurem Konto."
set level3 to 0
set level1 to 0
endif
elseif (level1 == 1) && (level3 == 1) && (button2 == 5)
if (KKIrrlichtBankSpielerKontoTruhe01REF.GetItemCount gold001 >= 100000)
KKIrrlichtBankSpielerKontoTruhe01REF.removeitem gold001 100000
player.additem gold001 100000
Message "Ihr habt 100.000 Gold abgehoben."
set level3 to 0
set level1 to 0
else
Message "Ihr verfügt nicht über genügend Gold auf eurem Konto."
set level3 to 0
set level1 to 0
endif
elseif (level1 == 1) && (level3 == 1) && (button2 == 6)
if (KKIrrlichtBankSpielerKontoTruhe01REF.GetItemCount gold001 > 0)
KKIrrlichtBankSpielerKontoTruhe01REF.removeitem gold001 KKIrrlichtBankKontostandGlobal
player.additem gold001 KKIrrlichtBankKontostandGlobal
Message "Ihr habt alles Gold abgehoben."
set level3 to 0
set level1 to 0
else
Message "Euer Konto ist leer."
set level3 to 0
set level1 to 0
endif
endif
end
Die Script liegt auf einem Misc-Item. Die erste Messagebox erscheint sogar noch im Inventar. Wenn man auf "Einzahlung" oder "Abhebung" klickt, kommt noch die jeweils nächste, doch wenn ich dort auf einen button klicke, passiert nichts mehr.
KKIrrlichtBankKontostandGlobal ist eine Global.
KKIrrlichtBankSpielerKontoTruhe01REF ist die Reference ID einer Truhe, die sozusagen das Konto ist. Ihr Wert ist gleich dem Gold, dass sich in der Truhe befindet (in einem anderen Script geregelt).
Das Gold wird nicht aus dem Inventar des Spielers entfernt, es wird nichts in die Truhe gelegt, dementsprechen ändert sich auch nicht der Wert der Global.
Abheben ist ebenfalls nicht möglich, selbst, wenn was in der Truhe wäre. Hier springt das Script jeweils nicht von der Messagebox in den nächsten Bereich.
Vermutlich liegt das an der Abfrage zu den beiden Bereichen, aber ich bekomme da keine funktionierende Abfrage hin.
Noch ein Punkt:
Message "Euer Kontostand beträgt %.0f", KKIrrlichtBankKontostandGlobal
Diese Zeile klappt auch nicht so, wie sie soll. Wie muss ich das richtig schreiben, damit mir in der Message der Wert der Global ausgegeben wird?