为什么有人可以帮助我,我在我的系统上得到了有关更新计时器和排名的代码:
function dungeonLib.update_ranking(dungeonID, rankingType)
cmdchat(string.format("CleanDungeonRanking"))
local dungeonID = tonumber(dungeonID)
local rankingType = tonumber(rankingType)
local query
if rankingType == 1 then
query = mysql_query("SELECT name, level, finished FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' ORDER BY finished DESC LIMIT 100;")
elseif rankingType == 2 then
query = mysql_query("SELECT name, level, fastest_time FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' ORDER BY fastest_time ASC LIMIT 100;")
elseif rankingType == 3 then
query = mysql_query("SELECT name, level, highest_damage FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' ORDER BY highest_damage DESC LIMIT 100;")
end
if table.getn(query) > 0 then
for index in ipairs(query) do
if rankingType == 1 then
cmdchat(string.format("UpdateDungeonRanking %s %d %d",
query.name[index],
query.level[index],
query.finished[index]
))
elseif rankingType == 2 then
cmdchat(string.format("UpdateDungeonRanking %s %d %d",
query.name[index],
query.level[index],
query.fastest_time[index]
))
elseif rankingType == 3 then
cmdchat(string.format("UpdateDungeonRanking %s %d %d",
query.name[index],
query.level[index],
query.highest_damage[index]
))
end
end
end
cmdchat(string.format("OpenDungeonRanking"))
end
function dungeonLib.update_rank(dungeonID, name, level, finished, fastestTime, highestDamage)
local query = mysql_query("SELECT * FROM log.dungeon_ranking WHERE dungeon_id = '"..dungeonID.."' and name = '"..name.."';")
if table.getn(query) > 0 then
return mysql_query("UPDATE log.dungeon_ranking SET level = "..level..", finished = finished + "..finished..", fastest_time = "..fastestTime..", highest_damage = "..highestDamage.." WHERE dungeon_id = "..dungeonID.." and name = '"..name.."';")
else
return mysql_query("INSERT INTO log.dungeon_ranking VALUES("..dungeonID..", '"..name.."', "..level..", "..finished..", "..fastestTime..", "..highestDamage..");")
end
end
function dungeonLib.get_rank(dungeonID, name, pointType)
local dungeonID = tonumber(dungeonID) - 1
local name = tostring(name)
local pointType = tonumber(pointType)
local query = mysql_query("SELECT finished, fastest_time, highest_damage FROM log.dungeon_ranking WHERE dungeon_id = "..dungeonID.." and name = '"..name.."';")
if table.getn(query) > 0 then
if pointType == 1 then return query.finished[1]
elseif pointType == 2 then return query.fastest_time[1]
elseif pointType == 3 then return query.highest_damage[1]
else return 0 end
else return 0 end
end
当我尝试使用排名命令时,我在freebsd上遇到了该错误:
* Mysql:模糊选项'--e = SELECT完成,最快的时间,log.ranking名称为“ ..”的损坏最大。 (Enable_Cleartext_plugin,execute)*
level
是mysql
中的保留关键字,用tick
括起来。