Commit 6cac3be8579cbb1d1f9d742e2d47ed4642c943b2

Authored by liuzujun
1 parent 7f0106d7

将军令批量领取奖励

src/actions/ActivityAction.lua
@@ -1152,7 +1152,6 @@ function _M.battleCommandRpc(agent, data) @@ -1152,7 +1152,6 @@ function _M.battleCommandRpc(agent, data)
1152 local actid = msg.actid -- 活动id 1152 local actid = msg.actid -- 活动id
1153 local index = msg.index -- 领取的阶段id 1153 local index = msg.index -- 领取的阶段id
1154 local pay = msg.pay -- 是否是超级奖励 1154 local pay = msg.pay -- 是否是超级奖励
1155 - print(actid, index, pay)  
1156 1155
1157 if not role.activity:isOpenById(actid, "BattleCommand") then return 1 end 1156 if not role.activity:isOpenById(actid, "BattleCommand") then return 1 end
1158 local actCtrlData = csvdb["activity_ctrlCsv"][actid] 1157 local actCtrlData = csvdb["activity_ctrlCsv"][actid]
@@ -1165,32 +1164,62 @@ function _M.battleCommandRpc(agent, data) @@ -1165,32 +1164,62 @@ function _M.battleCommandRpc(agent, data)
1165 local bpCfg = csvdb["activity_battlepass_rewardCsv"][actid] 1164 local bpCfg = csvdb["activity_battlepass_rewardCsv"][actid]
1166 if not bpCfg then return 3 end 1165 if not bpCfg then return 3 end
1167 1166
1168 - bpCfg = bpCfg[index]  
1169 - if not bpCfg then return 4 end  
1170 -  
1171 - if (actData["lvl"] or 0) < bpCfg["type"] then return 5 end 1167 + local award = {}
  1168 + if not index then -- 一键领取
  1169 + for i = 1, #bpCfg do
  1170 + local cfg = bpCfg[i]
  1171 + if not cfg then return 4 end
  1172 +
  1173 + if (actData["lvl"] or 0) < cfg["type"] then break end
  1174 + local records = {{"freeR", "rewardNormal"}, {"payR", "rewardHigh"}}
  1175 +
  1176 + for _, info in ipairs(records) do
  1177 + local typeKey, rewardKey = info[1], info[2]
  1178 + local record = actData[typeKey] or ""
  1179 + local flag = string.char(string.getbit(record, i))
  1180 + if flag == "0" then
  1181 + record = string.setbit(record, i)
  1182 + end
  1183 + record = string.setbit(record, i)
  1184 + actData[typeKey] = record
1172 1185
1173 - local record = ""  
1174 - if pay then  
1175 - record = actData["payR"] or "" 1186 + local awd = cfg[rewardKey]
  1187 + for k, v in pairs(awd:toNumMap()) do
  1188 + award[k] = (award[k] or 0) + v
  1189 + end
  1190 + end
  1191 + end
1176 else 1192 else
1177 - record = actData["freeR"] or ""  
1178 - end 1193 + bpCfg = bpCfg[index]
  1194 + if not bpCfg then return 4 end
1179 1195
1180 - local flag = string.char(string.getbit(record, index)) 1196 + if (actData["lvl"] or 0) < bpCfg["type"] then return 5 end
1181 1197
1182 - if flag == "1" then  
1183 - return 6  
1184 - end 1198 + local record = ""
  1199 + if pay then
  1200 + record = actData["payR"] or ""
  1201 + else
  1202 + record = actData["freeR"] or ""
  1203 + end
1185 1204
1186 - record = string.setbit(record, index)  
1187 - local award = ""  
1188 - if pay then  
1189 - actData["payR"] = record  
1190 - award = bpCfg["rewardNormal"]  
1191 - else  
1192 - actData["freeR"] = record  
1193 - award = bpCfg["rewardHigh"] 1205 + local flag = string.char(string.getbit(record, index))
  1206 +
  1207 + if flag == "1" then
  1208 + return 6
  1209 + end
  1210 +
  1211 + record = string.setbit(record, index)
  1212 + local awd = ""
  1213 + if pay then
  1214 + actData["payR"] = record
  1215 + awd = bpCfg["rewardNormal"]
  1216 + else
  1217 + actData["freeR"] = record
  1218 + awd = bpCfg["rewardHigh"]
  1219 + end
  1220 + for k, v in pairs(awd:toNumMap()) do
  1221 + award[k] = (award[k] or 0) + v
  1222 + end
1194 end 1223 end
1195 1224
1196 role.activity:updateActData("BattleCommand", actData) 1225 role.activity:updateActData("BattleCommand", actData)
src/models/Activity.lua
@@ -979,7 +979,6 @@ activityFunc[Activity.ActivityType.BattleCommand] = { @@ -979,7 +979,6 @@ activityFunc[Activity.ActivityType.BattleCommand] = {
979 self:updateActData(actType, data, not notify) 979 self:updateActData(actType, data, not notify)
980 end, 980 end,
981 ["check"] = function(self, actType, notify, id, count) -- 检查 itemid, count 981 ["check"] = function(self, actType, notify, id, count) -- 检查 itemid, count
982 - print("babababa", id, count)  
983 local isOpen, actId = self:isOpen(actType) 982 local isOpen, actId = self:isOpen(actType)
984 local actData = self:getActData(actType) or {} 983 local actData = self:getActData(actType) or {}
985 local actCfg = csvdb["activity_ctrlCsv"][actId] 984 local actCfg = csvdb["activity_ctrlCsv"][actId]
@@ -2,5 +2,5 @@ @@ -2,5 +2,5 @@
2 local skynet = require "skynet" 2 local skynet = require "skynet"
3 3
4 skynet.timex = function () 4 skynet.timex = function ()
5 - return math.floor(skynet.time()) + 2332771 5 + return math.floor(skynet.time())
6 end 6 end
7 \ No newline at end of file 7 \ No newline at end of file