Commit 336fa4a6da5e5e8e8740e8e0500f96c865256a88
1 parent
e6e49b45
新的活动签到,新春三重奏之返还0消耗
Showing
5 changed files
with
58 additions
and
1 deletions
Show diff stats
src/ProtocolCode.lua
| @@ -231,6 +231,7 @@ actionCodes = { | @@ -231,6 +231,7 @@ actionCodes = { | ||
| 231 | Activity_crisisMilestoneRpc = 665, | 231 | Activity_crisisMilestoneRpc = 665, |
| 232 | Activity_commonSignRpc = 666, | 232 | Activity_commonSignRpc = 666, |
| 233 | Activity_friendHelpRpc = 667, | 233 | Activity_friendHelpRpc = 667, |
| 234 | + Activity_newSignRpc = 668, | ||
| 234 | 235 | ||
| 235 | Radio_startQuestRpc = 700, | 236 | Radio_startQuestRpc = 700, |
| 236 | Radio_finishQuestRpc = 701, | 237 | Radio_finishQuestRpc = 701, |
src/actions/ActivityAction.lua
| @@ -1104,4 +1104,34 @@ function _M.friendHelpRpc(agent, data) | @@ -1104,4 +1104,34 @@ function _M.friendHelpRpc(agent, data) | ||
| 1104 | return true | 1104 | return true |
| 1105 | end | 1105 | end |
| 1106 | 1106 | ||
| 1107 | +function _M.newSignRpc(agent, data) | ||
| 1108 | + local role = agent.role | ||
| 1109 | + local msg = MsgPack.unpack(data) | ||
| 1110 | + local actid = msg.actid | ||
| 1111 | + local index = msg.index | ||
| 1112 | + | ||
| 1113 | + if not role.activity:isOpenById(actid, "NewSign") then return 1 end | ||
| 1114 | + | ||
| 1115 | + local actData = role.activity:getActData("NewSign") | ||
| 1116 | + if (actData[0] or 0) < index then | ||
| 1117 | + return 2 | ||
| 1118 | + end | ||
| 1119 | + if (actData[index] or 0) == 1 then | ||
| 1120 | + return 3 | ||
| 1121 | + end | ||
| 1122 | + | ||
| 1123 | + local actCfg = csvdb["activity_signInCsv"][actid] | ||
| 1124 | + if not actCfg then return 4 end | ||
| 1125 | + actCfg = actCfg[index] | ||
| 1126 | + if not actCfg then return 5 end | ||
| 1127 | + | ||
| 1128 | + actData[index] = 1 | ||
| 1129 | + role.activity:updateActData("NewSign", actData) | ||
| 1130 | + | ||
| 1131 | + local award = actCfg.reward:toNumMap() | ||
| 1132 | + local reward, change = role:award(award, {log = {desc = "newSign", int1 = actid, int2 = index}}) | ||
| 1133 | + SendPacket(actionCodes.Activity_newSignRpc, MsgPack.pack(role:packReward(reward, change))) | ||
| 1134 | + return true | ||
| 1135 | +end | ||
| 1136 | + | ||
| 1107 | return _M | 1137 | return _M |
| 1108 | \ No newline at end of file | 1138 | \ No newline at end of file |
src/actions/HeroAction.lua
| @@ -617,7 +617,7 @@ function _M.getResetRewardRpc(agent, data) | @@ -617,7 +617,7 @@ function _M.getResetRewardRpc(agent, data) | ||
| 617 | if level <= 1 and talent == "" then return end | 617 | if level <= 1 and talent == "" then return end |
| 618 | 618 | ||
| 619 | local pay = true | 619 | local pay = true |
| 620 | - if level <= 60 then | 620 | + if level <= 60 or role.activity:isOpen("HeroBackFree") then |
| 621 | pay = false | 621 | pay = false |
| 622 | end | 622 | end |
| 623 | 623 |
src/models/Activity.lua
| @@ -33,6 +33,8 @@ Activity.ActivityType = { | @@ -33,6 +33,8 @@ Activity.ActivityType = { | ||
| 33 | 33 | ||
| 34 | CommonSignIn = 28, --通用签到 | 34 | CommonSignIn = 28, --通用签到 |
| 35 | FriendEnergy = 30, -- 好友互赠能量活动 | 35 | FriendEnergy = 30, -- 好友互赠能量活动 |
| 36 | + NewSign = 36, -- 活动签到,单独的签到界面 | ||
| 37 | + HeroBackFree = 37, -- 无损耗归还 | ||
| 36 | } | 38 | } |
| 37 | 39 | ||
| 38 | local function checkActivityType(activityType) | 40 | local function checkActivityType(activityType) |
| @@ -79,6 +81,7 @@ Activity.schema = { | @@ -79,6 +81,7 @@ Activity.schema = { | ||
| 79 | 81 | ||
| 80 | act28 = {"table", {}}, -- 每日活跃签到 {0=day, 1=1,2=1,3=1} | 82 | act28 = {"table", {}}, -- 每日活跃签到 {0=day, 1=1,2=1,3=1} |
| 81 | act30 = {"table", {}}, -- {magic = 0, limit = 0, reward = {id = 1, id = 1}, giveAE = {}, getAE = {}} 奖励字段1表示领取过奖励 | 83 | act30 = {"table", {}}, -- {magic = 0, limit = 0, reward = {id = 1, id = 1}, giveAE = {}, getAE = {}} 奖励字段1表示领取过奖励 |
| 84 | + act36 = {"table", {}}, -- 每日活跃签到 {0=day, 1=1,2=1,3=1} | ||
| 82 | } | 85 | } |
| 83 | 86 | ||
| 84 | function Activity:data() | 87 | function Activity:data() |
| @@ -102,6 +105,7 @@ function Activity:data() | @@ -102,6 +105,7 @@ function Activity:data() | ||
| 102 | 105 | ||
| 103 | act28 = self:getProperty("act28"), | 106 | act28 = self:getProperty("act28"), |
| 104 | act30 = self:getProperty("act30"), | 107 | act30 = self:getProperty("act30"), |
| 108 | + act36 = self:getProperty("act36"), | ||
| 105 | } | 109 | } |
| 106 | end | 110 | end |
| 107 | 111 | ||
| @@ -890,4 +894,25 @@ activityFunc[Activity.ActivityType.CommonSignIn] = { | @@ -890,4 +894,25 @@ activityFunc[Activity.ActivityType.CommonSignIn] = { | ||
| 890 | end, | 894 | end, |
| 891 | } | 895 | } |
| 892 | 896 | ||
| 897 | +activityFunc[Activity.ActivityType.NewSign] = { | ||
| 898 | + -- ["check"] = function(self, actType, notify) -- 检查 | ||
| 899 | + -- end, | ||
| 900 | + ["init"] = function(self, actType, isCrossDay, notify) | ||
| 901 | + if not isCrossDay then | ||
| 902 | + activityFunc[Activity.ActivityType.NewSign]["crossDay"](self, actType, notify) | ||
| 903 | + end | ||
| 904 | + end, | ||
| 905 | + -- ["close"] = function(self, actType, notify) | ||
| 906 | + -- end, | ||
| 907 | + ["crossDay"] = function(self, actType, notify) | ||
| 908 | + local curData = self:getActData(actType) | ||
| 909 | + curData[0] = (curData[0] or 0) + 1 | ||
| 910 | + local actData = csvdb["activity_signInCsv"][48] or {} | ||
| 911 | + if curData[0] > #actData then return end -- 满了就忽略了 | ||
| 912 | + | ||
| 913 | + -- 没满更新一下 | ||
| 914 | + self:updateActData(actType, curData, not notify) | ||
| 915 | + end, | ||
| 916 | +} | ||
| 917 | + | ||
| 893 | return Activity | 918 | return Activity |
src/models/RoleLog.lua
| @@ -53,6 +53,7 @@ local ItemReason = { | @@ -53,6 +53,7 @@ local ItemReason = { | ||
| 53 | worldBossReward = 137, -- 世界boss翻牌奖励 | 53 | worldBossReward = 137, -- 世界boss翻牌奖励 |
| 54 | commonSign = 138, -- 每日活跃签到 | 54 | commonSign = 138, -- 每日活跃签到 |
| 55 | actFriendHelp = 139,-- 好友能量互助活动 | 55 | actFriendHelp = 139,-- 好友能量互助活动 |
| 56 | + newSign = 140,-- 新的活动签到 | ||
| 56 | 57 | ||
| 57 | 58 | ||
| 58 | advHang = 301, -- 拾荒挂机 | 59 | advHang = 301, -- 拾荒挂机 |