Commit 336fa4a6da5e5e8e8740e8e0500f96c865256a88

Authored by chenyueqi
1 parent e6e49b45

新的活动签到,新春三重奏之返还0消耗

src/ProtocolCode.lua
... ... @@ -231,6 +231,7 @@ actionCodes = {
231 231 Activity_crisisMilestoneRpc = 665,
232 232 Activity_commonSignRpc = 666,
233 233 Activity_friendHelpRpc = 667,
  234 + Activity_newSignRpc = 668,
234 235  
235 236 Radio_startQuestRpc = 700,
236 237 Radio_finishQuestRpc = 701,
... ...
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
... ... @@ -617,7 +617,7 @@ function _M.getResetRewardRpc(agent, data)
617 617 if level <= 1 and talent == "" then return end
618 618  
619 619 local pay = true
620   - if level <= 60 then
  620 + if level <= 60 or role.activity:isOpen("HeroBackFree") then
621 621 pay = false
622 622 end
623 623  
... ...
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
... ... @@ -53,6 +53,7 @@ local ItemReason = {
53 53 worldBossReward = 137, -- 世界boss翻牌奖励
54 54 commonSign = 138, -- 每日活跃签到
55 55 actFriendHelp = 139,-- 好友能量互助活动
  56 + newSign = 140,-- 新的活动签到
56 57  
57 58  
58 59 advHang = 301, -- 拾荒挂机
... ...