Commit 3fa17db75981c95dba3e62417f38a0095464525c

Authored by zhouhaihai
2 parents a3b871c2 3bbb90ba

Merge branch 'tr/bugfix' into tr/develop

* tr/bugfix:
  冒险次数
  取消特权卡餐厅加速获得额外道具功能
  铭文属性问题
  返还bug
  切换拆解术式bug,造成获得巨大数量的物品
  or
  global
  email
  添加新的延時類型郵件
  发送邮件清标记
  活动卡池回馈数量丢失Bug
  手抽英雄只奖励一个
  奖励内容错误

# Conflicts:
#	src/csvdata
src/actions/AdvAction.lua
... ... @@ -102,6 +102,8 @@ function _M.startAdvRpc( agent, data )
102 102  
103 103 local advPass = role:getProperty("advPass")
104 104  
  105 + if not checkFormat(role) then return 7 end
  106 +
105 107 if AdvCommon.isEndless(chapterId) then -- 无尽模式判断
106 108  
107 109 if chapterId ~= role.advElChapter then return end -- 不是当前进行的章节
... ... @@ -118,37 +120,23 @@ function _M.startAdvRpc( agent, data )
118 120 if not relayData then return 14 end -- 不是中继层
119 121 if advElM < relayData.unlockfloor then return 15 end --未解锁
120 122 end
  123 +
  124 + role.dailyData:updateProperty({field = "advElC", delta = 1})
121 125 else -- 普通模式判断
122   - if not role:checkAdvCount(chapterData.limitlevel) then return 2 end -- 是否有体力
123 126 if layer >= chapterData.limitlevel then return 4 end
124   - -- 关卡开放判断
125   - if not role:advChapterIsOpen(chapterId) then return 5 end
126 127  
  128 + local relayData = role:getAdvData():isHaveRelay(layer, chapterId)
  129 + if not relayData then return 6 end -- 不是中继层
127 130 if layer ~= 1 then
128   - local relayData = role:getAdvData():isHaveRelay(layer, chapterId)
129   - if not relayData then return 6 end -- 不是中继层
130 131 if (advPass[chapterId] or 0) < relayData.floor then return 21 end
131 132 end
132   - end
133   -
134   - if not checkFormat(role) then return 7 end
135   -
136   - --local advTeam = role:getProperty("advTeam")
137   - --table.clear(advTeam)
  133 + if not role:checkAdvCount(relayData.supply) then return 2 end -- 是否有体力
  134 + -- 关卡开放判断
  135 + if not role:advChapterIsOpen(chapterId) then return 5 end
138 136  
139   - --advTeam.heros = {}
140   - --for slot, heroId in pairs(format.heros) do
141   - -- advTeam.heros[slot] = heroId
142   - --end
143   - --advTeam.leader = format.leader
144   - --advTeam.leader2 = format.leader2
145   - --role:updateProperty({field = "advTeam", value = advTeam})
146   - if AdvCommon.isEndless(chapterId) then
147   - role.dailyData:updateProperty({field = "advElC", delta = 1})
148   - else
149   - role:changeAdvCount(chapterData.limitlevel)
  137 + role:changeAdvCount(relayData.supply)
150 138 end
151   -
  139 +
152 140 local support = {} -- 支援效果
153 141 if AdvCommon.isEndless(chapterId) then
154 142 -- 选择的支援效果
... ... @@ -168,6 +156,7 @@ function _M.startAdvRpc( agent, data )
168 156 end
169 157 end
170 158 end
  159 +
171 160 role:getAdvData():initByChapter({
172 161 chapterId = chapterId,
173 162 level = layer,
... ... @@ -175,6 +164,7 @@ function _M.startAdvRpc( agent, data )
175 164 isEnter = true,
176 165 support = support,
177 166 })
  167 +
178 168 role:checkTaskEnter("AdvStart", {id = chapterId})
179 169 role:checkTaskEnter("AdvStartSelf", {id = chapterId})
180 170 role:getAdvData():popBackEvents() -- 清一下事件
... ...
src/actions/DinerAction.lua
... ... @@ -305,7 +305,7 @@ function _M.expediteSellRpc( agent, data )
305 305 local gift = reward:toNumMap()
306 306  
307 307 -- 特权卡获取加速获得额外道具
308   - local coef = role.storeData:getProduceItemSpeedCoef()
  308 + local coef = 1 --role.storeData:getProduceItemSpeedCoef()
309 309 for k, v in pairs(gift) do
310 310 if coef > 1 then
311 311 v = math.floor(v * coef)
... ...
src/actions/EmailAction.lua
... ... @@ -40,10 +40,17 @@ function _M.listRpc(agent, data)
40 40 local count = 1
41 41 for _, data in ipairs(result) do
42 42 local email = tarr2tab(data)
43   - if tonum(email.createtime) > role:getProperty("ctime")
44   - and ( not email.mid or tonum(email.mid) == mid )
  43 + -- 0 需要判斷創角時間小於郵件創建時間 1 只需要在時間段內登陸即可領取
  44 + local delayType = tonum(email.delayType)
  45 + local flag = false
  46 + if delayType == 1 then
  47 + flag = skynet.timex() > tonum(email.createtime)
  48 + else
  49 + flag = tonum(email.createtime) > role:getProperty("ctime")
  50 + end
  51 + if flag and ( not email.mid or tonum(email.mid) == mid )
45 52 and ( not email.endtime or tonum(email.endtime) > now )then
46   - local time = math.max(tonum(email.timestamp, 0) or email.createtime)
  53 + local time = math.max(tonum(email.timestamp, 0) , tonum(email.createtime))
47 54 redisproxy:insertEmail({
48 55 roleId = roleId,
49 56 emailId = 0,
... ...
src/actions/HeroAction.lua
... ... @@ -663,7 +663,8 @@ function _M.getResetRewardRpc(agent, data)
663 663  
664 664 while stage > 0 do
665 665 local curData = csvdb["unit_talent_"..heroCfgId.."Csv"][stage]
666   - for lvl = 1, curTalentLvl - 1 do
  666 + local offset = stage == talent:getv(0,1) and curTalentLvl - 1 or #curData
  667 + for lvl = 1, offset do
667 668 local talentData = curData[lvl]
668 669 for itemId, count in pairs(talentData.money:toNumMap()) do
669 670 reward[itemId] = (reward[itemId] or 0) + count
... ... @@ -926,6 +927,7 @@ function _M.drawHeroRpc(agent, data)
926 927 local itemId = math.randWeight(resultPool, 1)
927 928 if guideHero then
928 929 itemId = guideHero
  930 + guideHero = nil
929 931 end
930 932  
931 933 local itemData = csvdb["itemCsv"][itemId]
... ...
src/actions/RoleAction.lua
... ... @@ -586,9 +586,9 @@ function _M.openTimeBoxRpc(agent, data)
586 586 else
587 587 local oldId, process, time = boxL[slot].id, boxL[slot].process, boxL[slot].time
588 588 local unitTime = globalCsv.box_key_time[oldId] * 60
589   - local doneCnt = math.floor((process + skynet.timex() - time) / unitTime)
  589 + local doneCnt = time == 0 and 0 or math.floor((process + skynet.timex() - time) / unitTime)
590 590 if doneCnt > 0 then
591   - reward = role:award({[oldId] = doneCnt}, {log = {desc = "openTimeBox", int1 = slot}})
  591 + reward = role:award({[oldId] = doneCnt}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}})
592 592 end
593 593 end
594 594 local limit = globalCsv.box_key_max[itemId] or 5
... ... @@ -610,7 +610,7 @@ function _M.openTimeBoxRpc(agent, data)
610 610 local cost_pre = globalCsv.box_timeOpen_diamond:toArray(true, "=")
611 611 local costKey = math.ceil((stopTime - nowTime) / (cost_pre[1] * 60)) * cost_pre[2]
612 612 if not role:checkItemEnough({[ItemId.Diamond] = costKey}) then return 5 end
613   - role:costItems({[ItemId.Diamond] = costKey}, {log = {desc = "openTimeBox", int1 = slot}})
  613 + role:costItems({[ItemId.Diamond] = costKey}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}})
614 614 else
615 615 stopTime = math.min(nowTime,time + globalCsv.box_productLine_time * 3600)
616 616 end
... ... @@ -618,7 +618,7 @@ function _M.openTimeBoxRpc(agent, data)
618 618  
619 619 local doneCnt = math.floor((process + stopTime - time) / unitTime)
620 620 if doneCnt > 0 then
621   - reward = role:award({[itemId] = doneCnt}, {log = {desc = "openTimeBox", int1 = slot}})
  621 + reward = role:award({[itemId] = doneCnt}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}})
622 622 end
623 623 if role:getItemCount(itemId) >= globalCsv.box_key_max[itemId] then
624 624 nowTime = 0
... ... @@ -687,7 +687,7 @@ function _M.openTimeBoxRpc(agent, data)
687 687 reward[id] = (reward[id] or 0) + num
688 688 end
689 689 end
690   - reward, change = role:award(reward, {log = {desc = "openTimeBox", int1 = costId}})
  690 + reward, change = role:award(reward, {log = {desc = "openTimeBox", int1 = costId, int2 = oper}})
691 691 else
692 692 return
693 693 end
... ...
src/models/Activity.lua
... ... @@ -713,7 +713,7 @@ function Activity:recycleActItem(actId)
713 713 local itemCount = role:getItemCount(fromId)
714 714 if itemCount > 0 then
715 715 costs[fromId] = (costs[fromId] or 0) + itemCount
716   - gift[toId] = toNum * itemCount
  716 + gift[toId] = (gift[toId] or 0) + toNum * itemCount
717 717 end
718 718 end
719 719 if next(costs) then
... ...
src/models/RoleChangeStruct.lua
... ... @@ -48,11 +48,29 @@ local bugFixSuduku = createVersionFunc(VersionType.DoOnly, function(role, params
48 48 end
49 49 end)
50 50  
  51 +local bugFixRune = createVersionFunc(VersionType.DoOnly, function(role, params)
  52 + local had = false
  53 + for id, rune in pairs(role.runeBag) do
  54 + if math.floor(rune:getProperty("id") / 1000) == 16 then
  55 + local attrs = rune:getProperty("attrs")
  56 + local atk = attrs:getv(2, 0)
  57 + if atk ~= 0 then
  58 + attrs = attrs:delk(2):setv(1, atk)
  59 + had = true
  60 + rune:setProperty("attrs",attrs)
  61 + end
  62 + end
  63 + end
  64 + if had then
  65 + -- 补偿
  66 + end
  67 +end)
51 68 ---------------------版本方法 end ----------------------
52 69  
53 70 -- version 罗列start
54 71 local versionList = {} -- version 列表
55 72 versionList[1] = {bugFixSuduku, {}}
  73 +versionList[2] = {bugFixRune, {}}
56 74 -- versionList[2] = {clearActivity, {5, 7}}
57 75 -- versionList[3] = {changeStructF, "test1"}
58 76 -- versionList[4] = {changeStructF, "test2"}
... ...
src/models/RolePlugin.lua
... ... @@ -1504,6 +1504,7 @@ function RolePlugin.bind(Role)
1504 1504 return function (now, role)
1505 1505 if name == "email" and role.sendMailFlag then
1506 1506 last_breath = now + sec
  1507 + role.sendMailFlag = false
1507 1508 return true
1508 1509 end
1509 1510 if now >= last_breath then
... ... @@ -1539,8 +1540,15 @@ function RolePlugin.bind(Role)
1539 1540 end)
1540 1541 for _, data in ipairs(redret) do
1541 1542 local email = tarr2tab(data)
1542   - if tonum(email.createtime) > self:getProperty("ctime")
1543   - and ( not email.mid or tonum(email.mid) == mid )
  1543 + -- 0 需要判斷創角時間小於郵件創建時間 1 只需要在時間段內登陸即可領取
  1544 + local delayType = tonum(email.delayType)
  1545 + local flag = false
  1546 + if delayType == 1 then
  1547 + flag = skynet.timex() > tonum(email.createtime)
  1548 + else
  1549 + flag = tonum(email.createtime) > self:getProperty("ctime")
  1550 + end
  1551 + if flag and ( not email.mid or tonum(email.mid) == mid )
1544 1552 and ( not email.endtime or tonum(email.endtime) > now )then
1545 1553 return true
1546 1554 end
... ...
src/services/globald.lua
... ... @@ -69,7 +69,8 @@ local function mailQuene()
69 69 "attachments", email.attachments,
70 70 "endtime", email.endTime,
71 71 "mid", email.mid,
72   - "timestamp", now
  72 + "timestamp", now,
  73 + "delayType", email.delayType
73 74 )
74 75 else
75 76 redisproxy:hmset(string_format("globalEmail:%s", gid),
... ... @@ -80,7 +81,8 @@ local function mailQuene()
80 81 "content", email.content,
81 82 "attachments", email.attachments,
82 83 "endtime", email.endTime,
83   - "timestamp", now
  84 + "timestamp", now,
  85 + "delayType", email.delayType
84 86 )
85 87 end
86 88 end
... ...