Commit f9aa553919e58263595c03b52f04e7d35d32f08f

Authored by zhouhaihai
2 parents 91a37574 a27e74bf

Merge branch 'tr/bugfix' into tr/publish/release

* tr/bugfix:
  月重置
  跨月
  拾荒 失败也记录积分
  编队
  世界聊天等级15判断
  活动卡池结束回馈次数通关邮件折算碎片 功能注释
  第一次通关拾荒章节推送限时礼包,活动卡池结束回馈次数通关邮件折算碎片
  可能的报错点

# Conflicts:
#	src/csvdata
@@ -325,6 +325,7 @@ MailId = { @@ -325,6 +325,7 @@ MailId = {
325 PayBackAward = 242, 325 PayBackAward = 242,
326 CBBackAward = 243, 326 CBBackAward = 243,
327 CBBackAward2 = 244, 327 CBBackAward2 = 244,
  328 + ActivityPoolRet = 280,
328 } 329 }
329 330
330 TriggerEventType = { 331 TriggerEventType = {
src/actions/ActivityAction.lua
@@ -587,7 +587,7 @@ function _M.endBattleRpc(agent, data) @@ -587,7 +587,7 @@ function _M.endBattleRpc(agent, data)
587 info = msg.info, 587 info = msg.info,
588 format = role.__actBattleCache.format 588 format = role.__actBattleCache.format
589 }) then 589 }) then
590 - SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({errorCode = 1})) 590 + SendPacket(actionCodes.Activity_endBattleRpc, MsgPack.pack({errorCode = 1}))
591 return true 591 return true
592 end 592 end
593 role.__actBattleCache = nil 593 role.__actBattleCache = nil
src/actions/RoleAction.lua
@@ -1013,6 +1013,10 @@ function _M.chatRpc(agent, data) @@ -1013,6 +1013,10 @@ function _M.chatRpc(agent, data)
1013 result = 1 1013 result = 1
1014 return 1014 return
1015 end 1015 end
  1016 + if role:getProperty("level") < (globalCsv.chat_level or 15) then
  1017 + result = 3
  1018 + return
  1019 + end
1016 1020
1017 role._worldChatLimit = role._worldChatLimit or {start = 0, count = 0, canSayt = 0} --第一次开始说话时间 从第一次说话次数 能说话的时间 1021 role._worldChatLimit = role._worldChatLimit or {start = 0, count = 0, canSayt = 0} --第一次开始说话时间 从第一次说话次数 能说话的时间
1018 1022
@@ -819,25 +819,26 @@ function Adv:over(success, rewardRatio, overType) @@ -819,25 +819,26 @@ function Adv:over(success, rewardRatio, overType)
819 if not self:isEndless() and self.level >= chapterData.limitlevel then 819 if not self:isEndless() and self.level >= chapterData.limitlevel then
820 self.owner:checkTaskEnter("AdvAllPass", {id = self.chapterId}) 820 self.owner:checkTaskEnter("AdvAllPass", {id = self.chapterId})
821 end 821 end
  822 + end
822 823
823 - local roleId = self.owner:getProperty("id")  
824 - local oldMaxScore = tonum(redisproxy:zscore(self.owner:getAdvRankKey(), roleId))  
825 - if score > oldMaxScore then  
826 - local team = self.owner:getProperty("advTeam")  
827 - local curInfo = {  
828 - name = self.owner:getProperty("name"),  
829 - headId = self.owner:getProperty("headId"),  
830 - lv = self.owner:getProperty("level"),  
831 - batteV = self.owner:getTeamBattleValue(team.heros),  
832 - chapter = self.chapterId,  
833 - format = self.owner:getTeamHerosInfo(team).heros,  
834 - }  
835 - redisproxy:pipelining(function (red)  
836 - red:zadd(self.owner:getAdvRankKey(), score, roleId) --更新分数  
837 - red:hset(RANK_ADV_INFO, roleId, MsgPack.pack(curInfo))  
838 - end)  
839 - end 824 + local roleId = self.owner:getProperty("id")
  825 + local oldMaxScore = tonum(redisproxy:zscore(self.owner:getAdvRankKey(), roleId))
  826 + if score > oldMaxScore then
  827 + local team = self.owner:getProperty("advTeam")
  828 + local curInfo = {
  829 + name = self.owner:getProperty("name"),
  830 + headId = self.owner:getProperty("headId"),
  831 + lv = self.owner:getProperty("level"),
  832 + batteV = self.owner:getTeamBattleValue(team.heros),
  833 + chapter = self.chapterId,
  834 + format = self.owner:getTeamHerosInfo(team).heros,
  835 + }
  836 + redisproxy:pipelining(function (red)
  837 + red:zadd(self.owner:getAdvRankKey(), score, roleId) --更新分数
  838 + red:hset(RANK_ADV_INFO, roleId, MsgPack.pack(curInfo))
  839 + end)
840 end 840 end
  841 +
841 -- 通关的时候要把引导步骤设定到成就引导 842 -- 通关的时候要把引导步骤设定到成就引导
842 if not self.owner:checkOverGuide(57) then 843 if not self.owner:checkOverGuide(57) then
843 self.owner:saveGuide(57,1,true) 844 self.owner:saveGuide(57,1,true)
@@ -1120,6 +1121,11 @@ local function clickOut(self, room, block, params, isExit) @@ -1120,6 +1121,11 @@ local function clickOut(self, room, block, params, isExit)
1120 else 1121 else
1121 if self.level > (advPass[self.chapterId] or 0) then 1122 if self.level > (advPass[self.chapterId] or 0) then
1122 self.owner:changeUpdates({{type = "advPass", field = self.chapterId, value = self.level}}) 1123 self.owner:changeUpdates({{type = "advPass", field = self.chapterId, value = self.level}})
  1124 +
  1125 + if (self.level >= csvdb["adv_chapterCsv"][self.chapterId].limitlevel) then --关卡结束
  1126 + self.owner:checkTaskEnter("AdvPassFirst", {id = self.chapterId})
  1127 + end
  1128 +
1123 end 1129 end
1124 end 1130 end
1125 1131
src/models/Activity.lua
@@ -529,6 +529,12 @@ activityFunc[Activity.ActivityType.ActHeroPool] = { @@ -529,6 +529,12 @@ activityFunc[Activity.ActivityType.ActHeroPool] = {
529 local actData = self:getActData(actType) 529 local actData = self:getActData(actType)
530 local cfg = csvdb["activity_ctrlCsv"][actId] 530 local cfg = csvdb["activity_ctrlCsv"][actId]
531 if not cfg then return end 531 if not cfg then return end
  532 + -- 保底次数转换成万能碎片
  533 + --local count = math.ceil(((actData[cfg.condition] or 0) / 100) * 60)
  534 + --if count > 0 then
  535 + -- local gift = {[723] = count}
  536 + -- self.owner:sendMail(MailId.ActivityPoolRet, nil, gift, {})
  537 + --end
532 actData[cfg.condition] = nil 538 actData[cfg.condition] = nil
533 self:updateActData(actType, actData, not notify) 539 self:updateActData(actType, actData, not notify)
534 end, 540 end,
src/models/RoleBattle.lua
@@ -150,7 +150,7 @@ function Role:checkBattleCheat(battleType, params) @@ -150,7 +150,7 @@ function Role:checkBattleCheat(battleType, params)
150 -- self:setProperty("cheatCount", cheatCount) 150 -- self:setProperty("cheatCount", cheatCount)
151 151
152 local result = {clientSelf = {}, serverSelf = {}} 152 local result = {clientSelf = {}, serverSelf = {}}
153 - for k , v in pairs(clientInfo.selfAttr) do 153 + for k , v in pairs(clientInfo.selfAttr or {}) do
154 result.clientSelf[tostring(k)] = v 154 result.clientSelf[tostring(k)] = v
155 end 155 end
156 for k , v in pairs(selfTeamServer) do 156 for k , v in pairs(selfTeamServer) do
src/models/RolePvp.lua
@@ -530,7 +530,7 @@ function Role:changeCrossServerPvpSelfInfo(cType) @@ -530,7 +530,7 @@ function Role:changeCrossServerPvpSelfInfo(cType)
530 return 530 return
531 end 531 end
532 change.battleV = self:getProperty("pvpTBVH") 532 change.battleV = self:getProperty("pvpTBVH")
533 - change.heros = self:getProperty("pvpTSH") 533 + change.team = self:getProperty("pvpTSH")
534 change.battleInfo = self:getProperty("pvpTBH") 534 change.battleInfo = self:getProperty("pvpTBH")
535 end 535 end
536 536
src/models/RoleTask.lua
@@ -50,6 +50,7 @@ local TaskType = { @@ -50,6 +50,7 @@ local TaskType = {
50 AdvHang = 412, -- 代理拾荒次数 50 AdvHang = 412, -- 代理拾荒次数
51 AdvMineKill = 413, -- 宝藏怪击杀 51 AdvMineKill = 413, -- 宝藏怪击杀
52 AdvMineLayer = 414, -- 宝藏洞激活 52 AdvMineLayer = 414, -- 宝藏洞激活
  53 + AdvPassFirst = 415, -- 冒险首次通关 - id
53 54
54 --爬塔相关 55 --爬塔相关
55 TowerPass = 501, -- 爬塔通关 - level 56 TowerPass = 501, -- 爬塔通关 - level
@@ -240,7 +241,7 @@ local StoreListener = { @@ -240,7 +241,7 @@ local StoreListener = {
240 [TaskType.HangPass] = {{TriggerEventType.HangPass, f("id")}}, 241 [TaskType.HangPass] = {{TriggerEventType.HangPass, f("id")}},
241 [TaskType.RoleLevelUp] = {{TriggerEventType.LevelUp, f("level")}}, 242 [TaskType.RoleLevelUp] = {{TriggerEventType.LevelUp, f("level")}},
242 [TaskType.TowerPass] = {{TriggerEventType.TowerPass, f("level")}}, 243 [TaskType.TowerPass] = {{TriggerEventType.TowerPass, f("level")}},
243 - [TaskType.AdvPass] = {{TriggerEventType.AdvPass, f("id")}}, 244 + [TaskType.AdvPassFirst] = {{TriggerEventType.AdvPass, f("id")}},
244 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}}, 245 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}},
245 } 246 }
246 } 247 }
src/models/RoleTimeReset.lua
@@ -23,6 +23,11 @@ ResetFunc[&quot;CrossDay&quot;] = function(self, notify, response, now) @@ -23,6 +23,11 @@ ResetFunc[&quot;CrossDay&quot;] = function(self, notify, response, now)
23 end 23 end
24 self:setProperty("advMine", advMine) 24 self:setProperty("advMine", advMine)
25 25
  26 + local ltime = self:getProperty("ltime")
  27 + if isCrossMonth(ltime, now) then
  28 + self.storeData:resetStoreReored(3) --商店跨月重置 time_reset表关联id
  29 + end
  30 +
26 response.dTask = {} 31 response.dTask = {}
27 response.advSup = self:getProperty("advSup") 32 response.advSup = self:getProperty("advSup")
28 self:log("onLogin") 33 self:log("onLogin")
@@ -43,11 +48,8 @@ ResetFunc[&quot;CrossWeek&quot;] = function(self, notify, response) @@ -43,11 +48,8 @@ ResetFunc[&quot;CrossWeek&quot;] = function(self, notify, response)
43 response.dinerS = {} 48 response.dinerS = {}
44 end 49 end
45 50
  51 +-- 30天 非自然月
46 ResetFunc["CrossMonth"] = function(self, notify, response) 52 ResetFunc["CrossMonth"] = function(self, notify, response)
47 - local ltime = self:getProperty("ltime")  
48 - if isCrossMonth(ltime, skynet.timex()) then  
49 - self.storeData:resetStoreReored(3) --商店跨月重置 time_reset表关联id  
50 - end  
51 end 53 end
52 54
53 55
@@ -91,7 +93,9 @@ function Role:updateTimeReset(now, notify) @@ -91,7 +93,9 @@ function Role:updateTimeReset(now, notify)
91 end 93 end
92 if needResetId[resetId] then 94 if needResetId[resetId] then
93 -- 充值商城购买记录 95 -- 充值商城购买记录
94 - self.storeData:resetStoreReored(resetId) 96 + if resetId ~= TimeReset.CrossMonth then
  97 + self.storeData:resetStoreReored(resetId)
  98 + end
95 end 99 end
96 end 100 end
97 101
src/utils/CommonFunc.lua
@@ -100,7 +100,7 @@ end @@ -100,7 +100,7 @@ end
100 -- 判断是不是同一个月 100 -- 判断是不是同一个月
101 function isCrossMonth(target, now) 101 function isCrossMonth(target, now)
102 now = now or skynet.timex() 102 now = now or skynet.timex()
103 - local tarTm = os.date("*t", target) 103 + local tarTm = os.date("*t", target - RESET_TIME * 3600)
104 local nowTm = os.date("*t", now - RESET_TIME * 3600) 104 local nowTm = os.date("*t", now - RESET_TIME * 3600)
105 if tarTm.year == nowTm.year and tarTm.month == nowTm.month then 105 if tarTm.year == nowTm.year and tarTm.month == nowTm.month then
106 return false 106 return false