Commit 85083dba9b046b99c5406e9172ded2ca8ee2d621

Authored by zhouhaihai
1 parent 4cf74232

拉黑从申请列表移除

Showing 2 changed files with 37 additions and 22 deletions   Show diff stats
src/actions/FriendAction.lua
... ... @@ -428,6 +428,8 @@ function _M.blockRpc(agent, data)
428 428 redisproxy:pipelining(function (red)
429 429 red:hdel(FRIEND_KEY:format(roleId), objectId)
430 430 red:hdel(FRIEND_KEY:format(objectId), roleId)
  431 + red:ZREM(FRIEND_APPLY_KEY:format(roleId), objectId)
  432 + red:ZREM(FRIEND_APPLY_KEY:format(objectId), roleId)
431 433 red:sadd(FRIEND_BLACK_KEY:format(roleId), objectId)
432 434 end)
433 435 rpcRole(objectId, "SendPacket", actionCodes.Friend_updateProperty, MsgPack.pack({deleteFriend = 1, roleId = roleId}))
... ...
src/actions/PvpAction.lua
... ... @@ -13,6 +13,9 @@ local _pvpStartBattleCache = nil --
13 13  
14 14 local _pvpRecordInfoCache = {} -- 记录缓存
15 15 local _pvpRecordBattleInfoCache = {} -- 记录战斗数据缓存
  16 +local _responseRecord = {} -- 复仇对单人1分钟间隔
  17 +
  18 +local ResponseWaitTime = 60
16 19  
17 20 function _M.formatCommonRpc(agent , data)
18 21 local role = agent.role
... ... @@ -148,14 +151,21 @@ function _M.startBattleRpc(agent, data)
148 151 local idx = msg.idx
149 152 local revenge = msg.revenge
150 153  
151   - local matchInfo
152   -
  154 + local matchInfo, result, key, wait
  155 + local now = skynet.timex()
153 156 if revenge then --复仇
154   - if not _pvpRecordInfoCache[idx] then return end
155   - if _pvpRecordInfoCache[idx].t == 1 then
156   - matchInfo = _pvpRecordBattleInfoCache[_pvpRecordInfoCache[idx].id]
157   - elseif _pvpRecordInfoCache[idx].t == 2 then
158   - matchInfo = {robot = _pvpRecordInfoCache[idx].id}
  157 + local temp = _pvpRecordInfoCache[idx]
  158 + if not temp then return end
  159 +
  160 + if not _responseRecord[temp.id] or now >= _responseRecord[temp.id] then
  161 + if temp.t == 1 then
  162 + matchInfo = _pvpRecordBattleInfoCache[temp.id]
  163 + elseif temp.t == 2 then
  164 + matchInfo = {robot = temp.id}
  165 + end
  166 + else
  167 + result = 1
  168 + wait = _responseRecord[temp.id] - now
159 169 end
160 170 else --打正常
161 171 local pvpMC = role:getProperty("pvpMC")
... ... @@ -167,22 +177,24 @@ function _M.startBattleRpc(agent, data)
167 177 end
168 178 end
169 179  
170   - if not matchInfo then return end
  180 + if not result and not matchInfo then return end
  181 +
  182 + if not result then
  183 + -- 次数扣一波
  184 + local pvpFree = role.dailyData:getProperty("pvpFree")
  185 + if pvpFree >= globalCsv.pvp_battle_free_count then
  186 + local cost = {[ItemId.PvpKey] = 1}
  187 + if not role:checkItemEnough(cost) then return end
  188 + role:costItems(cost)
  189 + else
  190 + role.dailyData:updateProperty({field = "pvpFree", delta = 1})
  191 + end
171 192  
172   - -- 次数扣一波
173   - local pvpFree = role.dailyData:getProperty("pvpFree")
174   - if pvpFree >= globalCsv.pvp_battle_free_count then
175   - local cost = {[ItemId.PvpKey] = 1}
176   - if not role:checkItemEnough(cost) then return end
177   - role:costItems(cost)
178   - else
179   - role.dailyData:updateProperty({field = "pvpFree", delta = 1})
  193 + key = tostring(math.random())
  194 + _pvpStartBattleCache = {idx = idx, key = key, revenge = revenge}
180 195 end
181 196  
182   - local key = tostring(math.random())
183   - _pvpStartBattleCache = {idx = idx, key = key, revenge = revenge}
184   -
185   - SendPacket(actionCodes.Pvp_startBattleRpc, MsgPack.pack({matchInfo = matchInfo, key = key}))
  197 + SendPacket(actionCodes.Pvp_startBattleRpc, MsgPack.pack({matchInfo = matchInfo, key = key, result = result, wait = wait}))
186 198 return true
187 199 end
188 200  
... ... @@ -199,11 +211,13 @@ function _M.endBattleRpc(agent, data)
199 211 end
200 212  
201 213 local isWin = msg.starNum and msg.starNum > 0
  214 + local now = skynet.timex()
202 215  
203 216 local revenge = _pvpStartBattleCache.revenge
204 217 local match
205 218 if revenge then
206 219 match = _pvpRecordInfoCache[msg.idx]
  220 + _responseRecord[match.id] = now + ResponseWaitTime -- 1分钟内不能再打
207 221 else
208 222 local pvpMC = role:getProperty("pvpMC")
209 223 match = pvpMC[msg.idx]
... ... @@ -221,7 +235,6 @@ function _M.endBattleRpc(agent, data)
221 235 _pvpStartBattleCache = nil
222 236  
223 237 -- 请求上传录像
224   - local now = skynet.timex()
225 238 local params = {
226 239 ["roleid"] = roleId,
227 240 ["key"] = "zhaolugame20191016",
... ... @@ -326,7 +339,7 @@ function _M.recordListRpc(agent, data)
326 339 local tempList = {}
327 340 for _, temp in ipairs(rlist) do
328 341 local one = MsgPack.unpack(temp)
329   - if now - one.time <= 24 * 3600 then -- 大于一天的弃之
  342 + if now - one.time <= globalCsv.pvp_record_keep_time then -- 大于一天的弃之
330 343 table.insert(tempList, one)
331 344 end
332 345 end
... ...