Damit könnt ihr in einer Questflag einen String und eine Nummer speichern, diese Einzeln oder gleichzeitig abfragen und wenns mal sein muss direkt in der Datenbank bearbeiten, ohne den Server zu rebooten.
Nichts großes aber bestimmt hilfreich für manche ;)
SQL:
LUA:
Viel Spaß damit!
EDIT:
Nichts großes aber bestimmt hilfreich für manche ;)
SQL:
Code:
CREATE TABLE questflag ( pid int(11) NOT NULL, qid int(5) NOT NULL, flagname varchar(50) NOT NULL, flag_num int(100) NOT NULL DEFAULT 0, flag_str varchar(100) NOT NULL DEFAULT '', set_time datetime NOT NULL, PRIMARY KEY(pid, qid, flagname) );
Code:
local getqf_query = "SELECT flag_num, flag_str FROM player.questflag WHERE pid = %s AND qid = %s AND flagname = '%s' LIMIT 1;"
local setqf_query = "INSERT INTO player.questflag (pid, qid, flagname, flag_num, flag_str, set_time) VALUES (%s, %s, '%s', %s, %s, CURRENT_TIMESTAMP) ON DUPLICATE KEY UPDATE flag_num = %s, flag_str = %s, set_time = CURRENT_TIMESTAMP;"
function pc.getf(questindex, flagname)
local qf = mysql_query(string.format(getqf_query, pc.get_player_id(), questindex, flagname))
if not qf or table.getn(qf) < 1 then
return {0, ""}
end
return {tonumber(qf.flag_num[1]), qf.flag_str[1]}
end
function pc.getf_num(questindex, flagname)
return pc.getf(questindex, flagname)[1]
end
function pc.getf_str(questindex, flagname)
return pc.getf(questindex, flagname)[2]
end
function pc.setf(questindex, flagname, flag_num, flag_str)
mysql_query(string.format(setqf_query, pc.get_player_id(), questindex, flagname, flag_num, "'"..flag_str.."'", flag_num, "'"..flag_str.."'"))
end
function pc.setf_num(questindex, flagname, flag_num)
mysql_query(string.format(setqf_query, pc.get_player_id(), questindex, flagname, flag_num, "flag_str", flag_num, "flag_str"))
end
function pc.setf_str(questindex, flagname, flag_str)
mysql_query(string.format(setqf_query, pc.get_player_id(), questindex, flagname, "flag_num", "'"..flag_str.."'", "flag_num", "'"..flag_str.."'"))
end
function pc.getqf(flagname)
return pc.getf(q.getcurrentquestindex(), flagname)
end
function pc.getqf_num(flagname)
return pc.getf_num(q.getcurrentquestindex(), flagname)
end
function pc.getqf_str(flagname)
return pc.getf_str(q.getcurrentquestindex(), flagname)
end
function pc.setqf(flagname, flag_num, flag_str)
pc.setf(q.getcurrentquestindex(), flagname, flag_num, flag_str)
end
function pc.setqf_num(flagname, flag_num)
pc.setf_num(q.getcurrentquestindex(), flagname, flag_num)
end
function pc.setqf_str(flagname, flag_str)
pc.setf_str(q.getcurrentquestindex(), flagname, flag_str)
end
EDIT:
Quote:
Habe ich überlegt zu machen allerdings finde ich es für mich so wie es ist angenehmer.
Hier die andere Möglichkeit:
Code:function pc.setqf(flagname, flag) ({pc.setqf_num, pc.setqf_str})[type(flag) == "number" and 1 or 2](flagname, flag) end