Commit 6304b5ad4baa92bc2a87f0cfd418432ca457437d
1 parent
50a0dd50
feat: 一番赏 增加重置扭蛋机指令
reset_capsule typ typ类型: 0=独享 1=公开
Showing
3 changed files
with
60 additions
and
1 deletions
Show diff stats
src/actions/GmAction.lua
| @@ -9,7 +9,7 @@ function _M.clientRequest(agent, data) | @@ -9,7 +9,7 @@ function _M.clientRequest(agent, data) | ||
| 9 | SendPacket(actionCodes.Gm_receiveResponse, bin) | 9 | SendPacket(actionCodes.Gm_receiveResponse, bin) |
| 10 | return true | 10 | return true |
| 11 | end | 11 | end |
| 12 | - local ret = action(role, msg) | 12 | + local ret = action(role, msg, agent.capsule_serv) |
| 13 | bin = MsgPack.pack({ cmd = ret }) | 13 | bin = MsgPack.pack({ cmd = ret }) |
| 14 | SendPacket(actionCodes.Gm_receiveResponse, bin) | 14 | SendPacket(actionCodes.Gm_receiveResponse, bin) |
| 15 | return true | 15 | return true |
| @@ -1075,4 +1075,15 @@ function _M.clear_sea(role, pms) | @@ -1075,4 +1075,15 @@ function _M.clear_sea(role, pms) | ||
| 1075 | return "成功" | 1075 | return "成功" |
| 1076 | end | 1076 | end |
| 1077 | 1077 | ||
| 1078 | +table.insert(helpDes, {"重置扭蛋机", "reset_capsule", "typ"}) | ||
| 1079 | +function _M.reset_capsule(role, pms, capsule_serv) | ||
| 1080 | + local typ = tonumber(pms.pm1) | ||
| 1081 | + if typ == 1 then | ||
| 1082 | + skynet.call(capsule_serv, "lua", "reset") | ||
| 1083 | + else | ||
| 1084 | + role:resetCapsule() | ||
| 1085 | + end | ||
| 1086 | + return "成功" | ||
| 1087 | +end | ||
| 1088 | + | ||
| 1078 | return _M | 1089 | return _M |
| 1079 | \ No newline at end of file | 1090 | \ No newline at end of file |
src/models/RolePlugin.lua
| @@ -3196,6 +3196,30 @@ function RolePlugin.bind(Role) | @@ -3196,6 +3196,30 @@ function RolePlugin.bind(Role) | ||
| 3196 | local capsule = self.capsules[capsuleId] or {} | 3196 | local capsule = self.capsules[capsuleId] or {} |
| 3197 | return capsule:data() | 3197 | return capsule:data() |
| 3198 | end | 3198 | end |
| 3199 | + | ||
| 3200 | + function Role:resetCapsule() | ||
| 3201 | + local roleId = self:getProperty("id") | ||
| 3202 | + local res = redisproxy:smembers(CAPSULE_ID_ROLE:format(roleId)) or {} | ||
| 3203 | + for _, key in pairs(res) do | ||
| 3204 | + redisproxy:del(CAPSULE_ROLE:format(roleId, tonumber(key))) | ||
| 3205 | + redisproxy:srem(CAPSULE_ID_ROLE, key) | ||
| 3206 | + end | ||
| 3207 | + | ||
| 3208 | + for _, data in pairs(csvdb["ichibankuji_mainCsv"]) do | ||
| 3209 | + for _, val in pairs(data) do | ||
| 3210 | + if val.typ == 0 then | ||
| 3211 | + local key = val.id..val.room | ||
| 3212 | + if not self.capsules[key] then | ||
| 3213 | + local capsule = require("models.Capsule").new({ key = CAPSULE_ROLE:format(roleId, tonumber(key)), id= val.id, room = val.room, typ = 0, name=val.name}) | ||
| 3214 | + capsule:init() | ||
| 3215 | + capsule:create() | ||
| 3216 | + self.capsules[key] = capsule | ||
| 3217 | + redisproxy.sadd(CAPSULE_ID_ROLE:format(roleId), key) | ||
| 3218 | + end | ||
| 3219 | + end | ||
| 3220 | + end | ||
| 3221 | + end | ||
| 3222 | + end | ||
| 3199 | end | 3223 | end |
| 3200 | 3224 | ||
| 3201 | return RolePlugin | 3225 | return RolePlugin |
| 3202 | \ No newline at end of file | 3226 | \ No newline at end of file |
src/services/capsuled.lua
| @@ -100,6 +100,30 @@ local function check_capsules() | @@ -100,6 +100,30 @@ local function check_capsules() | ||
| 100 | skynet.timeout(60, check_capsules) | 100 | skynet.timeout(60, check_capsules) |
| 101 | end | 101 | end |
| 102 | 102 | ||
| 103 | +function CMD.reset() | ||
| 104 | + local now = skynet.timex() | ||
| 105 | + local res = redisproxy:smembers(CAPSULE_INFO) or {} | ||
| 106 | + for _, key in pairs(res) do | ||
| 107 | + redisproxy:del(CAPSULE_PUBLIC:format(key)) | ||
| 108 | + redisproxy:srem(CAPSULE_INFO, key) | ||
| 109 | + end | ||
| 110 | + | ||
| 111 | + for _, data in pairs(csvdb["ichibankuji_mainCsv"]) do | ||
| 112 | + for _, val in ipairs(data) do | ||
| 113 | + if val.type == 1 then | ||
| 114 | + local key = val.id..val.room | ||
| 115 | + if not capsules[key] then | ||
| 116 | + local capsule = require("models.Capsule").new({ key = CAPSULE_PUBLIC:format(key), id= val.id, room = val.room, typ = 1, name=val.name}) | ||
| 117 | + capsule:init() | ||
| 118 | + capsule:create() | ||
| 119 | + capsules[key] = capsule | ||
| 120 | + redisproxy:sadd(CAPSULE_INFO, key) | ||
| 121 | + end | ||
| 122 | + end | ||
| 123 | + end | ||
| 124 | + end | ||
| 125 | +end | ||
| 126 | + | ||
| 103 | function CMD.start() | 127 | function CMD.start() |
| 104 | local now = skynet.timex() | 128 | local now = skynet.timex() |
| 105 | local res = redisproxy:smembers(CAPSULE_INFO) or {} | 129 | local res = redisproxy:smembers(CAPSULE_INFO) or {} |