You last visited: Today at 17:39
Advertisement
[RELEASE][PYTHON/LUA][GUI] Bank-System
Discussion on [RELEASE][PYTHON/LUA][GUI] Bank-System within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
04/14/2015, 22:21
#1
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,395
[RELEASE][PYTHON/LUA][GUI] Bank-System
Bank-GUI
Image galleries require a modern browser with JavaScript enabled. Please make sure that your browser is up to date and/or enable JavaScript to view this gallery.
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 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):
suchen.
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)
& fügt drunter folgendes ein:
Code:
onPressKeyDict[app.DIK_F7] = lambda : self.interface.ToggleBankWindow()
Nun zur interfacemodule.py
Fügt ganz am Anfang irgendwo ein.
Dann sucht ihr nach:
Code:
self.wndInventory = None
& fügt drunter ein:
Code:
self.wndBank = None
Nun sucht ihr nach
Code:
def __MakeGuildWindow(self):
& fügt da drüber folgendes ein:
Code:
def __MakeBankWindow(self):
self.wndBank = uiBank.Bank()
Sucht nach
Code:
wndCharacter = uiCharacter.CharacterWindow()
und fügt drunter ein:
Code:
wndBank = uiBank.Bank()
Fügt unter
Code:
self.wndInventory = wndInventory
folgendes ein
Code:
self.wndBank = wndBank
Unter
Code:
self.__MakeMessengerWindow()
fügt ihr folgendes ein:
Code:
self.__MakeBankWindow()
Jetzt sucht ihr nach
Code:
if self.wndInventory:
self.wndInventory.Destroy()
& fügt drunter ein:
Code:
if self.wndBank:
self.wndBank.Destroy()
Unter
Code:
del self.wndCharacter
fügt ihr ein.
Klatscht irgendwo in
Code:
def ShowAllWindows(self):
folgendes rein:
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):
folgendes:
Code:
def ToggleBankWindow(self):
if False == self.wndBank.IsShow():
self.wndBank.Show()
self.wndBank.SetTop()
else:
self.wndBank.Hide()
Und unter folgendes:
Ö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):
mit
Code:
def OpenQuestWindow(self, skin, idx):
if constInfo.INPUT_IGNORE == 1:
return
self.interface.OpenQuestWindow(skin, idx)
ersetzen.
Code:
def __ServerCommand_Build(self):
folgendes hinzufügen:
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
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;
Attached Files
Bank-GUI.rar
(4.6 KB, 114 views)
Bank-GUI 1.1 (Register added).rar
(4.9 KB, 84 views)
Bank-GUI 1.2 (popupwindow added).rar
(5.6 KB, 51 views)
Bank-GUI 1.3 (FINAL!).rar
(5.6 KB, 271 views)
04/14/2015, 22:30
#2
elite*gold: 0
Join Date: Apr 2015
Posts: 26
Received Thanks: 32
mysql_query gibt so oder so einen String zurück.
So castest du einen String zu einem String.
Btw solltest lieber mit der Playerid arbeiten, wenn du eine neue Tabelle machst.
Im Falle eines neuen Chars mit dem Namen eines alten, hat der neue alles, was der alte hatte.
04/14/2015, 22:40
#3
elite*gold: 0
Join Date: Jun 2014
Posts: 1,046
Received Thanks: 956
Heute gut drauf oder so?^^ nette Releases
danke
04/14/2015, 23:19
#4
elite*gold: 75
Join Date: Mar 2012
Posts: 2,655
Received Thanks: 742
Vahap Verspätetes 2000 Beiträge Releases?
echt gute Arbeit von dir
04/14/2015, 23:34
#5
elite*gold: 250
Join Date: Feb 2011
Posts: 6,010
Received Thanks: 3,406
In Bezug auf die Anleitung besteht dringender Korrekturbedarf, dort sind dir scheinbar ein paar Fehler im Zusammenhang mit den BB-Codes unterlaufen.
Die Aufmachung gefällt mir (trotz Schlichtheit) recht gut.
lg
04/14/2015, 23:48
#6
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,765
Schönes Release, wobei es am DB-Design eines zu meckern gibt
edit:
hätte das db design so gemacht:
Code:
CREATE TABLE bank_user (
id int(6) not null auto_increment,
account_id int(11) not null,
password varchar(41) not null,
name varchar(20) not null,
money int(20) not null default 0,
`time` datetime not null default CURRENT_TIMESTAMP,
primary key(id)
);
create table bank_deposit_log (
id int(10) not null auto_increment,
user_id int(6) not null,
money int(20) not null,
`time` datetime not null default CURRENT_TIMESTAMP,
primary key(id)
);
create table bank_login_log (
id int(10) not null auto_increment,
user_id int(6) not null,
tryed_password varchar(20) not null,
status boolean not null,
`time` datetime not null default CURRENT_TIMESTAMP,
primary key(id)
);
create table bank_transfer_log (
id int(10) not null auto_increment,
user_id int(6) not null,
transfer_to int(6) not null,
`value` int(10) not null default 0,
`time` datetime not null default CURRENT_TIMESTAMP,
primary key(id)
);
create table bank_withdraw_funds_log (
id int(10) not null auto_increment,
user_id int(6) not null,
money int(20) not null,
bank_name varchar(20) not null,
`time` datetime not null default CURRENT_TIMESTAMP,
primary key(id)
);
ALTER TABLE bank_deposit_log
SET FOREIGN KEY(user_id)
REFERENCES bank_user.id;
ALTER TABLE bank_login_log
SET FOREIGN KEY(user_id)
REFERENCES bank_user.id;
ALTER TABLE bank_transfer_log
SET FOREIGN KEY(user_id)
REFERENCES bank_user.id;
ALTER TABLE bank_transfer_log
SET FOREIGN KEY(transfer_to)
REFERENCES bank_user.id;
ALTER TABLE bank_withdraw_funds_log
SET FOREIGN KEY(user_id)
REFERENCES bank_user.id;
Dafür müssten natürlich auch Änderungen an der Quest gemacht werden
04/14/2015, 23:59
#7
elite*gold: 115
Join Date: Sep 2012
Posts: 158
Received Thanks: 250
Schönes System - Vielen Dank
04/15/2015, 19:38
#8
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,395
UPDATE:
- Registration hinzugefügt
- Tutorial ausgebessert
04/16/2015, 09:01
#9
elite*gold: 0
Join Date: Dec 2010
Posts: 44
Received Thanks: 100
great work
Quote:
Originally Posted by
Mr. 'Avenue™
UPDATE:
- Registration hinzugefügt
- Tutorial ausgebessert
Mr. 'Avenue™, nice work, I will we make a mod to accomplish another function(same work, the difference this don't save yang)
¿You give me your permission for it?
04/16/2015, 13:19
#10
elite*gold: 103
Join Date: Aug 2014
Posts: 1,425
Received Thanks: 315
bester mann!!!
D
Danke dafür!
04/16/2015, 19:42
#11
elite*gold: 273
Join Date: Aug 2010
Posts: 539
Received Thanks: 264
04/17/2015, 00:34
#12
elite*gold: 0
Join Date: Jul 2014
Posts: 12
Received Thanks: 3
Bei mir spuckt er den Error in der Syserr aus:
PHP Code:
0417 00 : 30 : 18795 :: Failed to load script file : PopupWindow . py
0417 00 : 30 : 18796 :: error : No file or directory
0417 00 : 30 : 18800 ::
ui . py ( line : 2763 ) LoadScriptFile
system . py ( line : 192 ) execfile
system . py ( line : 161 ) Run
system . py ( line : 176 ) __LoadTextFile__
system . py ( line : 61 ) __init__
LoadScriptFile1 - < type 'exceptions.IOError' >: No file or directory
0417 00 : 30 : 18800 :: ============================================================================================================
0417 00 : 30 : 18800 :: Abort !!!!
0417 00 : 30 : 18802 ::
uiBank . py ( line : 26 ) __LoadWindow
ui . py ( line : 2769 ) LoadScriptFile
exception . py ( line : 36 ) Abort
BankWindow . LoadWindow . LoadObject - < type 'exceptions.SystemExit' >:
0417 00 : 30 : 18802 :: ============================================================================================================
0417 00 : 30 : 18802 :: Abort !!!!
04/17/2015, 23:28
#13
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,395
Quote:
Originally Posted by
Brodish
Bei mir spuckt er den Error in der Syserr aus:
PHP Code:
0417 00 : 30 : 18795 :: Failed to load script file : PopupWindow . py
0417 00 : 30 : 18796 :: error : No file or directory
0417 00 : 30 : 18800 ::
ui . py ( line : 2763 ) LoadScriptFile
system . py ( line : 192 ) execfile
system . py ( line : 161 ) Run
system . py ( line : 176 ) __LoadTextFile__
system . py ( line : 61 ) __init__
LoadScriptFile1 - < type 'exceptions.IOError' >: No file or directory
0417 00 : 30 : 18800 :: ============================================================================================================
0417 00 : 30 : 18800 :: Abort !!!!
0417 00 : 30 : 18802 ::
uiBank . py ( line : 26 ) __LoadWindow
ui . py ( line : 2769 ) LoadScriptFile
exception . py ( line : 36 ) Abort
BankWindow . LoadWindow . LoadObject - < type 'exceptions.SystemExit' >:
0417 00 : 30 : 18802 :: ============================================================================================================
0417 00 : 30 : 18802 :: Abort !!!!
Hab's mal hinzugefügt. Lade dir bitte das neueste Update (1.2) herunter.
04/18/2015, 15:05
#14
elite*gold: 0
Join Date: Mar 2015
Posts: 19
Received Thanks: 1
0418 16:00:18568 :: Traceback (most recent call last):
0418 16:00:18569 :: File "uiBank.py", line 150, in OnUpdate
0418 16:00:18569 :: AttributeError
0418 16:00:18569 :: :
0418 16:00:18569 :: 'module' object has no attribute 'BANK'
0418 16:00:18569 ::
04/18/2015, 15:21
#15
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,395
Quote:
Originally Posted by
Undead Corporation
0418 16:00:18568 :: Traceback (most recent call last):
0418 16:00:18569 :: File "uiBank.py", line 150, in OnUpdate
0418 16:00:18569 :: AttributeError
0418 16:00:18569 :: :
0418 16:00:18569 :: 'module' object has no attribute 'BANK'
0418 16:00:18569 ::
Add this to your constInfo.py:
Code:
# Banksystem
INPUT_IGNORE = 0
BANK = {
"qid" : 0,
"questCMD" : "",
"id" : "NaN",
"pwd" : "",
"Money" : 0,
"loggedin" : 0,
}
# Banksystem [END]
Similar Threads
[PYTHON | RELEASE] KillEfekt & Blood System
12/27/2022 - Metin2 PServer Guides & Strategies - 54 Replies
Onlye for ElitePVP. Please a do not share any other place.(Lütfen hiç bir forumda paylaşmayin.Sadece ElitePVP.) (Bitte teilen nicht alle Foren.)
Hi.I'm Fatihbab34™
Python = Fatihbab34™
Design = Khafkef™
Video ; KillEfekt & Blood System | Fatihbab34? - YouTube
[Release]Bank System mit GUI
07/11/2014 - Metin2 PServer Guides & Strategies - 66 Replies
hi
ich möchte heute mein Bank System mit euch teilen
ich habe es erstellt da es meines wissens nach noch keine Bank mit GUI gibt
hier ein paar screens:
http://epvpimg.com/0glRe.png
[Release]Bank System über Mysql+Log System
09/06/2013 - Metin2 PServer Guides & Strategies - 16 Replies
Hallo,
wie die Überschrift schon sagt Release ich euch heute ein Bank System von einem Freund von mir.
Bevor ihr meckert, ich habe die Erlaubnis von ihm!
Ich weiß es gibt viele Bank Systeme, aber so eins wie ich es euch Heute Release habe ich bis jetzt noch nicht gesehen.
Features:
All times are GMT +2. The time now is 17:40 .