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, -- 拾荒挂机 |