c5825110
saicom
新增用户商城相关数据
|
1
2
|
-- 商店数据
|
fa992c94
liuzujun
添加daily,diner,act...
|
3
|
local Store = class("Store", require("shared.ModelBaseMysql"))
|
c5825110
saicom
新增用户商城相关数据
|
4
5
|
function Store:ctor(properties)
|
54f63c13
liuzujun
修复老月卡用户的月卡id字段
|
6
7
8
9
10
|
Store.super.ctor(self, properties)
end
function Store:onLoad()
local monEx = self:getProperty("monthCardEx")
|
54f63c13
liuzujun
修复老月卡用户的月卡id字段
|
11
|
local monId = self:getProperty("monthCardId")
|
54f63c13
liuzujun
修复老月卡用户的月卡id字段
|
12
|
local flag = false
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
13
|
if monEx > 0 and monId == 0 then
|
54f63c13
liuzujun
修复老月卡用户的月卡id字段
|
14
15
16
17
|
self:updateProperty({field = "monthCardId", value = 101})
self:updateProperty({field = "getMailT1", value = 0})
flag = true
end
|
c5825110
saicom
新增用户商城相关数据
|
18
19
|
end
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
20
21
22
23
|
ActGoodsType = {
paySignIn = 1, -- 付费签到
}
|
c5825110
saicom
新增用户商城相关数据
|
24
|
Store.schema = {
|
fa992c94
liuzujun
添加daily,diner,act...
|
25
|
id = {"number", 0, "pri"}, -- 角色id
|
3e20f499
saicom
完善商城相关协议
|
26
27
28
|
buyR = {"table", {}}, -- 购买商品记录 {id=count}
payR = {"table", {}}, -- 充值记录 {id=count}
growFund = {"number", 0}, -- 成长基金
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
29
30
|
growFundR = {"string", ""}, -- 成长基金领取记录
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
31
|
monthCardEx = {"number", 0}, -- 期数
|
2e283f60
liuzujun
月卡升级
|
32
|
monthCardId = {"number", 0}, -- 月卡id
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
33
34
35
|
firstMonthCard = {"number", 1}, -- 首次订阅月卡
monthCardReceive = {"number", 0}, -- 月卡奖励领取记录 当天 0-未领取, 1-已经领取
|
99f84aa1
zhangqijia
fix: 特刊解锁机制修改,删除o...
|
36
|
smonthCards = {"table", {}}, --特刊信息 {[id]={["buyCount"]=0, ["periods"]=0}} buyCount: 购买次数,periods: 剩余期数,
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
37
|
smonthCardReceive = {"number", 0}, -- 特刊奖励领取记录 当天 0-未领取, 1-已经领取
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
38
|
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
39
|
battleCard = {"number", 0}, -- 赛季卡
|
3e20f499
saicom
完善商城相关协议
|
40
41
|
battleFR = {"string", ""}, -- 免费赛季卡领取记录
battleLR = {"string", ""}, -- 付费赛季卡领取记录
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
42
|
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
43
|
limitTPack = {"table", {}}, -- 限时礼包 {id={expire_ts, trigger_type}}
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
44
45
46
|
privCardEx = {"number", 0}, -- 特权卡过期时间戳
getMailT1 = {"number",0}, -- 上次发送月卡福利邮件的时间
getMailT2 = {"number",0}, -- 上次发送超级月卡福利邮件的时间
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
47
|
--packTrigger = {"table", {}}, -- 礼包触发记录 {关卡难度1={id, 通关关卡数,升级数,爬塔层数}, ...}
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
48
49
50
51
52
|
-- 活动商品购买记录
actGoodsFlag = {"table", {}}, -- ActGoodsType 1购买,0未购买
bpInfo = {"table", {}}, -- battle pass 探索指令 1={flag=0 为1表示买了,br=""付费领取记录, fr=""免费领取记录},2,3,4
|
4f7cffe5
liuzujun
多队挂机任务取消功能,累充奖励
|
53
54
|
totalRR = {"string", ""}, -- 累计充值奖励领取记录
|
cddfa602
zhangqijia
feat: 月卡解锁的日/周商店随...
|
55
56
57
|
dailyShop = {"table", {}},
weekShop = {"table", {}},
|
c5825110
saicom
新增用户商城相关数据
|
58
59
60
|
}
function Store:updateProperty(params)
|
3e20f499
saicom
完善商城相关协议
|
61
62
63
|
params = params or {}
if not self.schema[params.field] then
return
|
c5825110
saicom
新增用户商城相关数据
|
64
|
end
|
3e20f499
saicom
完善商城相关协议
|
65
|
local oldValue = self:getProperty(params.field)
|
c5825110
saicom
新增用户商城相关数据
|
66
67
|
if params.value then
self:setProperty(params.field, params.value)
|
3e20f499
saicom
完善商城相关协议
|
68
69
70
71
72
73
|
elseif params.delta then
self:incrProperty(params.field, params.delta)
else
return
end
local newValue = self:getProperty(params.field)
|
2e283f60
liuzujun
月卡升级
|
74
|
if not params.notNotify then
|
3e20f499
saicom
完善商城相关协议
|
75
|
self:notifyUpdateProperty(params.field, newValue, oldValue)
|
c5825110
saicom
新增用户商城相关数据
|
76
|
end
|
c5825110
saicom
新增用户商城相关数据
|
77
78
|
end
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
79
|
function Store:onCrossDay()
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
80
|
--self:sendMonthCardEmail()
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
81
|
self:deleteExpireLimitGoods()
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
82
|
--self:checkPaySignReward()
|
cddfa602
zhangqijia
feat: 月卡解锁的日/周商店随...
|
83
84
85
86
87
88
89
90
91
92
93
|
--刷新商店
self:flushDailyShop()
--重置月卡、特刊奖励领取记录
self:updateProperty({field = "monthCardReceive", value = 0})
self:updateProperty({field = "smonthCardReceive", value = 0})
end
function Store:refreshWeekData(notify)
self:flushWeekShop()
|
c5825110
saicom
新增用户商城相关数据
|
94
95
|
end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
96
97
98
99
100
101
102
103
104
105
106
107
|
local SuperMonthCard = {}
SuperMonthCard["buy"] = function(self, id)
local smonthCards = self:getProperty("smonthCards") or {}
local BuyMonthCard = {}
BuyMonthCard["renewal"]= function()
--续刊
if self:isMonthCardExpire() then return false end
local smonthCard = smonthCards[id] or {}
if next(smonthCard) then
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
108
109
110
111
112
113
114
115
116
117
118
119
|
smonthCard["buyCount"] = (smonthCard["buyCount"] or 0) + 1
local card = csvdb["shop_cardCsv"][id] or {}
local periods = SuperMonthCard["periods"](self, id) + (card["cardPlusPeriods"] or 30)
smonthCard["periods"] = periods
self:updateProperty({filed = "smonthCards", value = smonthCards})
return true
end
end
BuyMonthCard["order"] = function()
|
99f84aa1
zhangqijia
fix: 特刊解锁机制修改,删除o...
|
120
|
--增刊条件
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
121
|
local card = csvdb["shop_cardCsv"][id] or {}
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
122
|
--判断是否购买过增刊条件里的特刊
|
99f84aa1
zhangqijia
fix: 特刊解锁机制修改,删除o...
|
123
124
|
local cardId = card["cardPlusCondition"] or 0
if self:isMonthCardExpire() or smonthCards[cardId] == nil then return false end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
125
|
|
99f84aa1
zhangqijia
fix: 特刊解锁机制修改,删除o...
|
126
127
|
--如果上期特刊奖励没有领取玩,则不能购买这期特刊。
if SuperMonthCard["isExpired"](self, cardId) == false and cardId ~= 101 then return false end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
128
|
|
99f84aa1
zhangqijia
fix: 特刊解锁机制修改,删除o...
|
129
|
smonthCards[id] = {["periods"] = (card["cardPlusPeriods"] or 30), ["buyCount"] = 1}
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
self:updateProperty({filed = "smonthCards", value = smonthCards})
return true
end
if SuperMonthCard["isExpired"](self, id) then
local smonthCard = smonthCards[id] or {}
if next(smonthCard) then
return BuyMonthCard["renewal"]()
else
return BuyMonthCard["order"]()
end
else
return BuyMonthCard["renewal"]()
end
end
SuperMonthCard["periods"] = function(self, id)
local smonthCards = self:getProperty("smonthCards") or {}
local smonthCard = smonthCards[id] or {}
return smonthCard["periods"] or 0
end
SuperMonthCard["isExpired"] = function (self, id)
local periods = SuperMonthCard["periods"](self, id)
return periods == 0
end
SuperMonthCard["itemDaily"] = function(self, id)
local cur_ex = SuperMonthCard["periods"](self, id)
if cur_ex == 0 then return nil, nil end
cur_ex = cur_ex - 1
local card = csvdb["shop_cardCsv"][id] or {}
local reward, change = self.owner:award(card["itemDaily"], {log = {desc = "smonthCardReward", int1 = id, int2 = cur_ex}})
local smonthCards = self:getProperty("smonthCards") or {}
local smonthCard = smonthCards[id] or {}
smonthCard["periods"] = cur_ex
self:updateProperty({field = "smonthCards", value = smonthCards})
return reward, change, cur_ex
end
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
174
175
176
177
178
|
-- 删除过期商品
function Store:deleteExpireLimitGoods()
local timeNow = skynet.timex()
local limitGoodsList = self:getProperty("limitTPack")
for k, v in pairs(limitGoodsList) do
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
179
|
if timeNow > v[1] then
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
180
181
|
limitGoodsList[k] = nil
end
|
c5825110
saicom
新增用户商城相关数据
|
182
|
end
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
183
|
self:updateProperty({field = "limitTPack", value = limitGoodsList, notNotify = true})
|
c5825110
saicom
新增用户商城相关数据
|
184
185
186
187
|
end
-- 发送月卡邮件
function Store:sendMonthCardEmail()
|
3e20f499
saicom
完善商城相关协议
|
188
|
local timeNow = skynet.timex()
|
2e283f60
liuzujun
月卡升级
|
189
190
191
|
local tabs = {{ex="monthCardEx", t="getMailT1", id= self:getProperty("monthCardId")},
{ex="smonthCardEx", t="getMailT2", id=self:getProperty("smonthCardId")}}
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
192
193
194
|
for _, v in ipairs(tabs) do
local ex = self:getProperty(v.ex)
local ts = self:getProperty(v.t) or 0
|
2e283f60
liuzujun
月卡升级
|
195
196
197
198
|
local cfg = csvdb["shop_cardCsv"][v.id] or {}
local mailId = cfg.email
local alertId = cfg.email_2
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
199
200
201
202
203
204
|
local alertTs = dayLater(ex) - DAY_SEC
if ex > timeNow then
local cnt = 0
if ts == 0 then
cnt = 1
else
|
70aa8660
liuzujun
发送多天邮件bug
|
205
|
local diff = math.floor((dayLater(timeNow) - dayLater(ts))/DAY_SEC)
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
|
diff = diff < 0 and 0 or diff
diff = diff > 31 and 31 or diff
cnt = diff
end
for i = cnt - 1, 0, -1 do
local createTs = timeNow - i * DAY_SEC
self.owner:sendMail(mailId, createTs)
-- 过期头一天发提醒邮件
if dayLater(createTs) == alertTs then
self.owner:sendMail(alertId, createTs)
end
end
if cnt > 0 then
self:updateProperty({field=v.t, value=timeNow})
end
end
|
3e20f499
saicom
完善商城相关协议
|
222
|
end
|
c5825110
saicom
新增用户商城相关数据
|
223
224
|
end
|
317a46a9
liuzujun
添加特权卡
|
225
|
function Store:isMonthCardExpire()
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
226
|
return self:getProperty("monthCardEx") == 0
|
317a46a9
liuzujun
添加特权卡
|
227
228
|
end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
229
230
|
function Store:isSuperMonthCardExpire(id)
return false
|
317a46a9
liuzujun
添加特权卡
|
231
232
233
234
235
236
237
238
|
end
function Store:isPrivCardExpire()
local timeNow = skynet.timex()
local ts = self:getProperty("privCardEx")
return ts < timeNow
end
|
317a46a9
liuzujun
添加特权卡
|
239
240
241
242
243
244
|
-- 挂机栏位 特权卡额外个数
function Store:getHangSlotExtraCount()
if self:isPrivCardExpire() then
return 0
end
|
d9d51454
liuzujun
修改特权卡引用配置错误bug
|
245
|
return globalCsv.shop_priv_card_hang_slot_cnt or 4
|
317a46a9
liuzujun
添加特权卡
|
246
247
248
249
250
251
252
|
end
-- 探索加速/餐厅加速 特权卡系数
function Store:getProduceItemSpeedCoef()
if self:isPrivCardExpire() then
return 1
end
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
253
254
|
local coef = (globalCsv.shop_priv_card_produce_coef or 25)/ 100
return 1 + coef
|
317a46a9
liuzujun
添加特权卡
|
255
256
257
258
259
260
261
262
|
end
-- 拆解室栏位 特权卡额外个数
function Store:getTimeBoxSlotExtraCount()
if self:isPrivCardExpire() then
return 0
end
|
d9d51454
liuzujun
修改特权卡引用配置错误bug
|
263
|
return globalCsv.shop_priv_time_box_slot_cnt or 3
|
317a46a9
liuzujun
添加特权卡
|
264
265
266
267
268
269
270
271
|
end
-- 齿轮兑换 特权卡系数
function Store:getGearExchangeCoef()
if self:isPrivCardExpire() then
return 1
end
|
7f9f002d
liuzujun
循环周活动
|
272
|
local coef = (globalCsv.shop_priv_exchange_gear_coef or 50)/ 100
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
273
|
return 1 + coef
|
317a46a9
liuzujun
添加特权卡
|
274
275
|
end
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
276
277
278
279
280
281
282
283
284
285
286
287
288
|
-- 奖励关卡 特权卡额外数量
function Store:getBonusExtraFightCount()
if self:isPrivCardExpire() then
return 0
end
local cnt = globalCsv.bonus_extra_fight_count or 1
return cnt
end
-- 挂机道具掉落系数 特权卡挂机掉落系数
function Store:getHangDropCoef()
if self:isPrivCardExpire() then
|
aae56896
liuzujun
特权卡bug
|
289
|
return 1, 1
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
290
291
292
293
294
|
end
return (1 + globalCsv.hang_drop_exp_coef) or 1, (1 + globalCsv.hang_drop_item_coef) or 1
end
|
2e283f60
liuzujun
月卡升级
|
295
296
297
298
299
300
301
302
303
304
305
306
|
function Store:getCurMonthCardLvl(isSuper)
local id = 0
if isSuper then
id = self:getProperty("smonthCardId") or 0
else
id = self:getProperty("monthCardId") or 0
end
local cfg = csvdb["shop_cardCsv"][id]
if not cfg then return 0 end
return cfg.level or 0
end
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
307
|
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
|
--获取月卡每日奖励
function Store:getMonthCardDailyReward(id)
if self:isMonthCardExpire() or self:getProperty("monthCardReceive") == 1 then return nil, nil end
local before_ex = self:getProperty("monthCardEx")
self:updateProperty({field = "monthCardEx", delta = -1})
local cur_ex = self:getProperty("monthCardEx")
local actCfg = csvdb["shop_card"][id] or {}
local award = actCfg.itemDaily:toNumMap()
local reward, change = self.owner:award(award, {log = {desc = "monthCardReward", int1 = id, int2 = cur_ex}})
--今日月卡奖励已经领取
self:updateProperty({field = "monthCardReceive", value = 1})
self.owner:log("month_card", {
item_type = CardType.NormalMonthCard,
item_id = id, --月卡id
before_ex = before_ex, --未领取奖励前的期
cur_ex = cur_ex, --剩余期数
reward_time = skynet.timex(), --奖励时间
month_reward_detail = reward,
})
return reward, change
end
--获取特刊每日奖励
function Store:getSMonthCardDailyReward(id)
local before_ex = SuperMonthCard["periods"](self, id)
local reward, change, cur_ex= SuperMonthCard["itemDaily"](self, id)
--今日特刊奖励已经领取
self:updateProperty({field = "smonthCardReceive", value = 1})
self.owner:log("month_card", {
item_type = CardType.SuperMonthCard,
item_id = id, --月卡id
before_ex = before_ex, --未领取奖励前的期
cur_ex = cur_ex, --剩余期数
reward_time = skynet.timex(), --奖励时间
month_reward_detail = reward,
})
return reward, change
end
function Store:firstBuyMonthCard(id)
if self:getProperty("firstMonthCard") == 1 then
self:updateProperty({field = "firstMonthCard", value = 0})
local card = csvdb["shop_cardCsv"][id] or {}
return self:award(card["cardFirst"], {log = {desc = "monthCardReward", int1 = id, int2 = 30}})
end
return nil
end
|
c5825110
saicom
新增用户商城相关数据
|
362
|
-- 购买通行证
|
c756d4df
liuzujun
新年将军令活动
|
363
|
function Store:onBuyCard(type, duration, id, actid)
|
c5825110
saicom
新增用户商城相关数据
|
364
|
local timeNow = skynet.timex()
|
3e20f499
saicom
完善商城相关协议
|
365
|
if type == CardType.NormalMonthCard then
|
317a46a9
liuzujun
添加特权卡
|
366
|
if self:isMonthCardExpire() then
|
2e283f60
liuzujun
月卡升级
|
367
|
self:updateProperty({field = "monthCardId", value = id})
|
317a46a9
liuzujun
添加特权卡
|
368
|
end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
|
self:updateProperty({field = "monthCardEx", value = self:getProperty("monthCardEx") + 30})
--初回特典 仅首次购买月卡时赠送SSR级角色"拉塔托娅"
local reward = {}
local tmpreward, _ = self:firstBuyMonthCard(id)
if tmpreward then
for k, v in pairs(tmpreward) do
reward[k] = (reward[k] or 0) + v
end
end
--签收奖励
tmpreward, _= self:getMonthCardDailyReward(id)
if tmpreward then
for k, v in pairs(tmpreward) do
reward[k] = (reward[k] or 0) + v
end
end
return reward
elseif type == CardType.SuperMonthCard then
if SuperMonthCard["buy"](self, id) then
return self:getSMonthCardDailyReward(id)
end
return nil, nil
|
2e283f60
liuzujun
月卡升级
|
393
394
395
396
397
|
elseif type == CardType.NormalMonthCardLevelUp then
if self:isMonthCardExpire() then
skynet.error(string.format("month card expired, can not level up,%d,%d",self.owner:getProperty("id"), id))
else
local cfg = csvdb["shop_cardCsv"][id]
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
398
|
if not cfg then return end
|
30f12b27
liuzujun
战令活动过期清购买记录, 升级月卡...
|
399
400
|
local dif = cfg.level - self:getCurMonthCardLvl(false)
if dif > 1 and dif < 0 then
|
2e283f60
liuzujun
月卡升级
|
401
402
403
404
405
406
|
return
end
self:updateProperty({field = "monthCardId", value = id})
self:updateProperty({field = "monthCardEx", value = self:getProperty("monthCardEx") + duration})
end
self:sendMonthCardEmail()
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
407
|
|
2e283f60
liuzujun
月卡升级
|
408
409
410
411
412
|
elseif type == CardType.SuperMonthCardLevelUp then
if self:isSuperMonthCardExpire() then
skynet.error(string.format("super month card expired, can not level up,%d,%d",self.owner:getProperty("id"), id))
else
local cfg = csvdb["shop_cardCsv"][id]
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
413
|
if not cfg then return end
|
30f12b27
liuzujun
战令活动过期清购买记录, 升级月卡...
|
414
415
|
local dif = cfg.level - self:getCurMonthCardLvl(true)
if dif > 1 and dif < 0 then
|
2e283f60
liuzujun
月卡升级
|
416
417
418
419
420
421
|
return
end
self:updateProperty({field = "smonthCardId", value = id})
self:updateProperty({field = "smonthCardEx", value = self:getProperty("smonthCardEx") + duration})
end
self:sendMonthCardEmail()
|
3e20f499
saicom
完善商城相关协议
|
422
|
elseif type == CardType.PrivilegeCard then
|
317a46a9
liuzujun
添加特权卡
|
423
424
425
426
427
|
if self:isPrivCardExpire() then
self:updateProperty({field = "privCardEx", value = timeNow + duration})
else
self:updateProperty({field = "privCardEx", value = self:getProperty("privCardEx") + duration})
end
|
3e20f499
saicom
完善商城相关协议
|
428
429
430
|
elseif type == CardType.GrowFund then
self:updateProperty({field = "growFund", value = 1})
elseif type == CardType.BattleCard then
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
431
|
self:updateProperty({field = "battleCard", value = 1})
|
37bb4611
liuzujun
付费签到,抽卡阶段奖励,探索指令
|
432
433
434
435
|
elseif type == CardType.PaySignCard then
self:onBuyPaySignCard(duration)
elseif type == CardType.BattlePassCard then
local index = id - 400 -- 401:初级 402:中级 403:高级 404:终极
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
436
437
438
439
440
|
local bpInfo = self:getProperty("bpInfo") or {}
local info = bpInfo[index] or {}
info["flag"] = 1
bpInfo[index] = info
self:updateProperty({field = "bpInfo", value = bpInfo})
|
c756d4df
liuzujun
新年将军令活动
|
441
|
elseif type == CardType.ActBattleCommandCard then
|
98be031a
liuzujun
新年活动
|
442
|
if not self.owner.activity:isOpenById(actid, "ActShopGoods") then
|
c756d4df
liuzujun
新年将军令活动
|
443
444
445
446
447
|
return
end
local actCfg = csvdb["activity_ctrlCsv"][actid]
if not actCfg then return end
local actData = self.owner.activity:getActData("BattleCommand") or {}
|
c756d4df
liuzujun
新年将军令活动
|
448
449
450
|
actData["unlock"] = 1
if actCfg.condition ~= 0 then
actData["lvl"] = (actData["lvl"] or 0) + actCfg.condition
|
3552b8db
chenyueqi
打印log方法要用role的
|
451
|
self.owner:mylog("act_action", {desc="buyBcLvl", int1=actCfg.condition, int2=actData["lvl"]})
|
c756d4df
liuzujun
新年将军令活动
|
452
|
end
|
70fb62d1
liuzujun
服务器数据打点
|
453
|
self.owner:mylog("act_action", {desc="buyBc", int1=id, int2=actData["lvl"] or 0})
|
98be031a
liuzujun
新年活动
|
454
|
self.owner.activity:updateActData("BattleCommand", actData)
|
c5825110
saicom
新增用户商城相关数据
|
455
|
end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
456
|
return nil, nil
|
c5825110
saicom
新增用户商城相关数据
|
457
458
|
end
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
459
|
--检测购买是否超过限制数量
|
3e20f499
saicom
完善商城相关协议
|
460
|
function Store:checkRechargeRecord(limit, id)
|
3a3a3ddf
liuzujun
下单前检测商品限购次数
|
461
|
local rechargeRecord = self:getProperty("payR") or {}
|
c5825110
saicom
新增用户商城相关数据
|
462
|
if limit ~= 0 and limit <= (rechargeRecord[id] or 0) then
|
d705a315
zhouhaihai
充值 整理
|
463
|
skynet.error(string.format("[recharge] recharge id:%d count over limit, user id:%d", id, self.owner:getProperty("id")))
|
c5825110
saicom
新增用户商城相关数据
|
464
465
|
return false
end
|
3e20f499
saicom
完善商城相关协议
|
466
467
|
rechargeRecord[id] = (rechargeRecord[id] or 0) + 1
self:updateProperty({field = "payR", value = rechargeRecord})
|
c5825110
saicom
新增用户商城相关数据
|
468
469
470
|
return true
end
|
3e20f499
saicom
完善商城相关协议
|
471
472
473
474
475
|
function Store:notifyUpdateProperty(field, newValue, oldValue)
local datas = {
key = field,
newValue = newValue,
oldValue = oldValue,
|
2e283f60
liuzujun
月卡升级
|
476
|
}
|
3e20f499
saicom
完善商城相关协议
|
477
478
479
|
SendPacket(actionCodes.Store_updateproperty, MsgPack.pack(datas))
end
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
480
481
|
-- 赛季卡重置 需要把未能领取的奖励通过邮件发送
function Store:onBattleCardReset()
|
706b517e
liuzujun
翻倍掉落活动,商城免费宝箱
|
482
|
local gift = {}
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
483
|
local function concatGift(data)
|
706b517e
liuzujun
翻倍掉落活动,商城免费宝箱
|
484
485
|
for key, v in pairs(data:toNumMap()) do
gift[key] = (gift[key] or 0) + v
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
486
487
488
489
490
491
492
493
494
495
496
|
end
end
local battleCardFlag = self:getProperty("battleCard")
local battleCardFreeRecord = self:getProperty("battleFR")
local battleCardLimitRecord = self:getProperty("battleLR")
local battlePoint = self.owner:getProperty("battlePoint")
for id, config in pairs(csvdb["reward_battlepassCsv"]) do
if config then
local freeFlag = string.char(string.getbit(battleCardFreeRecord, id))
local limitFlag = string.char(string.getbit(battleCardLimitRecord, id))
|
9ea0c502
liuzujun
限时礼包
|
497
|
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
498
499
500
501
502
503
504
505
506
507
|
if battlePoint < config.point then
break
end
if freeFlag == "0" then
concatGift(config.giftFree)
end
if limitFlag == "0" and battleCardFlag == 1 then
concatGift(config.giftLimit)
end
end
|
9ea0c502
liuzujun
限时礼包
|
508
|
end
|
706b517e
liuzujun
翻倍掉落活动,商城免费宝箱
|
509
|
self.owner:sendMail(MailId.BattleCardAward, nil, gift)
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
510
511
|
-- 计算剩余奖励
self:updateProperty({field = "battleCard", value=0})
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
512
513
514
515
516
517
|
self:updateProperty({field = "battleFR", value=""})
self:updateProperty({field = "battleLR", value=""})
self.owner:updateProperty({field = "battlePoint", value=0})
end
-- 重置购买记录
|
1a0b3c56
liuzujun
抽卡保底,切换定向卡池
|
518
519
520
521
522
523
524
525
|
function Store:resetStoreReored(resetId)
local payRecord = self:getProperty("payR") or {}
local buyRecord = self:getProperty("buyR") or {}
for k, v in pairs(payRecord) do
local config = csvdb["shop_rechargeCsv"][k]
if config then
if config.resetTime == resetId then
payRecord[k] = nil
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
526
527
528
529
530
531
|
--通行证商店
if config.shop == 2 then
if config.type == CardType.BattleCard then
self:onBattleCardReset()
end
end
|
1a0b3c56
liuzujun
抽卡保底,切换定向卡池
|
532
|
end
|
8e892c71
liuzujun
挑战关卡活动打完再扣门票
|
533
534
|
else
payRecord[k] = nil
|
1a0b3c56
liuzujun
抽卡保底,切换定向卡池
|
535
536
537
538
539
540
541
542
543
|
end
end
self:updateProperty({field = "payR", value = payRecord})
for k, v in pairs(buyRecord) do
local config = csvdb["shop_normalCsv"][k]
if config then
if config.resetTime == resetId then
buyRecord[k] = nil
end
|
8e892c71
liuzujun
挑战关卡活动打完再扣门票
|
544
545
|
else
buyRecord[k] = nil
|
1a0b3c56
liuzujun
抽卡保底,切换定向卡池
|
546
547
548
549
550
|
end
end
self:updateProperty({field = "buyR", value = buyRecord})
end
|
9ea0c502
liuzujun
限时礼包
|
551
552
553
|
--触发限时礼包
function Store:OnTriggerLimitTimePack(eventType, param)
local limitPack = self:getProperty("limitTPack")
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
554
|
--local payRecord = self:getProperty("payR")
|
9ea0c502
liuzujun
限时礼包
|
555
|
local timeNow = skynet.timex()
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
556
|
--local find = false
|
9ea0c502
liuzujun
限时礼包
|
557
|
-- 有未过期的限时礼包不再推送
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
558
559
560
561
562
563
564
565
566
567
568
569
570
|
--for k, v in pairs(limitPack) do
-- if v > timeNow and not payRecord[k] then
-- find = true
-- break
-- end
--end
--if find == true then
-- return
--end
--local hangPass = self.owner:getProperty("hangPass")
--local triggerRecord = self:getProperty("packTrigger")
--local result = {}
--local maxDiff = 0
|
9ea0c502
liuzujun
限时礼包
|
571
|
-- 取满足限时礼包关卡要求的对应数据
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
|
--for diff, maxCarbonId in pairs(hangPass) do
-- for id, cfg in pairs(csvdb["shop_packCsv"]) do
-- local range = cfg.showRange:toArray(true, "=")
-- local beginRange = range[1] or 0
-- local endRange = range[2] or 0
-- if maxCarbonId > beginRange and maxCarbonId <= endRange and cfg.type == eventType then
-- result[diff] = cfg
-- maxDiff = math.max(maxDiff, diff)
-- break
-- end
-- end
--end
local config = nil
for id, cfg in pairs(csvdb["shop_packCsv"]) do
if cfg.type == eventType and cfg.condition == param then
config = cfg
|
9ea0c502
liuzujun
限时礼包
|
588
589
|
end
end
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
590
|
if config ~= nil then
|
a33ade6c
liuzujun
rmb礼包改钻石礼包
|
591
|
local rechargeCfg = csvdb["shop_normalCsv"][config.packId]
|
9ea0c502
liuzujun
限时礼包
|
592
|
if rechargeCfg then
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
593
|
limitPack[rechargeCfg.id] = {timeNow + rechargeCfg.time, config.id}
|
97807511
zhouhaihai
增加日志
|
594
595
|
self.owner:log("push_gift", {
gift_id = rechargeCfg.id, --礼包ID
|
a33ade6c
liuzujun
rmb礼包改钻石礼包
|
596
|
gift_name = rechargeCfg.descId, --礼包名称
|
97807511
zhouhaihai
增加日志
|
597
|
})
|
bf096b07
liuzujun
每日抽卡限时礼包触发时,清空购买记录
|
598
599
|
-- 每日抽卡限时礼包 触发重置
if eventType == TriggerEventType.DrawHeroCnt then
|
a33ade6c
liuzujun
rmb礼包改钻石礼包
|
600
|
local payR = self:getProperty("buyR")
|
bf096b07
liuzujun
每日抽卡限时礼包触发时,清空购买记录
|
601
602
|
if payR[rechargeCfg.id] then
payR[rechargeCfg.id] = nil
|
a33ade6c
liuzujun
rmb礼包改钻石礼包
|
603
|
self:updateProperty({field = "buyR", value = payR})
|
bf096b07
liuzujun
每日抽卡限时礼包触发时,清空购买记录
|
604
605
|
end
end
|
5226a156
liuzujun
每日抽卡礼包bug
|
606
|
self:updateProperty({field = "limitTPack", value = limitPack})
|
9ea0c502
liuzujun
限时礼包
|
607
608
|
end
end
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
609
610
611
|
--if next(result) then
-- self:updateProperty({field = "packTrigger", value = triggerRecord})
--end
|
9ea0c502
liuzujun
限时礼包
|
612
613
|
end
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
614
615
616
617
|
function GetActGoodsIndex(goodsType)
return ActGoodsType[goodsType] or 0
end
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
618
|
function Store:SetActGoodsFlag(goodsType, flag)
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
619
|
local actGoodsFlag = self:getProperty("actGoodsFlag") or {}
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
620
|
local goodsIndex = GetActGoodsIndex(goodsType)
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
621
622
623
624
|
if goodsIndex == 0 then
print("get act goods index fail :paySignIn")
return
end
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
625
|
actGoodsFlag[goodsIndex] = flag
|
53b4b8bd
liuzujun
自动挂机下一关
|
626
|
self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag})
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
627
|
end
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
628
|
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
629
630
631
|
-- 购买付费签到 按开服时间算奖励
function Store:onBuyPaySignCard(dur)
local curTs = skynet.timex()
|
d4d00016
liuzujun
付费签到开始时间改为开服时间
|
632
|
curTs = getServerOpenTs()
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
633
|
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
634
|
self:SetActGoodsFlag("paySignIn", curTs)
|
ede282c0
liuzujun
付费签到规则改为按登录天数计算进度...
|
635
636
637
|
local actData = self.owner.activity:getActData("PaySignIn")
actData[0] = 1
self.owner.activity:updateActData("PaySignIn", actData)
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
|
--local actGoodsFlag = self:getProperty("actGoodsFlag") or {}
--local goodsIndex = GetActGoodsIndex("paySignIn")
--if goodsIndex == 0 then
-- print("get act goods index fail :paySignIn")
-- return
--end
--actGoodsFlag[goodsIndex] = 1
--self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag})
-- 发钱
--local change
--local reward, curData = self.owner.activity:getPaySignReward()
--if next(reward) then
-- self.owner.activity:updateActData("PaySignIn", curData)
-- reward, change = self.owner:award(reward, {log = {desc = "actPaySign"}})
--end
--self.owner:log("activity", {
-- activity_id = 0, -- 活动ID(或活动指定任务的ID)
-- activity_type = self.owner.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表
-- activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...}
--})
--SendPacket(actionCodes.Activity_actPaySignRewardNtf, MsgPack.pack(self.owner:packReward(reward, change)))
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
662
663
664
665
666
667
668
669
670
671
|
end
function Store:checkPaySignReward()
local reward, curData = self.owner.activity:getPaySignReward()
if next(reward) then
self.owner.activity:updateActData("PaySignIn", curData)
self.owner:sendMail(MailId.PaySignAward, nil, reward)
end
end
|
f7a55da3
liuzujun
新增cb2临时限时礼包
|
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
|
-- 临时用 登录触发限时礼包 时间点以后
function Store:OnTriggerLimitTimePackAfterTs(eventType, param)
local limitPack = self:getProperty("limitTPack")
local timeNow = skynet.timex()
local config = nil
for id, cfg in pairs(csvdb["shop_packCsv"]) do
local ts = toUnixtime(""..cfg.condition)
if cfg.type == eventType and ts < param then
config = cfg
if config ~= nil then
local rechargeCfg = csvdb["shop_rechargeCsv"][config.packId]
if rechargeCfg then
if not limitPack[rechargeCfg.id] then
limitPack[rechargeCfg.id] = {timeNow + rechargeCfg.time, config.id}
self.owner:log("push_gift", {
gift_id = rechargeCfg.id, --礼包ID
gift_name = rechargeCfg.title, --礼包名称
})
self:updateProperty({field = "limitTPack", value = limitPack, notNotify = false})
end
end
end
end
end
end
|
cddfa602
zhangqijia
feat: 月卡解锁的日/周商店随...
|
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
|
local function checkShopFinish(shop, shopPool)
local tmpShop = shopPool[shop.id] or {}
if next(tmpShop) then
if tmpShop.expire_ts then
if skynet.timex() > tmpShop.expire_ts then
shopPool[shop.id] = nil
return true
else
return false
end
else
tmpShop.expire_ts = skynet.timex() + tmpShop.cool_time * DAY_SEC
return false
end
else
return true
end
end
--随机日/周商店随机两个商品
-- 1. 让缓存里的商品进入冷却时间
-- 2. 删除缓存里的已经冷却好的商品
-- 3. 随机两件商品放入缓存中
function Store:flushDailyShop()
local dailyShop = self:getProperty("dailyShop") or {}
local tmpDailyShop = {}
for id, data in pairs(csvdb["shop_normalCsv"]) do
if data.shop == 1 and data.shopType == 3 then
if data.resetTime == 1 and checkShopFinish(data, dailyShop) then
tmpDailyShop[id] = {["id"] = data.id, ["weight"] = 100, ["cool_time"] = data.cool_time}
end
end
end
--随机两件商品放入缓存 跨天刷新
if next(tmpDailyShop) then
local id = math.randWeight(tmpDailyShop)
if id then
dailyShop[id] = tmpDailyShop[id]
tmpDailyShop[id] = nil
end
id = math.randWeight(tmpDailyShop)
if id then
dailyShop[id] = tmpDailyShop[id]
tmpDailyShop[id] = nil
end
end
self:updateProperty({field="dailyShop", value= dailyShop})
end
function Store:flushWeekShop()
local weekShop = self:getProperty("weekShop") or {}
local tmpWeekShop = {}
for id, data in pairs(csvdb["shop_normalCsv"]) do
if data.shop == 1 and data.shopType == 3 then
if data.resetTime == 2 and checkShopFinish(data, weekShop)then
tmpWeekShop[id] = {["id"] = data.id, ["weight"] = 100, ["cool_time"] = data.cool_time}
end
end
end
--随机两件商品放入缓存 跨周刷新
if next(tmpWeekShop) then
local id = math.randWeight(tmpWeekShop)
if id then
weekShop[id] = weekShop[id]
tmpWeekShop[id] = nil
end
id = math.randWeight(tmpWeekShop)
if id then
weekShop[id] = weekShop[id]
tmpWeekShop[id] = nil
end
end
self:updateProperty({field="weekShop", value= weekShop})
end
|
c5825110
saicom
新增用户商城相关数据
|
781
|
function Store:data()
|
f7a55da3
liuzujun
新增cb2临时限时礼包
|
782
|
self:OnTriggerLimitTimePackAfterTs(TriggerEventType.AfterTs, skynet.timex())
|
c5825110
saicom
新增用户商城相关数据
|
783
|
return {
|
3e20f499
saicom
完善商城相关协议
|
784
785
786
787
788
|
buyR = self:getProperty("buyR"),
payR = self:getProperty("payR"),
growFund = self:getProperty("growFund"),
growFundR = self:getProperty("growFundR"),
monthCardEx = self:getProperty("monthCardEx"),
|
fb3d084d
liuzujun
月卡赛季卡发送邮件奖励
|
789
790
791
|
battleCard = self:getProperty("battleCard"),
battleFR = self:getProperty("battleFR"),
battleLR = self:getProperty("battleLR"),
|
3e20f499
saicom
完善商城相关协议
|
792
|
limitTPack = self:getProperty("limitTPack"),
|
317a46a9
liuzujun
添加特权卡
|
793
|
privCardEx = self:getProperty("privCardEx"),
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
794
|
--packTrigger = self:getProperty("packTrigger"),
|
51d9d20b
liuzujun
付费签到,应用市场反馈
|
795
796
|
actGoodsFlag = self:getProperty("actGoodsFlag"),
bpInfo = self:getProperty("bpInfo"),
|
4f7cffe5
liuzujun
多队挂机任务取消功能,累充奖励
|
797
|
totalRR = self:getProperty("totalRR"),
|
2e283f60
liuzujun
月卡升级
|
798
|
monthCardId = self:getProperty("monthCardId"),
|
cddfa602
zhangqijia
feat: 月卡解锁的日/周商店随...
|
799
800
801
802
|
smonthCards = self:getProperty("smonthCards"),
smonthCardReceive = self:getProperty("smonthCardReceive"),
dailyShop = self:getProperty("dailyShop"),
weekShop = self:getProperty("weekShop"),
|
c5825110
saicom
新增用户商城相关数据
|
803
804
805
806
|
}
end
return Store
|