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.

194 lines
6.3 KiB
Lua

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

local skynet = require "skynet"
local redishelper = require "redishelper"
local keysutils = require "keysutils"
local settings = require "settings"
local dateutils = require "dateutils"
local utils = require "utils"
local mongohelper = require "mongohelper"
local skynet_node_name = ...
require "skynet.manager"
local CMD = {}
--1008: 你成功击败了%s抢走了%s的咸臣%s现在%s已经成为了你的咸臣每次%s领取挂机奖励时会向你上缴%s的挂机金币收益。
--1009: 你尝试征服%s但是挑战%s的咸主%s失败了战力的提升有助于增加胜算哦
--10010: 你成功击败了%s现在%s已经成为了你的咸臣每次%s领取挂机奖励时会向你上缴%s%的挂机金币收益。
--10011: 你尝试征服%s但是失败了战力的提升有助于增加胜算哦
--发送战报给我自己
function CMD.sendcombatreport2myself(tp, my, user, owner)
local content
local params = {}
if tp == "success" then
if owner~=nil then
content = 1008
table.insert(params, owner.nickname)
table.insert(params, owner.nickname)
table.insert(params, user.nickname)
table.insert(params, user.nickname)
table.insert(params, user.nickname)
else
content = 10010
table.insert(params, user.nickname)
table.insert(params, user.nickname)
table.insert(params, user.nickname)
end
else
if owner~=nil then
content = 1009
table.insert(params, user.nickname)
table.insert(params, user.nickname)
table.insert(params, owner.nickname)
else
content = 10011
table.insert(params, user.nickname)
end
end
assert(content ~= nil)
local mail = {}
local id = skynet.call(".id_service", "lua", "genid", "combatreport")
mail.id=id
mail.temp="Y"
mail.receiver=my.uid
mail.params=params
mail.status=0 --未读
mail.title=1007
mail.content=content
mail.report = owner or user
mail.created_at=dateutils.get_datetime()
local ok = mongohelper.insert(settings.roommail_mongodb_key.tname, settings.roommail_mongodb_key.cname, mail)
skynet.send(".msgd", "lua", "sendcombatreport", my.uid, mail)
return "ok"
end
--10012: %s成功击败了你的咸主%s从%s手中抢走了你
--10013: %s尝试从你的咸主%s手中抢走你但是由于战力悬殊失败了
--10014: %s成功击败了你%s成为了你的咸主
--10015: %s尝试把你抓为咸臣但是由于战力悬殊失败了
--发送战报给我对方
function CMD.sendcombatreport2user(tp, my, user, owner)
local content
local params = {}
if tp == "success" then
if owner~=nil then
content = 10012
table.insert(params, my.nickname)
table.insert(params, owner.nickname)
table.insert(params, owner.nickname)
else
content = 10014
table.insert(params, my.nickname)
table.insert(params, my.nickname)
end
else
if owner~=nil then
content = 10013
table.insert(params, my.nickname)
table.insert(params, owner.nickname)
else
content = 10015
table.insert(params, my.nickname)
end
end
assert(content ~= nil)
local mail = {}
local id = skynet.call(".id_service", "lua", "genid", "combatreport")
mail.id=id
mail.temp="Y"
mail.receiver=user.uid
mail.params=params
mail.status=0 --未读
mail.title=1007
mail.content=content
mail.report = my
mail.created_at=dateutils.get_datetime()
local ok = mongohelper.insert(settings.roommail_mongodb_key.tname, settings.roommail_mongodb_key.cname, mail)
skynet.send(".msgd", "lua", "sendcombatreport", user.uid, mail)
return "ok"
end
--10016: %s成功击败了你%s抢走了你的咸臣%s
--10017: %s尝试抢走你的咸臣%s但是由于战力悬殊失败了
--发送战报给我咸主
function CMD.sendcombatreport2owner(tp, my, user, owner)
local content
local params = {}
if tp == "success" then
if owner~=nil then
content = 10016
table.insert(params, my.nickname)
table.insert(params, my.nickname)
table.insert(params, user.nickname)
end
else
if owner~=nil then
content = 10017
table.insert(params, my.nickname)
table.insert(params, user.nickname)
end
end
assert(content ~= nil)
local mail = {}
local id = skynet.call(".id_service", "lua", "genid", "combatreport")
mail.id=id
mail.temp="Y"
mail.receiver=owner.uid
mail.params=params
mail.status=0 --未读
mail.title=1007
mail.content=content
mail.report = my
mail.created_at=dateutils.get_datetime()
local ok = mongohelper.insert(settings.roommail_mongodb_key.tname, settings.roommail_mongodb_key.cname, mail)
skynet.send(".msgd", "lua", "sendcombatreport", owner.uid, mail)
return "ok"
end
local scritps = [[
local n = redis.call('incr', ARGV[1])
redis.call('expire', ARGV[1], ARGV[2])
return n
]]
function CMD.incrrobnum(uid)
local k = keysutils.user_robsaltpot_num_key(settings.appname, uid, dateutils.getday())
return redishelper.exec("eval", uid, scritps, 2, "k", "ex", k, dateutils.getdayex())
end
function CMD.robsaltpot(uid, member, score)
local k = keysutils.user_robsaltpot_list_key(settings.appname, uid)
return redishelper.exec("zadd", uid, k, score, member)
end
function CMD.getsaltpotnum(uid)
local k = keysutils.user_robsaltpot_lis_key(settings.appname, uid)
return redishelper.exec("zcard", uid, k)
end
function CMD.getsaltpotlist(uid)
local k = keysutils.user_robsaltpot_lis_key(settings.appname, uid)
local res = redishelper.exec("zrange", uid, k, 0, -1, "WITHSCORES")
return utils.redis_pack(res)
end
function CMD.removesaltpot(uid, member)
local k = keysutils.user_robsaltpot_lis_key(settings.appname, uid)
return redishelper.exec("zrem", uid, k, member)
end
skynet.start(function()
skynet.dispatch("lua", function(_, _, command, ...)
local f = assert(CMD[command])
skynet.retpack(f(...))
end)
skynet.register('.' .. SERVICE_NAME)
end)