Commit b2afd512575a1616399ce6fb6bd7c8c1acb0f707
Merge branch 'cn/develop' of 120.26.43.151:wasteland/server into cn/develop
Showing
5 changed files
with
78 additions
and
1 deletions
Show diff stats
src/actions/AdvAction.lua
| @@ -897,6 +897,11 @@ function _M.wheelSurfRpc(agent, data) | @@ -897,6 +897,11 @@ function _M.wheelSurfRpc(agent, data) | ||
| 897 | local costs = {[ItemId.OldCoin] = cost[ctype]} | 897 | local costs = {[ItemId.OldCoin] = cost[ctype]} |
| 898 | if not next(costs) then return 6 end | 898 | if not next(costs) then return 6 end |
| 899 | 899 | ||
| 900 | + local tmpcount = 1 | ||
| 901 | + if ctype == 2 then | ||
| 902 | + tmpcount = 10 | ||
| 903 | + end | ||
| 904 | + if role:checkRuneFully(tmpcount) then return 6 end | ||
| 900 | 905 | ||
| 901 | if not role:checkItemEnough(costs) then return 5 end | 906 | if not role:checkItemEnough(costs) then return 5 end |
| 902 | role:costItems(costs, {log = {desc = "advWheelSurf", int1 = ptype}}) | 907 | role:costItems(costs, {log = {desc = "advWheelSurf", int1 = ptype}}) |
src/actions/EmailAction.lua
| @@ -150,6 +150,8 @@ function _M.drawAttachRpc(agent, data) | @@ -150,6 +150,8 @@ function _M.drawAttachRpc(agent, data) | ||
| 150 | if attachments == "" then return end | 150 | if attachments == "" then return end |
| 151 | 151 | ||
| 152 | local reward, change = role:award(attachments, {log = {desc = "draw_attach", int1 = id}}) | 152 | local reward, change = role:award(attachments, {log = {desc = "draw_attach", int1 = id}}) |
| 153 | + if role:checkRuneFullyByReward(reward) then return 1 end | ||
| 154 | + | ||
| 153 | email:setProperty("status", 2, true) | 155 | email:setProperty("status", 2, true) |
| 154 | email:log(role, 2) | 156 | email:log(role, 2) |
| 155 | SendPacket(actionCodes.Email_drawAttachRpc, MsgPack.pack({reward = reward, change = change})) | 157 | SendPacket(actionCodes.Email_drawAttachRpc, MsgPack.pack({reward = reward, change = change})) |
src/actions/RoleAction.lua
| @@ -677,7 +677,7 @@ function _M.openTimeBoxRpc(agent, data) | @@ -677,7 +677,7 @@ function _M.openTimeBoxRpc(agent, data) | ||
| 677 | local costId = msg.costId | 677 | local costId = msg.costId |
| 678 | local costs = (msg.costs or ""):toNumMap() | 678 | local costs = (msg.costs or ""):toNumMap() |
| 679 | if not costId or not csvdb["itemCsv"][costId] or not next(costs) then return 6 end | 679 | if not costId or not csvdb["itemCsv"][costId] or not next(costs) then return 6 end |
| 680 | - | 680 | + |
| 681 | local costIdData = csvdb["itemCsv"][costId] | 681 | local costIdData = csvdb["itemCsv"][costId] |
| 682 | local count = 0 | 682 | local count = 0 |
| 683 | for itemId, num in pairs(costs) do | 683 | for itemId, num in pairs(costs) do |
| @@ -686,6 +686,8 @@ function _M.openTimeBoxRpc(agent, data) | @@ -686,6 +686,8 @@ function _M.openTimeBoxRpc(agent, data) | ||
| 686 | count = count + num | 686 | count = count + num |
| 687 | end | 687 | end |
| 688 | 688 | ||
| 689 | + if role:checkRuneFully(count) then return 10 end --开箱子,如果铭文仓库已经满了则不让开箱 | ||
| 690 | + | ||
| 689 | if role:getItemCount(costId) < count then return 8 end | 691 | if role:getItemCount(costId) < count then return 8 end |
| 690 | if not role:checkItemEnough(costs) then return 9 end | 692 | if not role:checkItemEnough(costs) then return 9 end |
| 691 | 693 |
src/adv/Adv.lua
| @@ -881,6 +881,8 @@ function Adv:over(success, rewardRatio, overType) | @@ -881,6 +881,8 @@ function Adv:over(success, rewardRatio, overType) | ||
| 881 | reward[itemId] = math.ceil(count * rewardRatio / 100) | 881 | reward[itemId] = math.ceil(count * rewardRatio / 100) |
| 882 | end | 882 | end |
| 883 | end | 883 | end |
| 884 | + | ||
| 885 | + self.owner:checkRuneCount(reward) | ||
| 884 | reward = self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}}) | 886 | reward = self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}}) |
| 885 | 887 | ||
| 886 | local backAdvCount | 888 | local backAdvCount |
src/models/RolePlugin.lua
| @@ -2829,6 +2829,72 @@ function RolePlugin.bind(Role) | @@ -2829,6 +2829,72 @@ function RolePlugin.bind(Role) | ||
| 2829 | self:mylog("hero_action", {desc = desc, int1 = heroType}) | 2829 | self:mylog("hero_action", {desc = desc, int1 = heroType}) |
| 2830 | end | 2830 | end |
| 2831 | 2831 | ||
| 2832 | + function Role:getRuneBatCount() | ||
| 2833 | + local count = 0 | ||
| 2834 | + for _, rune in pairs(self.runeBag) do | ||
| 2835 | + if next(rune) then | ||
| 2836 | + count = count + 1 | ||
| 2837 | + end | ||
| 2838 | + end | ||
| 2839 | + return count or 0 | ||
| 2840 | + end | ||
| 2841 | + | ||
| 2842 | + -- 铭文仓库是否满仓 | ||
| 2843 | + function Role:checkRuneFully(count) | ||
| 2844 | + count = count or 0 | ||
| 2845 | + local page = globalCsv.store_type[ItemType.Rune] | ||
| 2846 | + local limit = self:getProperty("bagLimit")[page] | ||
| 2847 | + return self:getRuneBatCount() + count >= limit | ||
| 2848 | + end | ||
| 2849 | + | ||
| 2850 | + function Role:checkRuneFullyByReward(reward) | ||
| 2851 | + local count = self:getRuneBatCount() | ||
| 2852 | + local page = globalCsv.store_type[ItemType.Rune] | ||
| 2853 | + local limit = self:getProperty("bagLimit")[page] | ||
| 2854 | + if count >= limit then | ||
| 2855 | + return true | ||
| 2856 | + end | ||
| 2857 | + for itemId, n in pairs(reward) do | ||
| 2858 | + local itemData = csvdb["itemCsv"][itemId] | ||
| 2859 | + if itemData and itemData.type == ItemType.Rune then | ||
| 2860 | + count = count + n | ||
| 2861 | + if count > limit then return true end | ||
| 2862 | + end | ||
| 2863 | + end | ||
| 2864 | + return false | ||
| 2865 | + end | ||
| 2866 | + | ||
| 2867 | + -- 把溢出的铭文奖励通过邮件发送 | ||
| 2868 | + function Role:checkRuneCount(reward) | ||
| 2869 | + local firstMore = false | ||
| 2870 | + local count = self:getRuneBatCount() | ||
| 2871 | + local page = globalCsv.store_type[ItemType.Rune] | ||
| 2872 | + local limit = self:getProperty("bagLimit")[page] | ||
| 2873 | + if count >= limit then | ||
| 2874 | + firstMore = true | ||
| 2875 | + end | ||
| 2876 | + | ||
| 2877 | + local tmpreward = {} | ||
| 2878 | + for itemId, n in pairs(reward) do | ||
| 2879 | + local itemData = csvdb["itemCsv"][itemId] | ||
| 2880 | + if itemData and itemData.type == ItemType.Rune then | ||
| 2881 | + count = count + n | ||
| 2882 | + if count > limit then | ||
| 2883 | + if not firstMore then | ||
| 2884 | + firstMore = true | ||
| 2885 | + reward[itemId] = n - (count - limit) | ||
| 2886 | + tmpreward[itemId] = count - limit | ||
| 2887 | + else | ||
| 2888 | + reward[itemId] = nil | ||
| 2889 | + tmpreward[itemId] = n | ||
| 2890 | + end | ||
| 2891 | + end | ||
| 2892 | + end | ||
| 2893 | + end | ||
| 2894 | + if next(tmpreward) then | ||
| 2895 | + self:sendMail(20, nil, tmpreward) | ||
| 2896 | + end | ||
| 2897 | + end | ||
| 2832 | end | 2898 | end |
| 2833 | 2899 | ||
| 2834 | return RolePlugin | 2900 | return RolePlugin |
| 2835 | \ No newline at end of file | 2901 | \ No newline at end of file |