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