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,6 +428,8 @@ function _M.blockRpc(agent, data)
428 redisproxy:pipelining(function (red) 428 redisproxy:pipelining(function (red)
429 red:hdel(FRIEND_KEY:format(roleId), objectId) 429 red:hdel(FRIEND_KEY:format(roleId), objectId)
430 red:hdel(FRIEND_KEY:format(objectId), roleId) 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 red:sadd(FRIEND_BLACK_KEY:format(roleId), objectId) 433 red:sadd(FRIEND_BLACK_KEY:format(roleId), objectId)
432 end) 434 end)
433 rpcRole(objectId, "SendPacket", actionCodes.Friend_updateProperty, MsgPack.pack({deleteFriend = 1, roleId = roleId})) 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,6 +13,9 @@ local _pvpStartBattleCache = nil --
13 13
14 local _pvpRecordInfoCache = {} -- 记录缓存 14 local _pvpRecordInfoCache = {} -- 记录缓存
15 local _pvpRecordBattleInfoCache = {} -- 记录战斗数据缓存 15 local _pvpRecordBattleInfoCache = {} -- 记录战斗数据缓存
  16 +local _responseRecord = {} -- 复仇对单人1分钟间隔
  17 +
  18 +local ResponseWaitTime = 60
16 19
17 function _M.formatCommonRpc(agent , data) 20 function _M.formatCommonRpc(agent , data)
18 local role = agent.role 21 local role = agent.role
@@ -148,14 +151,21 @@ function _M.startBattleRpc(agent, data) @@ -148,14 +151,21 @@ function _M.startBattleRpc(agent, data)
148 local idx = msg.idx 151 local idx = msg.idx
149 local revenge = msg.revenge 152 local revenge = msg.revenge
150 153
151 - local matchInfo  
152 - 154 + local matchInfo, result, key, wait
  155 + local now = skynet.timex()
153 if revenge then --复仇 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 end 169 end
160 else --打正常 170 else --打正常
161 local pvpMC = role:getProperty("pvpMC") 171 local pvpMC = role:getProperty("pvpMC")
@@ -167,22 +177,24 @@ function _M.startBattleRpc(agent, data) @@ -167,22 +177,24 @@ function _M.startBattleRpc(agent, data)
167 end 177 end
168 end 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 end 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 return true 198 return true
187 end 199 end
188 200
@@ -199,11 +211,13 @@ function _M.endBattleRpc(agent, data) @@ -199,11 +211,13 @@ function _M.endBattleRpc(agent, data)
199 end 211 end
200 212
201 local isWin = msg.starNum and msg.starNum > 0 213 local isWin = msg.starNum and msg.starNum > 0
  214 + local now = skynet.timex()
202 215
203 local revenge = _pvpStartBattleCache.revenge 216 local revenge = _pvpStartBattleCache.revenge
204 local match 217 local match
205 if revenge then 218 if revenge then
206 match = _pvpRecordInfoCache[msg.idx] 219 match = _pvpRecordInfoCache[msg.idx]
  220 + _responseRecord[match.id] = now + ResponseWaitTime -- 1分钟内不能再打
207 else 221 else
208 local pvpMC = role:getProperty("pvpMC") 222 local pvpMC = role:getProperty("pvpMC")
209 match = pvpMC[msg.idx] 223 match = pvpMC[msg.idx]
@@ -221,7 +235,6 @@ function _M.endBattleRpc(agent, data) @@ -221,7 +235,6 @@ function _M.endBattleRpc(agent, data)
221 _pvpStartBattleCache = nil 235 _pvpStartBattleCache = nil
222 236
223 -- 请求上传录像 237 -- 请求上传录像
224 - local now = skynet.timex()  
225 local params = { 238 local params = {
226 ["roleid"] = roleId, 239 ["roleid"] = roleId,
227 ["key"] = "zhaolugame20191016", 240 ["key"] = "zhaolugame20191016",
@@ -326,7 +339,7 @@ function _M.recordListRpc(agent, data) @@ -326,7 +339,7 @@ function _M.recordListRpc(agent, data)
326 local tempList = {} 339 local tempList = {}
327 for _, temp in ipairs(rlist) do 340 for _, temp in ipairs(rlist) do
328 local one = MsgPack.unpack(temp) 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 table.insert(tempList, one) 343 table.insert(tempList, one)
331 end 344 end
332 end 345 end