Commit 336fa4a6da5e5e8e8740e8e0500f96c865256a88
1 parent
e6e49b45
新的活动签到,新春三重奏之返还0消耗
Showing
5 changed files
with
58 additions
and
1 deletions
Show diff stats
src/ProtocolCode.lua
src/actions/ActivityAction.lua
| ... | ... | @@ -1104,4 +1104,34 @@ function _M.friendHelpRpc(agent, data) |
| 1104 | 1104 | return true |
| 1105 | 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 | 1137 | return _M |
| 1108 | 1138 | \ No newline at end of file | ... | ... |
src/actions/HeroAction.lua
src/models/Activity.lua
| ... | ... | @@ -33,6 +33,8 @@ Activity.ActivityType = { |
| 33 | 33 | |
| 34 | 34 | CommonSignIn = 28, --通用签到 |
| 35 | 35 | FriendEnergy = 30, -- 好友互赠能量活动 |
| 36 | + NewSign = 36, -- 活动签到,单独的签到界面 | |
| 37 | + HeroBackFree = 37, -- 无损耗归还 | |
| 36 | 38 | } |
| 37 | 39 | |
| 38 | 40 | local function checkActivityType(activityType) |
| ... | ... | @@ -79,6 +81,7 @@ Activity.schema = { |
| 79 | 81 | |
| 80 | 82 | act28 = {"table", {}}, -- 每日活跃签到 {0=day, 1=1,2=1,3=1} |
| 81 | 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 | 87 | function Activity:data() |
| ... | ... | @@ -102,6 +105,7 @@ function Activity:data() |
| 102 | 105 | |
| 103 | 106 | act28 = self:getProperty("act28"), |
| 104 | 107 | act30 = self:getProperty("act30"), |
| 108 | + act36 = self:getProperty("act36"), | |
| 105 | 109 | } |
| 106 | 110 | end |
| 107 | 111 | |
| ... | ... | @@ -890,4 +894,25 @@ activityFunc[Activity.ActivityType.CommonSignIn] = { |
| 890 | 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 | 918 | return Activity | ... | ... |
src/models/RoleLog.lua