Nirn.de

Gast

Thema: Script für persönliches Bankschließfach (Bitte um Korrekturhilfe)  (Gelesen 9393 mal)

  • Bettler
    • Neuling
Liebe Modder-Community,

ich arbeite derzeit immer noch an meinem Oblivion-Mod und habe als neues Projekt im Blick, ein Bankschließfach in einem Kaiserlich-Tamrielischen Bankhaus einzurichten.

Die Funktionsweise ist im Prinzip ganz simpel: Im Marktbezirk gibt e ein Gebäude wo der Spieler ein Bankschließfach hat. Dabei handelt es sich einfach um ein Container-Object (einfache Truhe), auf das ein Object-Script gelegt wird. Klickt man den Container an wird das "OnActivate"-Script ausgelöst und man bekommt eine Message-Box mit mehreren Auswahlmöglichkeiten (Geld einzahlen, Geld abheben, oder Abbrechen) und danach dann die Auswahlmöglichkeit wie viel man einzahlen, bzw. abheben möchte. Das Gold soll dann in den Container hineingelegt werden. Natürlich klappt das jeweils nur wenn mindestens so viel Geld im COntainer ist, bwz. der Spieler so viel Geld selbst hat um es einzuzahlen.

Im letzten Teil des Scriptes ist übrigens noch eine Mechanik eingebaut, die monatlich - nach Ablauf von 30 Tagen - eine gewisse Summe Zinsen auf das im Container befindliche Gold dem Container hinzufügen soll.

Nun habe ich das Script geschrieben. Wenn ich das Objekt anklicke kommt auch die erste Message-Box. Wenn ich dann Auswahlmöglichkeit 1 oder 2 anwähle worauf hin ich dann die Auswahlmöglichkeiten zum einzahlen bzw. auszahlen bekomme kehrt er - nachdem ich eines dieser Wahlmöglichkeiten angewählt habe - wieder zur ersten Message-Box zurück, aber ohne dass irgendwas anderes dieses Scriptes ausgeführt wird, weder wird Geld irgednwo hinzugefügt, noch herausgenommen. Da muss irgendwo noch ein Fehler vorliegen, doch finde ich ihn leider nicht.
Habt ihr vielleicht noch eine kluge Idee wo mein Denkfehler liegt.

Hier ist das benannte Script:

scn AAAImperialBankPlayerScript

short activate
short init
short zahltag
short button1
short button2
short button3
ref target

begin onActivate
MessageBox "Was wünscht Ihr?", "Geld einzahlen", "Geld abheben", "Nichts"
end

begin gamemode
set button1 to getbuttonpressed
if button1 == 0
   MessageBox "Wieviel wollt Ihr einzahlen?", "50 Septime", "100 Septime", "500 Septime", "1000 Septime", "Nichts"
   set button2 to getbuttonpressed
   if button2 == 0
      if player.getitemcount Gold001 >= 50
         set target to getself
         player.removeitem Gold001 50
         target.additem Gold001 50
      else
         MessageBox "Ihr habt nicht genug Gold."
         set button2 to -1
      endif
   elseif button2 == 1
      if player.getitemcount Gold001 >= 100
         set target to getself
         player.removeitem Gold001 100
         target.additem Gold001 100
      else
         MessageBox "Ihr habt nicht genug Gold."
         set button2 to -1
      endif
   elseif button2 == 2
      if player.getitemcount Gold001 >= 500
         set target to getself
         player.removeitem Gold001 500
         target.additem Gold001 500
      else
         MessageBox "Ihr habt nicht genug Gold."
         set button2 to -1
      endif
   elseif button2 == 3
      if player.getitemcount Gold001 >= 1000
         set target to getself
         player.removeitem Gold001 1000
         target.additem Gold001 1000
      else
         MessageBox "Ihr habt nicht genug Gold."
         set button2 to -1
      endif
   elseif button2 == 4
      set button2 to -1
   endif
elseif button1 == 1
   MessageBox "Wieviel wollt Ihr abheben?", "50 Septime", "100 Septime", "500 Septime", "1000 Septime", "Nichts"
   set button3 to getbuttonpressed
   if button3 == 0
      set target to getself
      if target.getitemcount Gold001 >= 50
         target.removeitem Gold001 50
         player.additem Gold001 50
      else
         MessageBox "Im Schließfach ist nicht genug Gold."
         set button3 to -1
      endif
   elseif button3 == 1
      set target to getself
      if target.getitemcount Gold001 >= 100
         target.removeitem Gold001 100
         player.additem Gold001 100
      else
         MessageBox "Im Schließfach ist nicht genug Gold."
         set button3 to -1
      endif
   elseif button3 == 2
      set target to getself
      if target.getitemcount Gold001 >= 500
         target.removeitem Gold001 500
         player.additem Gold001 500
      else
         MessageBox "Im Schließfach ist nicht genug Gold."
         set button3 to -1
      endif
   elseif button3 == 3
      set target to getself
      if target.getitemcount Gold001 >= 1000
         target.removeitem Gold001 1000
         player.additem Gold001 1000
      else
         MessageBox "Im Schließfach ist nicht genug Gold."
         set button3 to -1
      endif
   elseif button3 == 4
      set button3 to -1
   endif
elseif button1 == 2
   set button1 to -1
endif
end

begin gamemode
if init == 0
   set zahltag to GameDaysPassed+30
   set init to 1
elseif init == 1
if zahltag >= GameDaysPassed
set target to getself
   if target.getitemcount Gold001 > 10000
      target.additem Gold001 100
      set init to 0
   elseif target.getitemcount Gold001 >= 9000
      target.additem Gold001 90
      set init to 0
   elseif target.getitemcount Gold001 >= 8000
      target.additem Gold001 80
      set init to 0
   elseif target.getitemcount Gold001 >= 7000
      target.additem Gold001 70
      set init to 0
   elseif target.getitemcount Gold001 >= 6000
      target.additem Gold001 60
      set init to 0
   elseif target.getitemcount Gold001 >= 5000
      target.additem Gold001 50
      set init to 0
   elseif target.getitemcount Gold001 >= 4000
      target.additem Gold001 40
      set init to 0
   elseif target.getitemcount Gold001 >= 3000
      target.additem Gold001 30
      set init to 0
   elseif target.getitemcount Gold001 >= 2000
      target.additem Gold001 20
      set init to 0
   elseif target.getitemcount Gold001 >= 1000
      target.additem Gold001 10
      set init to 0
   elseif target.getitemcount Gold001 >= 500
      target.additem Gold001 5
      set init to 0
   elseif target.getitemcount Gold001 >= 100
      target.additem Gold001 1
      set init to 0
   elseif target.getitemcount Gold001 < 100
      set init to 0
   endif
endif
endif
end

Im Voraus sage ich schonmal vielen Dank für alle aufmerksamen Leser und jeden Tipp.
Symbiarch
  16.03.2017, 21:09
  • Offline


  • Abenteurer
    • Neuling
Dein Problem scheint zu sein, dass du die multiplen Stufen der Messagebox nicht in eigene, abgeschottete Abfragen einteilst.
Außerdem brauchst du nur eine "button" Variable, da "getbuttonpressed" sowieso nur einmal abgefragt werden kann in einem Script.
Danach ist der Wert auf -1 (also nix).
"target" kannst du dir auch sparen, da du diese RefVar nur mittels "GetSelf" in Verbindung verwendest. Wenn du bei einer Funktion wie "additem", etc. aber kein Objekt anfügst, wird immer das Objekt verwendet, auf welches dieses Script referenziert. Somit eh der Container den du verwendest.

Probier es mal damit:

Code
scn AAAImperialBankPlayerScript

short chapter
short init
short zahltag
short button
float MinZINS
float MaxZINS
float ProzentZINS
float BetragZINS

begin onActivate Player
if chapter == 0
MessageBox "Was wünscht Ihr?|Geld einzahlen|Geld abheben|Zinsen festlegen|Nichts"
Set chapter to 1
endif
end

begin gamemode
if chapter == 1
set button to getbuttonpressed
if button == 0
Set chapter to 2
elseif button == 1
Set chapter to 3
elseif button == 2
Set chapter to 4
elseif button == 3
Set chapter to 0
endif
elseif chapter == 2
MessageBox "Wieviel wollt Ihr einzahlen?|50 Septime|100 Septime|500 Septime|1000 Septime|Alles|Nichts"
Set chapter to 21
elseif chapter == 21
set button to getbuttonpressed
if button == 0
if player.getitemcount Gold001 >= 50
player.removeitem Gold001 50
additem Gold001 50
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if player.getitemcount Gold001 >= 100
player.removeitem Gold001 100
additem Gold001 100
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if player.getitemcount Gold001 >= 500
player.removeitem Gold001 500
additem Gold001 500
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if player.getitemcount Gold001 >= 1000
player.removeitem Gold001 1000
additem Gold001 1000
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if player.getitemcount Gold001 > 0
set button to player.getitemcount Gold001
player.removeitem Gold001 button
additem Gold001 button
Set chapter to 0
Activate Player, 1
else
Message "Ihr habt kein Gold."
set chapter to 0
endif
elseif button == 5
Set chapter to 0
endif
elseif chapter == 3
MessageBox "Wieviel wollt Ihr abheben?|50 Septime|100 Septime|500 Septime|1000 Septime|Alles|Nichts"
Set chapter to 31
elseif chapter == 31
set button to getbuttonpressed
if button == 0
if getitemcount Gold001 >= 50
removeitem Gold001 50
player.additem Gold001 50
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if getitemcount Gold001 >= 100
removeitem Gold001 100
player.additem Gold001 100
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if getitemcount Gold001 >= 500
removeitem Gold001 500
player.additem Gold001 500
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if getitemcount Gold001 >= 1000
removeitem Gold001 1000
player.additem Gold001 1000
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if getitemcount Gold001 > 0
Set button to getitemcount Gold001
removeitem Gold001 button
player.additem Gold001 button
set chapter to 0
Activate Player, 1
else
Message "Es ist kein Gold im Schließfach."
set chapter to 0
endif
elseif button == 5
set chapter to 0
endif
elseif chapter == 4
MessageBox "Wie möchtet Ihr den Zinssatz ändern?|Zufällige Verzinsung|Fixe Verzinsung|Gar nicht"
Set chapter to 41
elseif chapter == 41
Set button to getbuttonpressed
if button == 0
Messagebox "Die zufällige Verzinsung wird automatisch einen Wert zwischen dem Minimum und Maximum wählen.|Minimum festlegen|Maximum festlegen|Bestätigen und beenden"
Set chapter to 410
elseif button == 1
Messagebox "Die fixe Verzinsung wird immer mit dem eingestellten Wert verzinsen.|Zinssatz ändern|Bestätigen und beenden"
Set chapter to 420
elseif button == 2
Set chapter to 0
endif
elseif chapter == 410
Set button to getbuttonpressed
if MinZINS == 0
Set MinZins to 1
Set MaxZins to 5
Set ProzentZINS to 0
endif
if button == 0
Set chapter to 411
elseif button == 1
Set chapter to 412
elseif button == 2
Set chapter to 0
endif
elseif chapter == 411
Messagebox "Legen Sie das Minimum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f|+0,01|+0,10|+0,50|+1|-1|-0,50|-0,10|-0,01|Fertig"MinZINS,MaxZINS
Set chapter to 413
elseif chapter == 412
Messagebox "Legen Sie das Maximum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f|+0,01|+0,10|+0,50|+1|-1|-0,50|-0,10|-0,01|Fertig"MinZINS,MaxZINS
Set chapter to 414
elseif chapter == 413
Set button to getbuttonpressed
if button == 0
if (MinZINS+0.01) <= 5 && (MinZINS+0.01) < MaxZINS
Set MinZINS to MinZINS + 0.01
endif
Set chapter to 411
elseif button == 1
if (MinZINS+0.10) <= 5 && (MinZINS+0.10) < MaxZINS
Set MinZINS to MinZINS + 0.10
endif
Set chapter to 411
elseif button == 2
if (MinZINS+0.50) <= 5 && (MinZINS+0.50) < MaxZINS
Set MinZINS to MinZINS + 0.50
endif
Set chapter to 411
elseif button == 3
if (MinZINS+1) <= 5 && (MinZINS+1) < MaxZINS
Set MinZINS to MinZINS + 1
endif
Set chapter to 411
elseif button == 4
if (MinZINS-1) >= 1
Set MinZINS to MinZINS - 1
endif
Set chapter to 411
elseif button == 5
if (MinZINS-0.50) >= 1
Set MinZINS to MinZINS - 0.50
endif
Set chapter to 411
elseif button == 6
if (MinZINS-0.10) >= 1
Set MinZINS to MinZINS - 0.10
endif
Set chapter to 411
elseif button == 7
if (MinZINS-0.01) >= 1
Set MinZINS to MinZINS - 0.01
endif
Set chapter to 411
elseif button == 8
Set chapter to 0
endif
elseif chapter == 414
Set button to getbuttonpressed
if button == 0
if (MaxZINS+0.01) <= 10
Set MaxZINS to MaxZINS + 0.01
endif
Set chapter to 412
elseif button == 1
if (MaxZINS+0.10) <= 10
Set MaxZINS to MaxZINS + 0.10
endif
Set chapter to 412
elseif button == 2
if (MaxZINS+0.50) <= 10
Set MaxZINS to MaxZINS + 0.50
endif
Set chapter to 412
elseif button == 3
if (MaxZINS+1) <= 10
Set MaxZINS to MaxZINS + 1
endif
Set chapter to 412
elseif button == 4
if (MaxZINS-1) >= 2 && (MaxZINS-1) > MinZINS
Set MaxZINS to MaxZINS - 1
endif
Set chapter to 412
elseif button == 5
if (MaxZINS-0.50) >= 2 && (MaxZINS-0.50) > MinZINS
Set MaxZINS to MaxZINS - 0.50
endif
Set chapter to 412
elseif button == 6
if (MaxZINS-0.10) >= 2 && (MaxZINS-0.10) > MinZINS
Set MaxZINS to MaxZINS - 0.10
endif
Set chapter to 412
elseif button == 7
if (MaxZINS-0.01) >= 2 && (MaxZINS-0.01) > MinZINS
Set MaxZINS to MaxZINS - 0.01
endif
Set chapter to 412
elseif button == 8
Set chapter to 0
endif
elseif chapter == 420
if ProzentZINS == 0
set ProzentZINS to 1
Set MinZINS to 0
Set MaxZINS to 0
endif
Set button to getbuttonpressed
if button == 0
Set chapter to 421
elseif button == 1
Set chapter to 0
endif
elseif chapter == 421
Messagebox "Legen Sie den Zinssatz fest. Zinssatz zur Zeit: %.2f|+0,01|+0,10|+0,50|+1|-1|-0,50|-0,10|-0,01|Fertig"ProzentZINS
Set chapter to 422
elseif chapter == 422
Set button to getbuttonpressed
if button == 0
if (ProzentZINS+0.01) <= 5
Set ProzentZINS to ProzentZINS + 0.01
endif
Set chapter to 421
elseif button == 1
if (ProzentZINS+0.10) <= 5
Set ProzentZINS to ProzentZINS + 0.10
endif
Set chapter to 421
elseif button == 2
if (ProzentZINS+0.50) <= 5
Set ProzentZINS to ProzentZINS + 0.50
endif
Set chapter to 421
elseif button == 3
if (ProzentZINS+1) <= 5
Set ProzentZINS to ProzentZINS + 1
endif
Set chapter to 421
elseif button == 4
if (ProzentZINS-1) >= 1
Set ProzentZINS to ProzentZINS - 1
endif
Set chapter to 421
elseif button == 5
if (ProzentZINS-0.50) >= 1
Set ProzentZINS to ProzentZINS - 0.50
endif
Set chapter to 421
elseif button == 6
if (ProzentZINS-0.10) >= 1
Set ProzentZINS to ProzentZINS - 0.10
endif
Set chapter to 421
elseif button == 7
if (ProzentZINS-0.01) >= 1
Set ProzentZINS to ProzentZINS - 0.01
endif
Set chapter to 421
elseif button == 8
Set chapter to 0
endif
endif

if init == 0
set zahltag to GameDaysPassed+30
set init to 1
if ProzentZINS == 0 && MinZINS == 0
Set ProzentZINS to 1
endif
elseif init == 1
if zahltag >= GameDaysPassed
Set BetragZINS to 0
If ProzentZINS != 0
Set BetragZINS to Player.getitemcount Gold001*(ProzentZINS/100)
Set BetragZINS to ceil BetragZINS
elseif MinZINS != 0
Set BetragZINS to MinZINS + GetRandomPercent * (MaxZINS-MinZINS+1) / 100
Set BetragZINS to Player.getitemcount Gold001*(BetragZINS/100)
Set BetragZINS to ceil BetragZINS
endif
if BetragZINS >= 1
Additem Gold001 BetragZINS
Message "Es wurden Zinsen im Wert von %.0f Gold hinzugefügt."BetragZINS
endif
Set init to 0
endif
endif
end
« Letzte Änderung: 21.03.2017, 19:12 von DerJorg »
  21.03.2017, 11:44
  • Offline


  • Abenteurer
    • Neuling
Ein kleiner Tipp noch:
Sachen wie "Ihr habt nicht genug Gold." pack bitte nicht in eine MessageBox, sondern nur in eine Message.
Das ist weitaus benutzerfreundlicher, weil der Spieler links oben dann die Meldung lesen kann, aber nicht unnötigerweise einen "OK"-Button drücken muss, um die Meldung zu bestätigen.

Nachtrag: Ich hab noch ein paar Sachen geändert.
Sag mir ob alles funktioniert. Hab es nur aus dem Bauch raus geschrieben.  :ugly:
« Letzte Änderung: 21.03.2017, 18:49 von DerJorg »
  21.03.2017, 13:36
  • Offline


  • Bettler
    • Neuling
Ich sage schonmal vielen herzlichen Dank für die umfangreichen Hilfevorschläge.

Ich habe nun das vorgeschlagene Script mal angetestet und versucht zu speichern. Es scheint so zu sein dass er den Befehl "ceil" und noch einige andere, später folgende Befehle nicht kennt. Kann es sein dass das Befehle sind die aus dem Script-Extender kommen (den ich bewusst nicht verwende)? Da in der bisherigen Form die Festlegung des Zinssatzes in den Gesamtablauf des Scriptes eingebunden ist, fällt es mir leider schwer (bzw. es ist für mich unmöglich) zu erkennen, wo ich die Stellen mit dem Zinssatz-Script rauslöschen müsste, damit das Script funktioniert.

Könntest du mir vielleicht noch einmal eine Version ohne Zinssatz zeigen, bzw. mir aufzeigen was für einen Befehl ich anstatt des "ceil" Befehls nehmen kann, damit es von meinem Construction-Set kompiliert werden kann?
  22.03.2017, 18:25
  • Offline


  • Abenteurer
    • Neuling
Mein Fehler.
Ich hatte bewusst sämtliche Funktionen so verwendet, dass sie nicht aus dem Extender kommen, aber "ceil" kommt tatsächlich aus dem Extender.
Diese Funktion dient nur dazu Kommastellen aufzurunden.
Hier habe ich die "ceil" Funktion durch eine simple Formel ersetzt.
Das Runden ist notwendig, da ansonsten der Goldbetrag den man bekommt nicht mit dem in der Message übereinstimmt. Oblivion hat Probleme mit Kommastellen in Verbindung mit ADDITEM (das einen fixen Wert voraussetzt), wenn man sie nicht für die Engine selber rundet.

Die neue Formel, rundet allerdings ab!
Das heißt wie der übliche Wucher bei der Bank.  :P

Code
scn AAAImperialBankPlayerScript

short chapter
short init
short zahltag
short button
float MinZINS
float MaxZINS
float ProzentZINS
float BetragZINS

begin onActivate Player
if chapter == 0
MessageBox "Was wünscht Ihr?|Geld einzahlen|Geld abheben|Zinsen festlegen|Nichts"
Set chapter to 1
endif
end

begin gamemode
if chapter == 1
set button to getbuttonpressed
if button == 0
Set chapter to 2
elseif button == 1
Set chapter to 3
elseif button == 2
Set chapter to 4
elseif button == 3
Set chapter to 0
endif
elseif chapter == 2
MessageBox "Wieviel wollt Ihr einzahlen?|50 Septime|100 Septime|500 Septime|1000 Septime|Alles|Nichts"
Set chapter to 21
elseif chapter == 21
set button to getbuttonpressed
if button == 0
if player.getitemcount Gold001 >= 50
player.removeitem Gold001 50
additem Gold001 50
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if player.getitemcount Gold001 >= 100
player.removeitem Gold001 100
additem Gold001 100
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if player.getitemcount Gold001 >= 500
player.removeitem Gold001 500
additem Gold001 500
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if player.getitemcount Gold001 >= 1000
player.removeitem Gold001 1000
additem Gold001 1000
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if player.getitemcount Gold001 > 0
set button to player.getitemcount Gold001
player.removeitem Gold001 button
additem Gold001 button
Set chapter to 0
Activate Player, 1
else
Message "Ihr habt kein Gold."
set chapter to 0
endif
elseif button == 5
Set chapter to 0
endif
elseif chapter == 3
MessageBox "Wieviel wollt Ihr abheben?|50 Septime|100 Septime|500 Septime|1000 Septime|Alles|Nichts"
Set chapter to 31
elseif chapter == 31
set button to getbuttonpressed
if button == 0
if getitemcount Gold001 >= 50
removeitem Gold001 50
player.additem Gold001 50
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if getitemcount Gold001 >= 100
removeitem Gold001 100
player.additem Gold001 100
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if getitemcount Gold001 >= 500
removeitem Gold001 500
player.additem Gold001 500
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if getitemcount Gold001 >= 1000
removeitem Gold001 1000
player.additem Gold001 1000
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if getitemcount Gold001 > 0
Set button to getitemcount Gold001
removeitem Gold001 button
player.additem Gold001 button
set chapter to 0
Activate Player, 1
else
Message "Es ist kein Gold im Schließfach."
set chapter to 0
endif
elseif button == 5
set chapter to 0
endif
elseif chapter == 4
MessageBox "Wie möchtet Ihr den Zinssatz ändern?|Zufällige Verzinsung|Fixe Verzinsung|Gar nicht"
Set chapter to 41
elseif chapter == 41
Set button to getbuttonpressed
if button == 0
Messagebox "Die zufällige Verzinsung wird automatisch einen Wert zwischen dem Minimum und Maximum wählen.|Minimum festlegen|Maximum festlegen|Bestätigen und beenden"
Set chapter to 410
elseif button == 1
Messagebox "Die fixe Verzinsung wird immer mit dem eingestellten Wert verzinsen.|Zinssatz ändern|Bestätigen und beenden"
Set chapter to 420
elseif button == 2
Set chapter to 0
endif
elseif chapter == 410
Set button to getbuttonpressed
if MinZINS == 0
Set MinZins to 1
Set MaxZins to 5
Set ProzentZINS to 0
endif
if button == 0
Set chapter to 411
elseif button == 1
Set chapter to 412
elseif button == 2
Set chapter to 0
endif
elseif chapter == 411
Messagebox "Legen Sie das Minimum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f|+0,01|+0,10|+0,50|+1|-1|-0,50|-0,10|-0,01|Fertig"MinZINS,MaxZINS
Set chapter to 413
elseif chapter == 412
Messagebox "Legen Sie das Maximum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f|+0,01|+0,10|+0,50|+1|-1|-0,50|-0,10|-0,01|Fertig"MinZINS,MaxZINS
Set chapter to 414
elseif chapter == 413
Set button to getbuttonpressed
if button == 0
if (MinZINS+0.01) <= 5 && (MinZINS+0.01) < MaxZINS
Set MinZINS to MinZINS + 0.01
endif
Set chapter to 411
elseif button == 1
if (MinZINS+0.10) <= 5 && (MinZINS+0.10) < MaxZINS
Set MinZINS to MinZINS + 0.10
endif
Set chapter to 411
elseif button == 2
if (MinZINS+0.50) <= 5 && (MinZINS+0.50) < MaxZINS
Set MinZINS to MinZINS + 0.50
endif
Set chapter to 411
elseif button == 3
if (MinZINS+1) <= 5 && (MinZINS+1) < MaxZINS
Set MinZINS to MinZINS + 1
endif
Set chapter to 411
elseif button == 4
if (MinZINS-1) >= 1
Set MinZINS to MinZINS - 1
endif
Set chapter to 411
elseif button == 5
if (MinZINS-0.50) >= 1
Set MinZINS to MinZINS - 0.50
endif
Set chapter to 411
elseif button == 6
if (MinZINS-0.10) >= 1
Set MinZINS to MinZINS - 0.10
endif
Set chapter to 411
elseif button == 7
if (MinZINS-0.01) >= 1
Set MinZINS to MinZINS - 0.01
endif
Set chapter to 411
elseif button == 8
Set chapter to 0
endif
elseif chapter == 414
Set button to getbuttonpressed
if button == 0
if (MaxZINS+0.01) <= 10
Set MaxZINS to MaxZINS + 0.01
endif
Set chapter to 412
elseif button == 1
if (MaxZINS+0.10) <= 10
Set MaxZINS to MaxZINS + 0.10
endif
Set chapter to 412
elseif button == 2
if (MaxZINS+0.50) <= 10
Set MaxZINS to MaxZINS + 0.50
endif
Set chapter to 412
elseif button == 3
if (MaxZINS+1) <= 10
Set MaxZINS to MaxZINS + 1
endif
Set chapter to 412
elseif button == 4
if (MaxZINS-1) >= 2 && (MaxZINS-1) > MinZINS
Set MaxZINS to MaxZINS - 1
endif
Set chapter to 412
elseif button == 5
if (MaxZINS-0.50) >= 2 && (MaxZINS-0.50) > MinZINS
Set MaxZINS to MaxZINS - 0.50
endif
Set chapter to 412
elseif button == 6
if (MaxZINS-0.10) >= 2 && (MaxZINS-0.10) > MinZINS
Set MaxZINS to MaxZINS - 0.10
endif
Set chapter to 412
elseif button == 7
if (MaxZINS-0.01) >= 2 && (MaxZINS-0.01) > MinZINS
Set MaxZINS to MaxZINS - 0.01
endif
Set chapter to 412
elseif button == 8
Set chapter to 0
endif
elseif chapter == 420
if ProzentZINS == 0
set ProzentZINS to 1
Set MinZINS to 0
Set MaxZINS to 0
endif
Set button to getbuttonpressed
if button == 0
Set chapter to 421
elseif button == 1
Set chapter to 0
endif
elseif chapter == 421
Messagebox "Legen Sie den Zinssatz fest. Zinssatz zur Zeit: %.2f|+0,01|+0,10|+0,50|+1|-1|-0,50|-0,10|-0,01|Fertig"ProzentZINS
Set chapter to 422
elseif chapter == 422
Set button to getbuttonpressed
if button == 0
if (ProzentZINS+0.01) <= 5
Set ProzentZINS to ProzentZINS + 0.01
endif
Set chapter to 421
elseif button == 1
if (ProzentZINS+0.10) <= 5
Set ProzentZINS to ProzentZINS + 0.10
endif
Set chapter to 421
elseif button == 2
if (ProzentZINS+0.50) <= 5
Set ProzentZINS to ProzentZINS + 0.50
endif
Set chapter to 421
elseif button == 3
if (ProzentZINS+1) <= 5
Set ProzentZINS to ProzentZINS + 1
endif
Set chapter to 421
elseif button == 4
if (ProzentZINS-1) >= 1
Set ProzentZINS to ProzentZINS - 1
endif
Set chapter to 421
elseif button == 5
if (ProzentZINS-0.50) >= 1
Set ProzentZINS to ProzentZINS - 0.50
endif
Set chapter to 421
elseif button == 6
if (ProzentZINS-0.10) >= 1
Set ProzentZINS to ProzentZINS - 0.10
endif
Set chapter to 421
elseif button == 7
if (ProzentZINS-0.01) >= 1
Set ProzentZINS to ProzentZINS - 0.01
endif
Set chapter to 421
elseif button == 8
Set chapter to 0
endif
endif

if init == 0
set zahltag to GameDaysPassed+30
set init to 1
if ProzentZINS == 0 && MinZINS == 0
Set ProzentZINS to 1
endif
elseif init == 1
if zahltag >= GameDaysPassed
Set button to 0
If ProzentZINS != 0
Set BetragZINS to Player.getitemcount Gold001*(ProzentZINS/100)
Set button to (BetragZINS - (BetragZINS % 1))
elseif MinZINS != 0
Set BetragZINS to MinZINS + GetRandomPercent * (MaxZINS-MinZINS+1) / 100
Set BetragZINS to Player.getitemcount Gold001*(BetragZINS/100)
Set button to (BetragZINS - (BetragZINS % 1))
endif
if button >= 1
Additem Gold001 button
Message "Es wurden Zinsen im Wert von %.0f Gold hinzugefügt."button
endif
Set init to 0
endif
endif
end
« Letzte Änderung: 23.03.2017, 08:26 von DerJorg »
  23.03.2017, 08:23
  • Offline


  • Bettler
    • Neuling
Leider funktioniert das Script so immer noch nicht.

Wenn ich die Cell betrete, in der das gescriptete Objekt ist bekomme ich die Nachricht "7 Gold hinzugefügt", und zwar immer wieder. Wenn ich dann das Objekt anklicke kommt nur eine Message Box. Und zwar immer wieder, man kann das Menü der Message Box nicht mehr verlassen. Die einzig anklickbare Auswahl ist "Ok", und wenn man das anklickt kommt sofort die näcshte MessageBox. Die Auswahlen der Message Box müssen mit "Hier der Text", "Hier noch mehr Text" von der Message Box, die ebenfalls in "" gesetzt werden muss abgegrenzt werden. soviel hab ich auch schon rausgefunden.

Das nächste Problem dass sich dann allerdings ergibt ist, dass er ein Problem mit den Prozentsätzen hat. Er sagt, dass er diese als "Variable" nicht kennen würde (obwohl es ja eig. keine Variable sein soll, sondern ein fixer Wert, den er in die Variable button hineinsetzen soll). Dazu kommt, dass die Prozentangaben wohl mit "." anstatt mit "," angegeben werden müssen, da das Komma ja ein Steuerzeichen der Skriptsprache ist und der Punkt hier das mathematische Komma ersetzt. Dennoch scheint das Script noch einige weitere Fehler zu haben, die ich jedoch so nicht überschaue.

Es scheint mir so zu sein, dass er in den Zeilen in denen er den Zinssatz festlegen soll per Auswahl in der MessageBox, nicht anerkennt, dass es sich bei den Angaben "+0.01", "+0.1" usw. um Auswahl-Buttons und nicht um Variablen handelt. Warum er es allerdings da nicht anerkennt und anderswo durchaus schon ist mir ehrlich gesagt vollkommen schleierhaft. In seiner Gänze ist mir das Script doch zu komplex um es wirklich voll und ganz zu verstehen.


Edit: Ich habe nochmal ein wenig experimentiert und wahlweise anstatt der Zahlen in dieser Zeile mal Text zwischen die " " eingefügt, also sowas wie "Eins", oder dergleichen. Es bleibt dennoch beim gleichen Resultat. Er gibt immer noch die völlig widersinnige Antwort aus, dass er diese "Eins" als angebliche Variable nicht kennen würde.
« Letzte Änderung: 23.03.2017, 18:11 von Symbiarch »
  23.03.2017, 17:55
  • Offline


  • Abenteurer
    • Neuling
Das sollte jetzt hoffentlich funktionieren.
Code
scn AAAImperialBankPlayerScript

short chapter
short init
short zahltag
short button
float MinZINS
float MaxZINS
float ProzentZINS
float BetragZINS

begin onActivate Player
if chapter == 0
MessageBox "Was wünscht Ihr?","Geld einzahlen","Geld abheben","Zinsen festlegen","Nichts"
Set chapter to 1
endif
end

begin gamemode
if chapter == 1
set button to getbuttonpressed
if button == 0
Set chapter to 2
elseif button == 1
Set chapter to 3
elseif button == 2
Set chapter to 4
elseif button == 3
Set chapter to 0
endif
elseif chapter == 2
MessageBox "Wieviel wollt Ihr einzahlen?","50 Septime","100 Septime","500 Septime","1000 Septime","Alles","Nichts"
Set chapter to 21
elseif chapter == 21
set button to getbuttonpressed
if button == 0
if player.getitemcount Gold001 >= 50
player.removeitem Gold001 50
additem Gold001 50
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if player.getitemcount Gold001 >= 100
player.removeitem Gold001 100
additem Gold001 100
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if player.getitemcount Gold001 >= 500
player.removeitem Gold001 500
additem Gold001 500
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if player.getitemcount Gold001 >= 1000
player.removeitem Gold001 1000
additem Gold001 1000
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if player.getitemcount Gold001 > 0
set button to player.getitemcount Gold001
player.removeitem Gold001 button
additem Gold001 button
Set chapter to 0
Activate Player, 1
else
Message "Ihr habt kein Gold."
set chapter to 0
endif
elseif button == 5
Set chapter to 0
endif
elseif chapter == 3
MessageBox "Wieviel wollt Ihr abheben?","50 Septime","100 Septime","500 Septime","1000 Septime","Alles","Nichts"
Set chapter to 31
elseif chapter == 31
set button to getbuttonpressed
if button == 0
if getitemcount Gold001 >= 50
removeitem Gold001 50
player.additem Gold001 50
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if getitemcount Gold001 >= 100
removeitem Gold001 100
player.additem Gold001 100
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if getitemcount Gold001 >= 500
removeitem Gold001 500
player.additem Gold001 500
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if getitemcount Gold001 >= 1000
removeitem Gold001 1000
player.additem Gold001 1000
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if getitemcount Gold001 > 0
Set button to getitemcount Gold001
removeitem Gold001 button
player.additem Gold001 button
set chapter to 0
Activate Player, 1
else
Message "Es ist kein Gold im Schließfach."
set chapter to 0
endif
elseif button == 5
set chapter to 0
endif
elseif chapter == 4
MessageBox "Wie möchtet Ihr den Zinssatz ändern?","Zufällige Verzinsung","Fixe Verzinsung","Gar nicht"
Set chapter to 41
elseif chapter == 41
Set button to getbuttonpressed
if button == 0
Messagebox "Die zufällige Verzinsung wird automatisch einen Wert zwischen dem Minimum und Maximum wählen.","Minimum festlegen","Maximum festlegen","Bestätigen und beenden"
Set chapter to 410
elseif button == 1
Messagebox "Die fixe Verzinsung wird immer mit dem eingestellten Wert verzinsen.","Zinssatz ändern","Bestätigen und beenden"
Set chapter to 420
elseif button == 2
Set chapter to 0
endif
elseif chapter == 410
Set button to getbuttonpressed
if MinZINS == 0
Set MinZins to 1
Set MaxZins to 5
Set ProzentZINS to 0
endif
if button == 0
Set chapter to 411
elseif button == 1
Set chapter to 412
elseif button == 2
Set chapter to 0
endif
elseif chapter == 411
Messagebox "Legen Sie das Minimum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f",MinZINS,MaxZINS,"+0,01","+0,10","+0,50","+1","-1","-0,50","-0,10","-0,01","Fertig"
Set chapter to 413
elseif chapter == 412
Messagebox "Legen Sie das Maximum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f",MinZINS,MaxZINS,"+0,01","+0,10","+0,50","+1","-1","-0,50","-0,10","-0,01","Fertig"
Set chapter to 414
elseif chapter == 413
Set button to getbuttonpressed
if button == 0
if (MinZINS+0.01) <= 5 && (MinZINS + 0.01) < MaxZINS
Set MinZINS to MinZINS + 0.01
endif
Set chapter to 411
elseif button == 1
if (MinZINS+0.10) <= 5 && (MinZINS + 0.10) < MaxZINS
Set MinZINS to MinZINS + 0.10
endif
Set chapter to 411
elseif button == 2
if (MinZINS+0.50) <= 5 && (MinZINS + 0.50) < MaxZINS
Set MinZINS to MinZINS + 0.50
endif
Set chapter to 411
elseif button == 3
if (MinZINS+1) <= 5 && (MinZINS + 1) < MaxZINS
Set MinZINS to MinZINS + 1
endif
Set chapter to 411
elseif button == 4
if (MinZINS - 1) >= 1
Set MinZINS to MinZINS - 1
endif
Set chapter to 411
elseif button == 5
if (MinZINS - 0.50) >= 1
Set MinZINS to MinZINS - 0.50
endif
Set chapter to 411
elseif button == 6
if (MinZINS - 0.10) >= 1
Set MinZINS to MinZINS - 0.10
endif
Set chapter to 411
elseif button == 7
if (MinZINS - 0.01) >= 1
Set MinZINS to MinZINS - 0.01
endif
Set chapter to 411
elseif button == 8
Set chapter to 0
endif
elseif chapter == 414
Set button to getbuttonpressed
if button == 0
if (MaxZINS + 0.01) <= 10
Set MaxZINS to MaxZINS + 0.01
endif
Set chapter to 412
elseif button == 1
if (MaxZINS + 0.10) <= 10
Set MaxZINS to MaxZINS + 0.10
endif
Set chapter to 412
elseif button == 2
if (MaxZINS + 0.50) <= 10
Set MaxZINS to MaxZINS + 0.50
endif
Set chapter to 412
elseif button == 3
if (MaxZINS + 1) <= 10
Set MaxZINS to MaxZINS + 1
endif
Set chapter to 412
elseif button == 4
if (MaxZINS - 1) >= 2 && (MaxZINS - 1) > MinZINS
Set MaxZINS to MaxZINS - 1
endif
Set chapter to 412
elseif button == 5
if (MaxZINS - 0.50) >= 2 && (MaxZINS - 0.50) > MinZINS
Set MaxZINS to MaxZINS - 0.50
endif
Set chapter to 412
elseif button == 6
if (MaxZINS - 0.10) >= 2 && (MaxZINS - 0.10) > MinZINS
Set MaxZINS to MaxZINS - 0.10
endif
Set chapter to 412
elseif button == 7
if (MaxZINS - 0.01) >= 2 && (MaxZINS - 0.01) > MinZINS
Set MaxZINS to MaxZINS - 0.01
endif
Set chapter to 412
elseif button == 8
Set chapter to 0
endif
elseif chapter == 420
if ProzentZINS == 0
set ProzentZINS to 1
Set MinZINS to 0
Set MaxZINS to 0
endif
Set button to getbuttonpressed
if button == 0
Set chapter to 421
elseif button == 1
Set chapter to 0
endif
elseif chapter == 421
Messagebox "Legen Sie den Zinssatz fest. Zinssatz zur Zeit: %.2f",ProzentZINS,"+0,01","+0,10","+0,50","+1","-1","-0,50","-0,10","-0,01","Fertig"
Set chapter to 422
elseif chapter == 422
Set button to getbuttonpressed
if button == 0
if (ProzentZINS + 0.01) <= 5
Set ProzentZINS to ProzentZINS + 0.01
endif
Set chapter to 421
elseif button == 1
if (ProzentZINS + 0.10) <= 5
Set ProzentZINS to ProzentZINS + 0.10
endif
Set chapter to 421
elseif button == 2
if (ProzentZINS + 0.50) <= 5
Set ProzentZINS to ProzentZINS + 0.50
endif
Set chapter to 421
elseif button == 3
if (ProzentZINS + 1) <= 5
Set ProzentZINS to ProzentZINS + 1
endif
Set chapter to 421
elseif button == 4
if (ProzentZINS - 1) >= 1
Set ProzentZINS to ProzentZINS - 1
endif
Set chapter to 421
elseif button == 5
if (ProzentZINS - 0.50) >= 1
Set ProzentZINS to ProzentZINS - 0.50
endif
Set chapter to 421
elseif button == 6
if (ProzentZINS - 0.10) >= 1
Set ProzentZINS to ProzentZINS - 0.10
endif
Set chapter to 421
elseif button == 7
if (ProzentZINS  -0.01) >= 1
Set ProzentZINS to ProzentZINS - 0.01
endif
Set chapter to 421
elseif button == 8
Set chapter to 0
endif
endif

if init == 0
set zahltag to GameDaysPassed+30
set init to 1
if ProzentZINS == 0 && MinZINS == 0
Set ProzentZINS to 1
endif
elseif init == 1
if zahltag <= GameDaysPassed
Set button to 0
If ProzentZINS != 0 && getitemcount Gold001 > 0
Set BetragZINS to getitemcount Gold001*(ProzentZINS/100)
Set button to (BetragZINS - (BetragZINS % 1))
elseif MinZINS != 0 && getitemcount Gold001 > 0
Set BetragZINS to MinZINS + GetRandomPercent  * (MaxZINS - MinZINS + 1) / 100
Set BetragZINS to getitemcount Gold001 * (BetragZINS / 100)
Set button to (BetragZINS - (BetragZINS % 1))
endif
if button >= 1
Additem Gold001 button
Message "Es wurden Zinsen im Wert von %.0f Gold hinzugefügt."button
endif
Set init to 0
endif
endif
end

Ich hab mir das Format der Messageboxen aus Beispielscripts vom Internet zusammengeschnorrt.
Möglicherweise gibt es da nirgendwo was Vernünftiges, ohne Script Extender?

Das mit dem Komma im Button der Messagebox sollte kein Problem sein, wenn das Format stimmt.

Außerdem habe ich noch ein paar Leerzeichen in die Formeln eingefügt. Möglicherweise sind dadurch auch Fehler entstanden.

Was das mit der Nachricht, dass Zinsen hinzugefügt wurden anbelangt, das ist ein Fehler deinerseits:
Code
if init == 0
   set zahltag to GameDaysPassed+30
   set init to 1
elseif init == 1
if zahltag >= GameDaysPassed
Das ist dein Ursprungscode.
Dadurch wird dieser Block in einer Art Endlosschleife ausgeführt, weil "zahltag" immer größer ist als "GameDaysPassed".
Ich hab das nun gefixt.
Immer darauf achten, dass Größer- und Kleinerzeichen wirklich so eingesetzt werden, wie sie sollen. ;)
« Letzte Änderung: 24.03.2017, 08:46 von DerJorg »
  24.03.2017, 08:07
  • Offline


  • Bettler
    • Neuling
Ich darf noch einmal wieder vielen, herzlichen Dank sagen. Ich habe das Script in der Form nun noch einmal ausprobiert und so wie ich es erkennen kann funktioniert es :)
Ich habe zwar noch keinen Ingame-Monat abgewartet um zu sehen ob das Zins-Script tatsächlich voll und ganz funktioniert, aber die Message-Box funktionen zum Geld abheben und einzahlen machen keinerlei Probleme und funktionieren genau so wie sie es sollen.

Vielen Dank für die Hilfe und schöne Grüße
Symbiarch
  26.03.2017, 11:37
  • Offline


  • Abenteurer
    • Neuling
Donnerlüttchen.
Ich war eigentlich nicht überzeugt davon, dass es funktioniert. Dachte zuerst sogar du verkohlst mich.  :ugly:
Freut mich aber, dass ich dir helfen konnte.
  27.03.2017, 10:09
  • Offline


  • Bettler
    • Neuling
Nein, nein in der Tat es scheint zu funktionieren. Man kriegt Geld da rein und auch bei Bedarf wieder raus. Das einzige was ich noch nicht so ersehen kann ist, ob der Teil mit den Zinsen eben klappt. Dafür müsste man noch irgendwie etwas in das Script reinschreiben, das den aktuellen Betrag auf dem Konto anzeigt, was bislang ja so nicht geht.
  27.03.2017, 21:53
  • Offline


  • Abenteurer
    • Neuling
das den aktuellen Betrag auf dem Konto anzeigt, was bislang ja so nicht geht.

Warum soll das nicht gehen?
Code
scn AAAImperialBankPlayerScript

short chapter
short init
short zahltag
short button
short KontoST
float MinZINS
float MaxZINS
float ProzentZINS
float BetragZINS

begin onActivate Player
if chapter == 0
Set KontoST to GetItemCount Gold001
MessageBox "Derzeitiger Kontostand: %.0f. Was wünscht Ihr?", KontoST, "Geld einzahlen","Geld abheben","Zinsen festlegen","Nichts"
Set chapter to 1
endif
end

begin gamemode
if chapter == 1
set button to getbuttonpressed
if button == 0
Set chapter to 2
elseif button == 1
Set chapter to 3
elseif button == 2
Set chapter to 4
elseif button == 3
Set chapter to 0
endif
elseif chapter == 2
MessageBox "Wieviel wollt Ihr einzahlen?","50 Septime","100 Septime","500 Septime","1000 Septime","Alles","Nichts"
Set chapter to 21
elseif chapter == 21
set button to getbuttonpressed
if button == 0
if player.getitemcount Gold001 >= 50
player.removeitem Gold001 50
additem Gold001 50
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if player.getitemcount Gold001 >= 100
player.removeitem Gold001 100
additem Gold001 100
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if player.getitemcount Gold001 >= 500
player.removeitem Gold001 500
additem Gold001 500
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if player.getitemcount Gold001 >= 1000
player.removeitem Gold001 1000
additem Gold001 1000
Set chapter to 2
else
Message "Ihr habt nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if player.getitemcount Gold001 > 0
set button to player.getitemcount Gold001
player.removeitem Gold001 button
additem Gold001 button
Set chapter to 0
Activate Player, 1
else
Message "Ihr habt kein Gold."
set chapter to 0
endif
elseif button == 5
Set chapter to 0
endif
elseif chapter == 3
MessageBox "Wieviel wollt Ihr abheben?","50 Septime","100 Septime","500 Septime","1000 Septime","Alles","Nichts"
Set chapter to 31
elseif chapter == 31
set button to getbuttonpressed
if button == 0
if getitemcount Gold001 >= 50
removeitem Gold001 50
player.additem Gold001 50
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 1
if getitemcount Gold001 >= 100
removeitem Gold001 100
player.additem Gold001 100
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 2
if getitemcount Gold001 >= 500
removeitem Gold001 500
player.additem Gold001 500
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 3
if getitemcount Gold001 >= 1000
removeitem Gold001 1000
player.additem Gold001 1000
set chapter to 3
else
Message "Im Schließfach ist nicht genug Gold."
set chapter to 0
endif
elseif button == 4
if getitemcount Gold001 > 0
Set button to getitemcount Gold001
removeitem Gold001 button
player.additem Gold001 button
set chapter to 0
Activate Player, 1
else
Message "Es ist kein Gold im Schließfach."
set chapter to 0
endif
elseif button == 5
set chapter to 0
endif
elseif chapter == 4
MessageBox "Wie möchtet Ihr den Zinssatz ändern?","Zufällige Verzinsung","Fixe Verzinsung","Gar nicht"
Set chapter to 41
elseif chapter == 41
Set button to getbuttonpressed
if button == 0
Set chapter to 42
elseif button == 1
Messagebox "Die fixe Verzinsung wird immer mit dem eingestellten Wert verzinsen.","Zinssatz ändern","Bestätigen und beenden"
Set chapter to 420
elseif button == 2
Set chapter to 0
endif
elseif chapter == 42
Messagebox "Die zufällige Verzinsung wird automatisch einen Wert zwischen dem Minimum und Maximum wählen.","Minimum festlegen","Maximum festlegen","Bestätigen und beenden"
Set chapter to 410
elseif chapter == 410
Set button to getbuttonpressed
if MinZINS == 0
Set MinZins to 1
Set MaxZins to 5
Set ProzentZINS to 0
endif
if button == 0
Set chapter to 411
elseif button == 1
Set chapter to 412
elseif button == 2
Set chapter to 0
endif
elseif chapter == 411
Messagebox "Legen Sie das Minimum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f",MinZINS,MaxZINS,"+0,01","+0,10","+0,50","+1","-1","-0,50","-0,10","-0,01","Fertig"
Set chapter to 413
elseif chapter == 412
Messagebox "Legen Sie das Maximum des Zinssatzes fest. Minimum / Maximum betragen zur Zeit: %.2f / %.2f",MinZINS,MaxZINS,"+0,01","+0,10","+0,50","+1","-1","-0,50","-0,10","-0,01","Fertig"
Set chapter to 414
elseif chapter == 413
Set button to getbuttonpressed
if button == 0
if (MinZINS+0.01) <= 5 && (MinZINS + 0.01) < MaxZINS
Set MinZINS to MinZINS + 0.01
endif
Set chapter to 411
elseif button == 1
if (MinZINS+0.10) <= 5 && (MinZINS + 0.10) < MaxZINS
Set MinZINS to MinZINS + 0.10
endif
Set chapter to 411
elseif button == 2
if (MinZINS+0.50) <= 5 && (MinZINS + 0.50) < MaxZINS
Set MinZINS to MinZINS + 0.50
endif
Set chapter to 411
elseif button == 3
if (MinZINS+1) <= 5 && (MinZINS + 1) < MaxZINS
Set MinZINS to MinZINS + 1
endif
Set chapter to 411
elseif button == 4
if (MinZINS - 1) >= 1
Set MinZINS to MinZINS - 1
endif
Set chapter to 411
elseif button == 5
if (MinZINS - 0.50) >= 1
Set MinZINS to MinZINS - 0.50
endif
Set chapter to 411
elseif button == 6
if (MinZINS - 0.10) >= 1
Set MinZINS to MinZINS - 0.10
endif
Set chapter to 411
elseif button == 7
if (MinZINS - 0.01) >= 1
Set MinZINS to MinZINS - 0.01
endif
Set chapter to 411
elseif button == 8
Set chapter to 42
endif
elseif chapter == 414
Set button to getbuttonpressed
if button == 0
if (MaxZINS + 0.01) <= 10
Set MaxZINS to MaxZINS + 0.01
endif
Set chapter to 412
elseif button == 1
if (MaxZINS + 0.10) <= 10
Set MaxZINS to MaxZINS + 0.10
endif
Set chapter to 412
elseif button == 2
if (MaxZINS + 0.50) <= 10
Set MaxZINS to MaxZINS + 0.50
endif
Set chapter to 412
elseif button == 3
if (MaxZINS + 1) <= 10
Set MaxZINS to MaxZINS + 1
endif
Set chapter to 412
elseif button == 4
if (MaxZINS - 1) >= 2 && (MaxZINS - 1) > MinZINS
Set MaxZINS to MaxZINS - 1
endif
Set chapter to 412
elseif button == 5
if (MaxZINS - 0.50) >= 2 && (MaxZINS - 0.50) > MinZINS
Set MaxZINS to MaxZINS - 0.50
endif
Set chapter to 412
elseif button == 6
if (MaxZINS - 0.10) >= 2 && (MaxZINS - 0.10) > MinZINS
Set MaxZINS to MaxZINS - 0.10
endif
Set chapter to 412
elseif button == 7
if (MaxZINS - 0.01) >= 2 && (MaxZINS - 0.01) > MinZINS
Set MaxZINS to MaxZINS - 0.01
endif
Set chapter to 412
elseif button == 8
Set chapter to 42
endif
elseif chapter == 420
if ProzentZINS == 0
set ProzentZINS to 1
Set MinZINS to 0
Set MaxZINS to 0
endif
Set button to getbuttonpressed
if button == 0
Set chapter to 421
elseif button == 1
Set chapter to 0
endif
elseif chapter == 421
Messagebox "Legen Sie den Zinssatz fest. Zinssatz zur Zeit: %.2f",ProzentZINS,"+0,01","+0,10","+0,50","+1","-1","-0,50","-0,10","-0,01","Abschließen"
Set chapter to 422
elseif chapter == 422
Set button to getbuttonpressed
if button == 0
if (ProzentZINS + 0.01) <= 5
Set ProzentZINS to ProzentZINS + 0.01
endif
Set chapter to 421
elseif button == 1
if (ProzentZINS + 0.10) <= 5
Set ProzentZINS to ProzentZINS + 0.10
endif
Set chapter to 421
elseif button == 2
if (ProzentZINS + 0.50) <= 5
Set ProzentZINS to ProzentZINS + 0.50
endif
Set chapter to 421
elseif button == 3
if (ProzentZINS + 1) <= 5
Set ProzentZINS to ProzentZINS + 1
endif
Set chapter to 421
elseif button == 4
if (ProzentZINS - 1) >= 1
Set ProzentZINS to ProzentZINS - 1
endif
Set chapter to 421
elseif button == 5
if (ProzentZINS - 0.50) >= 1
Set ProzentZINS to ProzentZINS - 0.50
endif
Set chapter to 421
elseif button == 6
if (ProzentZINS - 0.10) >= 1
Set ProzentZINS to ProzentZINS - 0.10
endif
Set chapter to 421
elseif button == 7
if (ProzentZINS  -0.01) >= 1
Set ProzentZINS to ProzentZINS - 0.01
endif
Set chapter to 421
elseif button == 8
Set chapter to 0
endif
endif

if init == 0
set zahltag to GameDaysPassed+30
set init to 1
if ProzentZINS == 0 && MinZINS == 0
Set ProzentZINS to 1
endif
elseif init == 1
if zahltag <= GameDaysPassed
Set button to 0
If ProzentZINS != 0 && getitemcount Gold001 > 0
Set BetragZINS to getitemcount Gold001*(ProzentZINS/100)
Set button to (BetragZINS - (BetragZINS % 1))
elseif MinZINS != 0 && getitemcount Gold001 > 0
Set BetragZINS to MinZINS + GetRandomPercent  * (MaxZINS - MinZINS + 1) / 100
Set BetragZINS to getitemcount Gold001 * (BetragZINS / 100)
Set button to (BetragZINS - (BetragZINS % 1))
endif
if button >= 1
Additem Gold001 button
Message "Es wurden Zinsen im Wert von %.0f Gold hinzugefügt."button
endif
Set init to 0
endif
endif
end

In der ersten Messagebox steht jetzt auch der Kontostand drinnen.
Bin mir aber sicher, dass du das auch selber geschafft hättest, wenn das sogar ich schaffe.  ;)
Ich tippe da nur doof irgendwelchen Beispielcode aus dem Internet ein, den ich entsprechend umändere.  :ugly:
« Letzte Änderung: 28.03.2017, 17:09 von DerJorg »
  28.03.2017, 16:45
  • Offline