Wie funktionieren Banken ? Die Banken machen zunaechst nichts anderes, als eine Variable im Spieler selbst zu verwalten. In /doc/funktionsweisen/handel/konten ist dies genauer erlaeutert. Banken haben im Allgemeinen aber noch weitere Features: - Wechseln verschiedener Waehrungen in die eigene - Auszahlung von Guthaben-Zinsen - Erteilung von Krediten - Einbehalten von Kredit-Zinsen - Kassieren von Gebuehren Hierfuer sind aber zusaetzlich Information ueber die Zeiten von Ein- und Auszahlung notwendig. Diesen Verwaltungs-Aufwand uebernehmen die Routinen in /i/money/banking. 1. /i/money/banking a. Setzen der Waehrung set_valuta(string Waehrungs_Name_Einzahl) set_valutas(string Waehrungs_Name_Mehrzahl) b. Setzen des Wechselkurses Dies geschieht ueber die Setze-routinen von /i/money/exchange, die von /i/money/banking inherited werden. Naeheres siehe /doc/funktionsweisen/handel/wechselkurs. Damit die Bank funktioniert, muss auf jeden Fall eine Minimal- Kurs-Tabelle gesetzt werden: Wenn die Waehrung der Bank "taler" ist: set_valuta_tafel( ({"taler"}) ); set_valutas_tafel( ({"taler"}) ); set_kurs_tafel( ({ 1000 }) ); und wenn sie zB "zorkmid" heisst: set_valuta_tafel( ({"taler", "zorkmid" }) ); set_valutas_tafel( ({"taler", "zorkmids"}) ); set_kurs_tafel( ({ 1000, 2000 }) ); c. Zinsen setzen Guthaben-Zinsen werden mit set_zins(int Zinssatz) in Prozent festgesetzt, die Kredit-Zinsen mit set_kredit_zins(int Zinssatz). Der Zeitraum, ueber den die Zinsen gelten, kann mit set_zins_zeitraum(int Zeitraum_in_Sekunden) gesetzt werden, ueblicherweise eine Woche, also 604800 Sekunden. d. Gebuehren Einzahlung: set_kosten_einzahlung(int wieviel) Auszahlung: set_kosten_auszahlung(int wieviel) Kontofuehrung: set_kosten_fuehrung(int wieviel) Kontostand-Abfrage: set_kosten_kontostand(int wieviel) e. Die eigentliche Aufgabe von /i/money/banking, naemlich das Verwalten des Spieler-Kontos, geschieht alles mit einer Routine, naemlich: int bewegung(int betrag, object spieler) Ist kleiner als Null, so wird ausgezahlt, ist groesser Null, so wird eingezahlt und ist Betrag gleich Null, so wird nur der Kontostand zurueckgegeben. Auf jeden Fall wird der nach der Bewegung aktuelle Kontostand zurueckgeliefert. Braucht man den Kontostand, OHNE das gleich die Kontostand-Gebuehren abgezogen werden, wie bei bewegung(..), nimmt man query_kontostand(object spieler) Das Konto wird auf jeden Fall aktualisiert, d.h. es werden bei beiden Routinen Zinsen addiert bzw abgezogen. 2. /i/money/bank Hier werden die Kommandos definiert, ueber die die Spieler Geld einzahlen, auszahlen und wechseln koennen. Dieser File inherited bereits /i/money/banking. a. Kommandos: zahle ein hebe ab wechsle kontostand b. Settings Kredit-Limit: set_kredit_rahmen(int Kredit_Limit) Wechsel-Gebuehren set_kosten_wechseln(int Wechsel_kosten; }