Commit 0ce1cab5994fb3533ca5e836b9f62ec69fba4c89

Authored by chenyueqi
1 parent cab7184b

好友赠送能量活动bug修复

Showing 1 changed file with 17 additions and 12 deletions   Show diff stats
src/actions/ActivityAction.lua
... ... @@ -899,7 +899,7 @@ function _M.friendHelpRpc(agent, data)
899 899  
900 900 local actid = 37
901 901 if not role.activity:isOpenById(actid, "FriendEnergy") then return 1 end
902   - if oper < 1 or oper > 3 then return 2 end
  902 + if oper < 1 or oper > 4 then return 2 end
903 903  
904 904 local actCsv = csvdb["activity_ctrlCsv"][actid]
905 905 local getLimit = actCsv.condition
... ... @@ -1025,17 +1025,17 @@ function _M.friendHelpRpc(agent, data)
1025 1025 if not role:checkItemEnough(cost) then return 7 end
1026 1026 role:costItems(cost, {log = {desc = "actFriendHelp", int1 = actid, int2 = level}})
1027 1027  
1028   - if rewardCsv.reward ~= "" then
  1028 + if rewardData.reward ~= "" then
1029 1029 result = 1
1030   - award = rewardCsv.reward:toNumMap()
  1030 + award = rewardData.reward:toNumMap()
1031 1031 end
1032   - if rewardCsv.reward_random ~= "" then
  1032 + if rewardData.reward_random ~= "" then
1033 1033 result = 1
1034 1034 local pool = {}
1035   - for _, temp in pairs(rewardCsv.reward_random:toArray()) do
  1035 + for _, temp in pairs(rewardData.reward_random:toArray()) do
1036 1036 table.insert(pool, temp:toArray(true, "="))
1037 1037 end
1038   - local gift = pool(math.randWeight(pool, 3))
  1038 + local gift = pool[math.randWeight(pool, 3)]
1039 1039 award[gift[1]] = (award[gift[1]] or 0) + gift[2]
1040 1040 end
1041 1041 rewards[level] = 1
... ... @@ -1046,14 +1046,19 @@ function _M.friendHelpRpc(agent, data)
1046 1046 end
1047 1047  
1048 1048 local ids = {}
  1049 + local members = {}
1049 1050 local friendIds = getIds()
1050   - redisproxy:pipelining(function(red)
1051   - for id, _ in pairs(friendIds) do
1052   - if red:sismember(FRIEND_ENERGY:format(roleId), id) then
1053   - ids[id] = 1
1054   - end
  1051 + local temp = redisproxy:smembers(FRIEND_ENERGY:format(roleId))
  1052 + for _, id in pairs(temp) do
  1053 + members[tonumber(id)] = 1
  1054 + end
  1055 +
  1056 + for id, _ in pairs(friendIds) do
  1057 + if members[id] then
  1058 + ids[id] = 1
1055 1059 end
1056   - end)
  1060 + end
  1061 +
1057 1062 actData.new = ids
1058 1063  
1059 1064 local reward, change
... ...