hier folgt eine erneutes Release, und zwar das Banksystem.
Die Quest habe ich vor etwa 2 Monaten geschrieben, also kann es
sein das diese noch etwas veraltet ist, sie sollte jedoch trotzdem ihren
Zweck erfüllen und sauber laufen.
Was beinhaltet das Banksystem :
-Einzahlen von Yang
-Auszahlen von Yang
-kein Limit da es per MySql geregelt wird
-Log-System welches die User einsehen können
Quest :
PHP Code:
quest exo_bank begin
state start begin
when 9005.chat."Konto verwalten" begin
say(col.gold("Dein Guthaben beträgt ("..bank.get_money()..")"))
say()
say("Was möchtest du tun?")
local a = select("Geld abgeben","Geld abholen","Nichts")
if a == 3 then
return
elseif a == 1 then
say(col.gold("Du besitzt ("..pc.get_gold()..") Yang"))
say()
say("Wie viel Geld möchtest du abgeben?")
local money_give = tonumber(input())
if select(money_give.." Yang abgeben?","Abbrechen") == 2 then return end
if type(money_give) ~= "number" or string.len(money_give) > 10 or money_give == 0 or money_give < 0 or money_give > pc.get_money() then setskin(NOWINDOW) return chat("Du hast eine Falscheingabe getätigt!") end
chat("Du hast Erfolgreich "..money_give.." Yang auf dein Konto abgelegt!")
pc.change_gold(-money_give)
bank.set_money(money_give)
log.bank(pc.get_name(), money_give, tostring("GIVE"))
elseif a == 2 then
say(col.gold("Dein Guthaben beträgt ("..bank.get_money()..")"))
say()
say("Wie viel Geld möchtest du abholen?")
local money_take = tonumber(input())
if select(money_take.." Yang abholen?","Abbrechen") == 2 then return end
if type(money_take) ~= "number" or string.len(money_take) > 10 or money_take == 0 or money_take < 0 or money_take > bank.get_money() then setskin(NOWINDOW) return chat("Du hast eine Falscheingabe getätigt!") end
chat("Du hast Erfolgreich "..money_take.." Yang von deinem Konto abgeholt!")
pc.change_gold(money_take)
bank.set_money(-money_take)
log.bank(pc.get_name(), money_take, tostring("TAKE"))
end
end
when 9005.chat."Bankübersicht" begin
say(col.gold("Bankübersicht"))
say()
say("Was möchtest du tun?")
local a = select("Guthaben Information","Letzte Aktivitäten","Abbrechen")
if a == 3 then
return
elseif a == 1 then
say(col.gold("Guthaben Information"))
say()
say("Auf der Bank liegen "..bank.get_money().." Yang")
return
elseif a == 2 then
say(col.gold("Letzte Aktivitäten"))
say()
local tab_1, tab_2, tab_3, art = {5},{},{},{["TAKE"] = {"abgehoben"}, ["GIVE"] = {"eingezahlt"}}
local main_query = mysql_query("SELECT user_name FROM quest.exo_bank_log WHERE user_name = '"..pc.get_name().."';")
for b = 1, table.getn(main_query) do
table.insert(tab_1, bank.get_log("time", b))
table.insert(tab_2, bank.get_log("art", b))
table.insert(tab_3, bank.get_log("money", b))
end
local c = select2(tab_1)
if c == 0 then return end
say(col.gold("Zeit: "..bank.get_log("time", c)))
say()
say("Es wurden "..bank.get_log("money", c).." Yang "..art[bank.get_log("art", c)][1])
select("Alles klar!")
end
end
end
end
Funktionen :
PHP Code:
log = log or {}
bank = bank or {}
bank.get_money = function()
local get_money = mysql_query("SELECT bank_money FROM player.player WHERE id = "..pc.get_player_id()..";")
return get_money[1][1]
end
bank.set_money = function(how)
if how == nil or how == {} then return end
mysql_query("UPDATE player.player SET bank_money = bank_money+"..how..";")
end
bank.get_log = function(logfile, num)
local selects =
{
["time"] = {1},
["money"] = {2},
["art"] = {3},
}
return mysql_query("SELECT time, money, art FROM quest.exo_bank_log WHERE user_name = '"..pc.get_name().."';")[num][selects[""..tostring(logfile)..""][1]]
end
log.bank = function(player_name, money, art)
if player_name == "" or money == "" or art == "" then return end
mysql_query("INSERT INTO quest.exo_bank_log (user_name,money,art,time) VALUES ('"..player_name.."','"..money.."','"..art.."',CURRENT_TIMESTAMP);")
end
Log-Tabelle :
PHP Code:
CREATE TABLE `exo_bank_log` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`user_name` varchar(30) NOT NULL,
`money` int(20) NOT NULL,
`art` varchar(10) NOT NULL,
`time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=272 DEFAULT CHARSET=latin1
Viel spaß damit.