PHP Code:
define buyprice 1000000
define maxyang 1999999999
define maxbank 2000000000
quest ave_bank begin
state start begin
function checkUser(name)
return mysql_query(string.format("SELECT count(username) FROM quest.bank WHERE username = '%s'", name))[1][1] > 0
end
function getInfo(name, what)
return tostring(mysql_query(string.format("SELECT %s FROM quest.bank WHERE username='%s';", what, name))[1][1])
end
function split_(string_,delimiter)
local result = { }
local from = 1
local delim_from, delim_to = string.find( string_, delimiter, from )
while delim_from do
table.insert( result, string.sub( string_, from , delim_from-1 ) )
from = delim_to + 1
delim_from, delim_to = string.find( string_, delimiter, from )
end
table.insert( result, string.sub( string_, from ) )
return result
end
function client_command(command_)
return ave_bank.split_(command_,"#")
end
function getinput(par)
cmdchat("getinputbegin")
local ret = input(cmdchat(par))
cmdchat("getinputend")
return ret
end
when login begin
cmdchat("BANK QID/"..q.getcurrentquestindex())
end
when button begin
local cmd = ave_bank.client_command(ave_bank.getinput("BANK QUESTCMD"))
if cmd[1] == "MAKELOGIN" then
if not ave_bank.checkUser(cmd[2]) then
syschat("Dieser Benutzer existiert nicht!")
return
end
if cmd[3] != ave_bank.getInfo(cmd[2], "password") then
syschat("Dein eingegebens Passworrt ist falsch.")
return
end
syschat("Erfolgreich angemeldet.")
cmdchat(string.format("BANK USERDATA/%s/%s/%s", cmd[2], cmd[3], ave_bank.getInfo(cmd[2], "money")))
cmdchat("BANK OPEN")
end
if cmd[1] == "CHANGEPW" then
if not ave_bank.checkUser(cmd[2]) then
syschat("Oops! Something went wrong.")
return
end
if cmd[3] != ave_bank.getInfo(cmd[2], "password") then
syschat("Dein altes Passwort ist inkorrekt.")
return
end
if string.len(cmd[4]) < 4 then
syschat("Dein neues Passwort muss mindestens 4 Zeichen haben!")
return
end
if cmd[3] == cmd[4] then
syschat("Dein neues Passwort darf nicht dasselbe wie dein jetziges sein!")
return
end
mysql_query(string.format("UPDATE quest.bank set password = '%s' WHERE username = '%s';", cmd[4], cmd[2]))
mysql_query(string.format("INSERT INTO quest.bank_password_log (account_id, name, old_password, new_password, time) VALUES('%d', '%s', '%s', '%s', CURRENT_TIMESTAMP);", pc.get_account_id(), pc.get_name(), cmd[3], cmd[4]))
syschat(string.format("Dein Passwort wurde erfolgreich in %s geändert!", cmd[4]))
end
if cmd[1] == "CASHIN" then
local cashedin = tonumber(cmd[4])
local saldo = tonumber(ave_bank.getInfo(cmd[2], "money"))
if not ave_bank.checkUser(cmd[2]) then
syschat("Oops! Something went wrong.")
return
end
if cmd[3] != ave_bank.getInfo(cmd[2], "password") then
syschat("Oops! Something went wrong.")
return
end
if cashedin <= 0 then
syschat("Was versuchst du da?")
return
end
if cashedin > pc.get_gold() then
syschat("Soviel Yang besitzt du nicht!")
return
end
if cashedin+saldo > maxbank then
syschat("Soviel Yang kannst du nicht einzahlen!")
return
end
mysql_query(string.format("INSERT INTO quest.bank_deposit_log (account_id, name, money, bank_name, time) VALUES('%d', '%s', '%s', '%s', CURRENT_TIMESTAMP);", pc.get_account_id(), pc.get_name(), cashedin, cmd[2]))
mysql_query(string.format("UPDATE quest.bank SET money = money + '%s' WHERE username = '%s';", cashedin, cmd[2]))
pc.changegold(-cashedin)
syschat(string.format("Du hast %s Yang eingezahlt.", cashedin))
cmdchat(string.format("BANK USERDATA/%s/%s/%s", cmd[2], cmd[3], ave_bank.getInfo(cmd[2], "money")))
end
if cmd[1] == "CASHOUT" then
local cashedout = tonumber(cmd[4])
local saldo = tonumber(ave_bank.getInfo(cmd[2], "money"))
if not ave_bank.checkUser(cmd[2]) then
syschat("Oops! Something went wrong.")
return
end
if cmd[3] != ave_bank.getInfo(cmd[2], "password") then
syschat("Oops! Something went wrong.")
return
end
if cashedout <= 0 then
syschat("Was versuchst du da?")
return
end
if cashedout >= saldo then
syschat("Soviel Yang hast du nicht auf deinem Konto!")
return
end
if cashedout+pc.get_gold() > maxyang then
syschat(string.format("Du darfst maximal nur %d Yang mit dir rumtragen.", maxyang))
return
end
mysql_query(string.format("INSERT INTO quest.bank_withdraw_funds_log (account_id, name, money, bank_name, time) VALUES('%d', '%s', '%s', '%s', CURRENT_TIMESTAMP);", pc.get_account_id(), pc.get_name(), cashedout, cmd[2]))
mysql_query(string.format("UPDATE quest.bank SET money = money - '%s' WHERE username = '%s';", cashedout, cmd[2]))
pc.changegold(cashedout)
syschat(string.format("Du hast %s Yang ausgezahlt.", cashedout))
cmdchat(string.format("BANK USERDATA/%s/%s/%s", cmd[2], cmd[3], ave_bank.getInfo(cmd[2], "money")))
end
if cmd[1] == "TRANSFER" then
local amount = tonumber(cmd[4])
local saldo = tonumber(ave_bank.getInfo(cmd[2], "money"))
local targetsaldo = tonumber(ave_bank.getInfo(cmd[5], "money"))
if not ave_bank.checkUser(cmd[2]) then
syschat("Oops! Something went wrong.")
return
end
if cmd[3] != ave_bank.getInfo(cmd[2], "password") then
syschat("Oops! Something went wrong.")
return
end
if cmd[2] == cmd[5] then
syschat("Was versuchst du da?")
return
end
if amount <= 0 then
syschat("Was versuchst du da?")
return
end
if not ave_bank.checkUser(cmd[5]) then
syschat("Dieses Bankkonto existiert nicht!")
return
end
if amount >= saldo then
syschat("Soviel Yang hast du nicht auf deinem Konto!")
return
end
if amount+targetsaldo > maxbank then
syschat("Soviel Yang kann das Bankkonto nicht aufnehmen!")
return
end
mysql_query(string.format("INSERT into quest.bank_transfer_log (account_id, name, value, transfer_to, time) VALUES('%d', '%s', '%s', '%s', CURRENT_TIMESTAMP);", pc.get_account_id(), pc.get_name(), amount, cmd[5]))
mysql_query(string.format("UPDATE quest.bank SET money = money - '%s' WHERE username = '%s';", amount, cmd[2]))
mysql_query(string.format("UPDATE quest.bank SET money = money + '%s' WHERE username = '%s';", amount, cmd[5]))
syschat(string.format("Du hast %s an %s überwiesen.", amount, cmd[5]))
cmdchat(string.format("BANK USERDATA/%s/%s/%s", cmd[2], cmd[3], ave_bank.getInfo(cmd[2], "money")))
end
if cmd[1] == "REGISTER" then
if pc.get_gold() < buyprice then
syschat(string.format("Du hast nicht genügend Yang. Dir fehlt %d Yang!", tonumber(buyprice-pc.get_gold())))
return
end
if ave_bank.checkUser(cmd[2]) then
syschat("Ein Bankkonto mit dem Namen existiert bereits.")
return
end
if string.len(cmd[2]) < 4 or string.len(cmd[3]) > 12 then
syschat("Dein Benutzername muss mindestens 4 & darf maximal 12 Zeichen haben!")
return
end
if string.len(cmd[3]) < 4 or string.len(cmd[3]) > 12 then
syschat("Dein Passwort muss mindestens 4 & darf maximal 12 Zeichen haben!")
return
end
mysql_query(string.format("INSERT INTO quest.bank (account_id, name, username, password, time) VALUES ('%d', '%s', '%s', '%s', CURRENT_TIMESTAMP);", pc.get_account_id(), pc.get_name(), cmd[2], cmd[3]))
pc.change_gold(-buyprice)
syschat(string.format("Benutzername: %s", cmd[2]))
syschat(string.format("Passwort: %s", cmd[3]))
end
end
end
end