You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.6 KiB
Lua
90 lines
2.6 KiB
Lua
local skynet = require "skynet"
|
|
local redishelper = require "redishelper"
|
|
local keysutils = require "keysutils"
|
|
local dateutils = require "dateutils"
|
|
local utils = require "utils"
|
|
local redis = require 'skynet.db.redis'
|
|
local settings = require "settings"
|
|
|
|
local skynet_node_name = ...
|
|
require "skynet.manager"
|
|
require "functions"
|
|
|
|
local CMD = {}
|
|
local rediscli = {}
|
|
-- --科技升级
|
|
-- function CMD.researchlvup(uid, id, lv)
|
|
-- local k = keysutils.club_research_key(appname, uid)
|
|
-- return redishelper.exec("zincrby", uid, k, lv, id)
|
|
-- end
|
|
|
|
-- --科技重置
|
|
-- function CMD.reset(uid, params)
|
|
-- local data = {}
|
|
-- for k, v in pairs(params) do
|
|
-- table.insert(data, v)
|
|
-- table.insert(data, k)
|
|
-- end
|
|
-- local k = keysutils.club_research_key(settings.appname, uid)
|
|
-- return redishelper.exec("zadd", uid, k, table.unpack(data))
|
|
-- end
|
|
|
|
|
|
-- local function sendmail(clubid, bossid)
|
|
-- skynet.fork(function()
|
|
-- local k1 = keysutils.club_bossharmrank_key(settings.appname, clubid, bossid)
|
|
-- local res = rediscli:zrange(k1, 0, -1, "WITHSCORES")
|
|
-- local ret = utils.redis_pack(res)
|
|
-- for k,v in pairs(ret) do
|
|
-- local id = skynet.call(".id_service", "lua", "genid", "mail")
|
|
-- local mail = {
|
|
-- id=id,
|
|
-- sender="俱乐部",
|
|
-- receiver=uid,
|
|
-- }
|
|
-- skynet.call(".maild", "lua", "sendmail", {})
|
|
-- end
|
|
-- end)
|
|
-- end
|
|
|
|
--攻打boss
|
|
function CMD.attackboss(uid, clubid, bossid, harm)
|
|
local k = keysutils.club_bossharm_key(settings.appname, clubid, bossid)
|
|
local hm = rediscli:get(k)
|
|
if tonumber(hm) >= 10000 then
|
|
return 1, "俱乐部boss已经被击败" --重复击败
|
|
end
|
|
local k1 = keysutils.club_bossharmrank_key(settings.appname, clubid, bossid)
|
|
rediscli:zincrby(k1, harm, uid)
|
|
local hm = rediscli:incr(k, harm)
|
|
if tonumber(hm) >= 10000 then
|
|
-- sendmail(clubid, bossid)
|
|
return 2, "俱乐部boss已经被击败"
|
|
end
|
|
return 0
|
|
end
|
|
|
|
|
|
skynet.start(function()
|
|
skynet.dispatch("lua", function(_, _, command, ...)
|
|
local f = assert(CMD[command])
|
|
skynet.retpack(f(...))
|
|
end)
|
|
rediscli = redis.connect(settings.db_cnf[skynet_node_name].redisdb_cnf)
|
|
|
|
if not rediscli then
|
|
error(" rediscli 连接失败")
|
|
end
|
|
|
|
skynet.fork(function()
|
|
while true do
|
|
if true then
|
|
rediscli:ping()
|
|
skynet.sleep(1000)
|
|
end
|
|
end
|
|
end)
|
|
collectgarbage()
|
|
skynet.register('.' .. SERVICE_NAME)
|
|
end)
|