更新一点干活:mushclient 连接数据库。
mushclient支持access,mysql,sqlite,等等众多数据库。考虑到sqlite不需要配置服务器装一堆软件,一个本地数据库文件就搞定,比较适合thu的挂机应用。
mush原生支持sqlite,有两种访问方式,一种是mush自己写的sqlite3接口,以DataBase关键字作为入口,比如
DatabaseOpen ("db", -- database ID
GetInfo (66) .. "mytestdb.sqlite", -- file name
6)
DatabaseClose ("db") -- close it
另外一种是采用lsqlite3接口,这是一种基于通用的lua访问sqlite3的数据接口,也是mush原生支持的。考虑到通用性,还是采用lsqlite3吧。哪天失业了,没准可以去帮人写lua sqlite代码糊口。&_@
上代码:
function lib.sql.init2()
local tmp
mydb = sqlite3.open (GetInfo (66) .. "./worlds/lua/thu.db")
tmp = mydb:exec ([[
CREATE TABLE IF NOT EXISTS yuan(
myid TEXT,
item INTEGER default 0,
start_time INTEGER,
level INTEGER,
cplace TEXT,
cname TEXT,
ename TEXT,
reward_wx INTEGER default 0,
reward_dx INTEGER default 0,
reward_qn INTEGER default 0,
use_time INTEGER default 0,
flag INTEGER default 0
);
]])
mydb:close()
end
用于创建一个表,内容下面看看就知道了
id:灭妖数量:时间:时间_秒:难度:地点:怪名:怪id:奖励武学:道行:qn:灭妖用时:是否完成

统计一堆id每天的灭妖情况,大数据分析地图盲点,不同id哪个灭妖容易一些,脚本改进之后是否能提高生产力等等。
后面有条件,做一个quest的数据库,如来灭妖的数据库,可以分析不同任务的奖励情况,进行合理的选择。
下面是填数据的脚本:
function lib.sql.insert_lijing()
local line,sql
line = lib.sql.get_max_line(idinfo.myid,"lijing") + 1
sql = "INSERT INTO lijing (myid,item,in_time,start_time,level,cplace,cname,ename) VALUES ('"..idinfo.myid.."',"..line..",'"..os.date().."',"..task.lijing.start_time..","..task.lijing.task_level..",'"..task.lijing.cplace.."','"..task.lijing.cname.."','"..task.lijing.ename.."');"
mydb = sqlite3.open (GetInfo (66) .. "./worlds/lua/thu.db")
print(mydb:exec (sql))
mydb:close()
end
---------zmud没有办法做这些东西。这也是我为什么放弃zmud的原因之一。