|
|
发表于 2018-5-25 14:02:08
发表自手机触屏版
|
显示全部楼层
mojito 发表于 2018-5-25 12:37
这两天看了下lua 的table
只看到有升序排列
如果做排行榜的话需要的数据只有降序排列的前几个数据
说实话我很久没弄过lua了 连很多api也记不得了
所以我写的这些也不一定是最好的 你可以作为参考 但不一定要照着做
查询数据库是一定要查询的 我只是说你查询的时机不对.
事实上.如果你玩过一些有排行榜的网游
你会发现它是每隔一段时间后更新的
在没有更新前 玩家查看的不是实时查询的结果 而是缓存
同样道理
你可以加几个函数
local next_query = nil
local list1={}
local list2={}
......
在你查询成功后设置 next_query=os.time() + 查询间隔--我忘了lua获取当前时间是不是这个
然后用查询到的排行数据填充list123之类的
然后玩家打开菜单里加一个判断
if os.time() >next_query then
--查询数据库 并更新list123和设置下一个查询时间
end
使用table list123的数据
生成排行列表
这样就简单实现了间隔查询了
当然也可以用eluna自带的循环事件 来更新排行榜数据 这种定时事件写法会更简单 (参考百团大战)
我上边说的是触发式的 只有玩家点击后才判断需不需要查询数据库
lua的定时是固定时间更新的 无论有没有玩家点菜单都一样
总之各有千秋吧 |
|