Bank-GUI | |
|
Features
- Einzahlung
- Auszahlung
- Jeder Spieler kann mehrere Bankkonten anlegen
- Spieler können auf jedes Bankkonto überweisen
- Spieler können, sofern sie ID & Passwort des Bankkontos haben, auf andere Bankkonten zugrifen
- Es wird alles gelogt [administration]
- Grafische Benutzeroberfläche (GUI) (wer das tutorial befolgt, kann's Ingame mit F7 aufrufen)
Serverseitig
Clientseitig
Anschließend nur noch die BankWindow.py, PopupWindow.py & uiBank.py in die Root-File packen.
- Ladet die ave_bank.quest in euren Quest-Ordner hoch (Serverside) & tragt sie in die quest oder locale_list ein.
Clientseitig
- Game.py öffnen & nach Code:
def __ServerCommand_Build(self):
- und fügen hier folgendes hinzu: Code:
# Banksystem "BANK" : self.__BankCMD, # Banksystem [END]
- Dann gehen wir ans Ende der game.py und fügen folgendes hinzu: Code:
# Banksystem def __BankCMD(self, command): cmd = command.split("/") if cmd[0] == "OPEN": ## 1 argument; list = 9 split by # constInfo.BANK["loggedin"] = 1 elif cmd[0] == "QID": ## 1 argument constInfo.BANK["qid"] = int(cmd[1]) elif cmd[0] == "QUESTCMD": net.SendQuestInputStringPacket(str(constInfo.BANK["questCMD"])) constInfo.BANK["questCMD"] = "NULL#" elif cmd[0] == "USERDATA": constInfo.BANK["id"] = cmd[1] constInfo.BANK["pwd"] = cmd[2] constInfo.BANK["Money"] = cmd[3] # Banksystem [END]
- Versichert euch, dass ihr am Ende der game.py eine leere Zeile gelassen habt!
- Nun sucht ihr nach Code:
onPressKeyDict[app.DIK_F4] = lambda : self.__PressQuickSlot(7)
Code:onPressKeyDict[app.DIK_F7] = lambda : self.interface.ToggleBankWindow()
- Nun zur interfacemodule.py
- Fügt ganz am Anfang irgendwo Code:
import uiBank
- Dann sucht ihr nach: Code:
self.wndInventory = None
Code:self.wndBank = None
- Nun sucht ihr nach Code:
def __MakeGuildWindow(self):
Code:def __MakeBankWindow(self): self.wndBank = uiBank.Bank()
- Sucht nach Code:
wndCharacter = uiCharacter.CharacterWindow()
Code:wndBank = uiBank.Bank()
- Fügt unter Code:
self.wndInventory = wndInventory
Code:self.wndBank = wndBank
- Unter Code:
self.__MakeMessengerWindow()
Code:self.__MakeBankWindow()
- Jetzt sucht ihr nach Code:
if self.wndInventory: self.wndInventory.Destroy()
Code:if self.wndBank: self.wndBank.Destroy()
- Unter Code:
del self.wndCharacter
Code:del self.wndBank
- Klatscht irgendwo in Code:
def ShowAllWindows(self):
Code:self.wndBank.Show()
- Und das irgendwo in Code:
def HideAllWindows(self):
Code:if self.wndBank: self.wndBank.Hide()
- Nun über Code:
def ToggleInventoryWindow(self):
Code:def ToggleBankWindow(self): if False == self.wndBank.IsShow(): self.wndBank.Show() self.wndBank.SetTop() else: self.wndBank.Hide()
- Und unter Code:
self.wndCharacter,
Code:self.wndBank,
- Öffnet eure constInfo.py und fügt folgendes ein: Code:
# Banksystem BANK = { "qid" : 0, "questCMD" : "", "id" : "NaN", "pwd" : "", "Money" : 0, "loggedin" : 0, } # Banksystem [END]
- Zudem braucht ihr
- in der game.py die funktion Code:
def OpenQuestWindow(self, skin, idx):
Code:def OpenQuestWindow(self, skin, idx): if constInfo.INPUT_IGNORE == 1: return self.interface.OpenQuestWindow(skin, idx)
- Code:
def __ServerCommand_Build(self):
Code:"getinputbegin" : self.__Inputget1, "getinputend" : self.__Inputget2,
- Die zwei Funktionen ans Ende der game.py: Code:
def __Inputget1(self): constInfo.INPUT_IGNORE = 1 def __Inputget2(self): constInfo.INPUT_IGNORE = 0
- Und in die constInfo.py Code:
INPUT_IGNORE = 0
Anschließend nur noch die BankWindow.py, PopupWindow.py & uiBank.py in die Root-File packen.
Folgende Tabellen werden gebraucht (quest-Datenbank):
Code:
CREATE DATABASE quest; USE quest; SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for bank -- ---------------------------- DROP TABLE IF EXISTS `bank`; CREATE TABLE `bank` ( `account_id` bigint(20) DEFAULT NULL, `username` varchar(20) NOT NULL DEFAULT '', `password` varchar(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `money` varchar(20) DEFAULT '0', `time` datetime DEFAULT NULL, PRIMARY KEY (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for bank_deposit_log -- ---------------------------- DROP TABLE IF EXISTS `bank_deposit_log`; CREATE TABLE `bank_deposit_log` ( `account_id` int(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `money` varchar(20) DEFAULT NULL, `bank_name` varchar(20) DEFAULT NULL, `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`time`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for bank_login_log -- ---------------------------- DROP TABLE IF EXISTS `bank_login_log`; CREATE TABLE `bank_login_log` ( `account_id` int(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `bank_name` varchar(20) DEFAULT NULL, `tryed_password` varchar(20) DEFAULT NULL, `status` varchar(20) DEFAULT NULL, `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`time`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for bank_password_log -- ---------------------------- DROP TABLE IF EXISTS `bank_password_log`; CREATE TABLE `bank_password_log` ( `account_id` int(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `old_password` varchar(20) DEFAULT NULL, `new_password` varchar(20) DEFAULT NULL, `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`time`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for bank_transfer_log -- ---------------------------- DROP TABLE IF EXISTS `bank_transfer_log`; CREATE TABLE `bank_transfer_log` ( `account_id` int(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `value` varchar(20) DEFAULT NULL, `transfer_to` varchar(20) DEFAULT NULL, `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`time`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for bank_withdraw_funds_log -- ---------------------------- DROP TABLE IF EXISTS `bank_withdraw_funds_log`; CREATE TABLE `bank_withdraw_funds_log` ( `account_id` int(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `money` varchar(20) DEFAULT NULL, `bank_name` varchar(20) DEFAULT NULL, `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`time`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;