c5825110
saicom
新增用户商城相关数据
|
1
2
|
-- 商店数据
|
fa992c94
测试
添加daily,diner,act...
|
3
|
local Store = class("Store", require("shared.ModelBaseMysql"))
|
c5825110
saicom
新增用户商城相关数据
|
4
5
|
function Store:ctor(properties)
|
54f63c13
测试
修复老月卡用户的月卡id字段
|
6
7
8
9
10
|
Store.super.ctor(self, properties)
end
function Store:onLoad()
local monEx = self:getProperty("monthCardEx")
|
54f63c13
测试
修复老月卡用户的月卡id字段
|
11
|
local monId = self:getProperty("monthCardId")
|
54f63c13
测试
修复老月卡用户的月卡id字段
|
12
|
local flag = false
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
13
|
if monEx > 0 and monId == 0 then
|
54f63c13
测试
修复老月卡用户的月卡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
测试
付费签到,应用市场反馈
|
20
21
22
23
|
ActGoodsType = {
paySignIn = 1, -- 付费签到
}
|
c5825110
saicom
新增用户商城相关数据
|
24
|
Store.schema = {
|
fa992c94
测试
添加daily,diner,act...
|
25
|
id = {"number", 0, "pri"}, -- 角色id
|
3e20f499
测试
完善商城相关协议
|
26
27
28
|
buyR = {"table", {}}, -- 购买商品记录 {id=count}
payR = {"table", {}}, -- 充值记录 {id=count}
growFund = {"number", 0}, -- 成长基金
|
51d9d20b
测试
付费签到,应用市场反馈
|
29
30
|
growFundR = {"string", ""}, -- 成长基金领取记录
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
31
|
monthCardEx = {"number", 0}, -- 期数
|
2e283f60
测试
月卡升级
|
32
|
monthCardId = {"number", 0}, -- 月卡id
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
33
34
35
36
37
|
firstMonthCard = {"number", 1}, -- 首次订阅月卡
monthCardReceive = {"number", 0}, -- 月卡奖励领取记录 当天 0-未领取, 1-已经领取
smonthCards = {"table", {}}, --特刊信息 {[id]={["buyCount"]=0, ["periods"]=0, ["openFlag"]= 1}} buyCount: 购买次数,periods: 剩余期数,openFlag: 是否开放标识
smonthCardReceive = {"number", 0}, -- 特刊奖励领取记录 当天 0-未领取, 1-已经领取
|
51d9d20b
测试
付费签到,应用市场反馈
|
38
|
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
39
|
battleCard = {"number", 0}, -- 赛季卡
|
3e20f499
测试
完善商城相关协议
|
40
41
|
battleFR = {"string", ""}, -- 免费赛季卡领取记录
battleLR = {"string", ""}, -- 付费赛季卡领取记录
|
51d9d20b
测试
付费签到,应用市场反馈
|
42
|
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
43
|
limitTPack = {"table", {}}, -- 限时礼包 {id={expire_ts, trigger_type}}
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
44
45
46
|
privCardEx = {"number", 0}, -- 特权卡过期时间戳
getMailT1 = {"number",0}, -- 上次发送月卡福利邮件的时间
getMailT2 = {"number",0}, -- 上次发送超级月卡福利邮件的时间
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
47
|
--packTrigger = {"table", {}}, -- 礼包触发记录 {关卡难度1={id, 通关关卡数,升级数,爬塔层数}, ...}
|
51d9d20b
测试
付费签到,应用市场反馈
|
48
49
50
51
52
|
-- 活动商品购买记录
actGoodsFlag = {"table", {}}, -- ActGoodsType 1购买,0未购买
bpInfo = {"table", {}}, -- battle pass 探索指令 1={flag=0 为1表示买了,br=""付费领取记录, fr=""免费领取记录},2,3,4
|
4f7cffe5
测试
多队挂机任务取消功能,累充奖励
|
53
54
|
totalRR = {"string", ""}, -- 累计充值奖励领取记录
|
cddfa602
zhangqijia
feat: 月卡解锁的日/周商店随...
|
55
56
57
|
dailyShop = {"table", {}},
weekShop = {"table", {}},
|
c5825110
saicom
新增用户商城相关数据
|
58
59
60
|
}
function Store:updateProperty(params)
|
3e20f499
测试
完善商城相关协议
|
61
62
63
|
params = params or {}
if not self.schema[params.field] then
return
|
c5825110
saicom
新增用户商城相关数据
|
64
|
end
|
3e20f499
测试
完善商城相关协议
|
65
|
local oldValue = self:getProperty(params.field)
|
c5825110
saicom
新增用户商城相关数据
|
66
67
|
if params.value then
self:setProperty(params.field, params.value)
|
3e20f499
测试
完善商城相关协议
|
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
测试
月卡升级
|
74
|
if not params.notNotify then
|
3e20f499
测试
完善商城相关协议
|
75
|
self:notifyUpdateProperty(params.field, newValue, oldValue)
|
c5825110
saicom
新增用户商城相关数据
|
76
|
end
|
c5825110
saicom
新增用户商城相关数据
|
77
78
|
end
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
79
|
function Store:onCrossDay()
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
80
|
--self:sendMonthCardEmail()
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
81
|
self:deleteExpireLimitGoods()
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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
174
175
176
177
178
179
180
181
|
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
local rechargeData = csvdb["shop_rechargeCsv"][id] or {}
local buyCount = smonthCard["buyCount"] or 0
if buyCount >= (rechargeData["limit"] or 3) then return false end
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()
--增刊条件 + 标识
for _, val in pairs(smonthCards) do
val["openFlag"] = 0
end
local card = csvdb["shop_cardCsv"][id] or {}
if (card["cardPlusFlag"] or 0) ~= 1 then return false end
--判断是否购买过增刊条件里的特刊
local cardPlusCondition = card["cardPlusCondition"] or 0
if self:isMonthCardExpire() or smonthCards[cardPlusCondition] == nil then return false end
local smonthCard = {["periods"] = (card["cardPlusPeriods"] or 30), ["buyCount"] = 1, ["openFlag"] = 1 }
smonthCards[id] = smonthCard
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
测试
月卡赛季卡发送邮件奖励
|
182
183
184
185
186
|
-- 删除过期商品
function Store:deleteExpireLimitGoods()
local timeNow = skynet.timex()
local limitGoodsList = self:getProperty("limitTPack")
for k, v in pairs(limitGoodsList) do
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
187
|
if timeNow > v[1] then
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
188
189
|
limitGoodsList[k] = nil
end
|
c5825110
saicom
新增用户商城相关数据
|
190
|
end
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
191
|
self:updateProperty({field = "limitTPack", value = limitGoodsList, notNotify = true})
|
c5825110
saicom
新增用户商城相关数据
|
192
193
194
195
|
end
-- 发送月卡邮件
function Store:sendMonthCardEmail()
|
3e20f499
测试
完善商城相关协议
|
196
|
local timeNow = skynet.timex()
|
2e283f60
测试
月卡升级
|
197
198
199
|
local tabs = {{ex="monthCardEx", t="getMailT1", id= self:getProperty("monthCardId")},
{ex="smonthCardEx", t="getMailT2", id=self:getProperty("smonthCardId")}}
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
200
201
202
|
for _, v in ipairs(tabs) do
local ex = self:getProperty(v.ex)
local ts = self:getProperty(v.t) or 0
|
2e283f60
测试
月卡升级
|
203
204
205
206
|
local cfg = csvdb["shop_cardCsv"][v.id] or {}
local mailId = cfg.email
local alertId = cfg.email_2
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
207
208
209
210
211
212
|
local alertTs = dayLater(ex) - DAY_SEC
if ex > timeNow then
local cnt = 0
if ts == 0 then
cnt = 1
else
|
70aa8660
测试
发送多天邮件bug
|
213
|
local diff = math.floor((dayLater(timeNow) - dayLater(ts))/DAY_SEC)
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
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
测试
完善商城相关协议
|
230
|
end
|
c5825110
saicom
新增用户商城相关数据
|
231
232
|
end
|
317a46a9
测试
添加特权卡
|
233
|
function Store:isMonthCardExpire()
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
234
|
return self:getProperty("monthCardEx") == 0
|
317a46a9
测试
添加特权卡
|
235
236
|
end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
237
238
|
function Store:isSuperMonthCardExpire(id)
return false
|
317a46a9
测试
添加特权卡
|
239
240
241
242
243
244
245
246
|
end
function Store:isPrivCardExpire()
local timeNow = skynet.timex()
local ts = self:getProperty("privCardEx")
return ts < timeNow
end
|
317a46a9
测试
添加特权卡
|
247
248
249
250
251
252
|
-- 挂机栏位 特权卡额外个数
function Store:getHangSlotExtraCount()
if self:isPrivCardExpire() then
return 0
end
|
d9d51454
测试
修改特权卡引用配置错误bug
|
253
|
return globalCsv.shop_priv_card_hang_slot_cnt or 4
|
317a46a9
测试
添加特权卡
|
254
255
256
257
258
259
260
|
end
-- 探索加速/餐厅加速 特权卡系数
function Store:getProduceItemSpeedCoef()
if self:isPrivCardExpire() then
return 1
end
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
261
262
|
local coef = (globalCsv.shop_priv_card_produce_coef or 25)/ 100
return 1 + coef
|
317a46a9
测试
添加特权卡
|
263
264
265
266
267
268
269
270
|
end
-- 拆解室栏位 特权卡额外个数
function Store:getTimeBoxSlotExtraCount()
if self:isPrivCardExpire() then
return 0
end
|
d9d51454
测试
修改特权卡引用配置错误bug
|
271
|
return globalCsv.shop_priv_time_box_slot_cnt or 3
|
317a46a9
测试
添加特权卡
|
272
273
274
275
276
277
278
279
|
end
-- 齿轮兑换 特权卡系数
function Store:getGearExchangeCoef()
if self:isPrivCardExpire() then
return 1
end
|
7f9f002d
测试
循环周活动
|
280
|
local coef = (globalCsv.shop_priv_exchange_gear_coef or 50)/ 100
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
281
|
return 1 + coef
|
317a46a9
测试
添加特权卡
|
282
283
|
end
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
284
285
286
287
288
289
290
291
292
293
294
295
296
|
-- 奖励关卡 特权卡额外数量
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
测试
特权卡bug
|
297
|
return 1, 1
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
298
299
300
301
302
|
end
return (1 + globalCsv.hang_drop_exp_coef) or 1, (1 + globalCsv.hang_drop_item_coef) or 1
end
|
2e283f60
测试
月卡升级
|
303
304
305
306
307
308
309
310
311
312
313
314
|
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
测试
限时礼包,抽卡ssr广播
|
315
|
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
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
362
363
364
365
366
367
368
369
|
--获取月卡每日奖励
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
新增用户商城相关数据
|
370
|
-- 购买通行证
|
c756d4df
测试
新年将军令活动
|
371
|
function Store:onBuyCard(type, duration, id, actid)
|
c5825110
saicom
新增用户商城相关数据
|
372
|
local timeNow = skynet.timex()
|
3e20f499
测试
完善商城相关协议
|
373
|
if type == CardType.NormalMonthCard then
|
317a46a9
测试
添加特权卡
|
374
|
if self:isMonthCardExpire() then
|
2e283f60
测试
月卡升级
|
375
|
self:updateProperty({field = "monthCardId", value = id})
|
317a46a9
测试
添加特权卡
|
376
|
end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
|
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
测试
月卡升级
|
401
402
403
404
405
|
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: 月卡+特刊
|
406
|
if not cfg then return end
|
30f12b27
测试
战令活动过期清购买记录, 升级月卡...
|
407
408
|
local dif = cfg.level - self:getCurMonthCardLvl(false)
if dif > 1 and dif < 0 then
|
2e283f60
测试
月卡升级
|
409
410
411
412
413
414
|
return
end
self:updateProperty({field = "monthCardId", value = id})
self:updateProperty({field = "monthCardEx", value = self:getProperty("monthCardEx") + duration})
end
self:sendMonthCardEmail()
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
415
|
|
2e283f60
测试
月卡升级
|
416
417
418
419
420
|
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: 月卡+特刊
|
421
|
if not cfg then return end
|
30f12b27
测试
战令活动过期清购买记录, 升级月卡...
|
422
423
|
local dif = cfg.level - self:getCurMonthCardLvl(true)
if dif > 1 and dif < 0 then
|
2e283f60
测试
月卡升级
|
424
425
426
427
428
429
|
return
end
self:updateProperty({field = "smonthCardId", value = id})
self:updateProperty({field = "smonthCardEx", value = self:getProperty("smonthCardEx") + duration})
end
self:sendMonthCardEmail()
|
3e20f499
测试
完善商城相关协议
|
430
|
elseif type == CardType.PrivilegeCard then
|
317a46a9
测试
添加特权卡
|
431
432
433
434
435
|
if self:isPrivCardExpire() then
self:updateProperty({field = "privCardEx", value = timeNow + duration})
else
self:updateProperty({field = "privCardEx", value = self:getProperty("privCardEx") + duration})
end
|
3e20f499
测试
完善商城相关协议
|
436
437
438
|
elseif type == CardType.GrowFund then
self:updateProperty({field = "growFund", value = 1})
elseif type == CardType.BattleCard then
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
439
|
self:updateProperty({field = "battleCard", value = 1})
|
37bb4611
测试
付费签到,抽卡阶段奖励,探索指令
|
440
441
442
443
|
elseif type == CardType.PaySignCard then
self:onBuyPaySignCard(duration)
elseif type == CardType.BattlePassCard then
local index = id - 400 -- 401:初级 402:中级 403:高级 404:终极
|
51d9d20b
测试
付费签到,应用市场反馈
|
444
445
446
447
448
|
local bpInfo = self:getProperty("bpInfo") or {}
local info = bpInfo[index] or {}
info["flag"] = 1
bpInfo[index] = info
self:updateProperty({field = "bpInfo", value = bpInfo})
|
c756d4df
测试
新年将军令活动
|
449
|
elseif type == CardType.ActBattleCommandCard then
|
98be031a
测试
新年活动
|
450
|
if not self.owner.activity:isOpenById(actid, "ActShopGoods") then
|
c756d4df
测试
新年将军令活动
|
451
452
453
454
455
|
return
end
local actCfg = csvdb["activity_ctrlCsv"][actid]
if not actCfg then return end
local actData = self.owner.activity:getActData("BattleCommand") or {}
|
c756d4df
测试
新年将军令活动
|
456
457
458
|
actData["unlock"] = 1
if actCfg.condition ~= 0 then
actData["lvl"] = (actData["lvl"] or 0) + actCfg.condition
|
3552b8db
chenyueqi
打印log方法要用role的
|
459
|
self.owner:mylog("act_action", {desc="buyBcLvl", int1=actCfg.condition, int2=actData["lvl"]})
|
c756d4df
测试
新年将军令活动
|
460
|
end
|
70fb62d1
测试
服务器数据打点
|
461
|
self.owner:mylog("act_action", {desc="buyBc", int1=id, int2=actData["lvl"] or 0})
|
98be031a
测试
新年活动
|
462
|
self.owner.activity:updateActData("BattleCommand", actData)
|
c5825110
saicom
新增用户商城相关数据
|
463
|
end
|
c40a6460
zhangqijia
feat: 月卡+特刊
|
464
|
return nil, nil
|
c5825110
saicom
新增用户商城相关数据
|
465
466
|
end
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
467
|
--检测购买是否超过限制数量
|
3e20f499
测试
完善商城相关协议
|
468
|
function Store:checkRechargeRecord(limit, id)
|
3a3a3ddf
测试
下单前检测商品限购次数
|
469
|
local rechargeRecord = self:getProperty("payR") or {}
|
c5825110
saicom
新增用户商城相关数据
|
470
|
if limit ~= 0 and limit <= (rechargeRecord[id] or 0) then
|
d705a315
zhouhaihai
充值 整理
|
471
|
skynet.error(string.format("[recharge] recharge id:%d count over limit, user id:%d", id, self.owner:getProperty("id")))
|
c5825110
saicom
新增用户商城相关数据
|
472
473
|
return false
end
|
3e20f499
测试
完善商城相关协议
|
474
475
|
rechargeRecord[id] = (rechargeRecord[id] or 0) + 1
self:updateProperty({field = "payR", value = rechargeRecord})
|
c5825110
saicom
新增用户商城相关数据
|
476
477
478
|
return true
end
|
3e20f499
测试
完善商城相关协议
|
479
480
481
482
483
|
function Store:notifyUpdateProperty(field, newValue, oldValue)
local datas = {
key = field,
newValue = newValue,
oldValue = oldValue,
|
2e283f60
测试
月卡升级
|
484
|
}
|
3e20f499
测试
完善商城相关协议
|
485
486
487
|
SendPacket(actionCodes.Store_updateproperty, MsgPack.pack(datas))
end
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
488
489
|
-- 赛季卡重置 需要把未能领取的奖励通过邮件发送
function Store:onBattleCardReset()
|
706b517e
测试
翻倍掉落活动,商城免费宝箱
|
490
|
local gift = {}
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
491
|
local function concatGift(data)
|
706b517e
测试
翻倍掉落活动,商城免费宝箱
|
492
493
|
for key, v in pairs(data:toNumMap()) do
gift[key] = (gift[key] or 0) + v
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
494
495
496
497
498
499
500
501
502
503
504
|
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
测试
限时礼包
|
505
|
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
506
507
508
509
510
511
512
513
514
515
|
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
测试
限时礼包
|
516
|
end
|
706b517e
测试
翻倍掉落活动,商城免费宝箱
|
517
|
self.owner:sendMail(MailId.BattleCardAward, nil, gift)
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
518
519
|
-- 计算剩余奖励
self:updateProperty({field = "battleCard", value=0})
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
520
521
522
523
524
525
|
self:updateProperty({field = "battleFR", value=""})
self:updateProperty({field = "battleLR", value=""})
self.owner:updateProperty({field = "battlePoint", value=0})
end
-- 重置购买记录
|
1a0b3c56
测试
抽卡保底,切换定向卡池
|
526
527
528
529
530
531
532
533
|
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
测试
月卡赛季卡发送邮件奖励
|
534
535
536
537
538
539
|
--通行证商店
if config.shop == 2 then
if config.type == CardType.BattleCard then
self:onBattleCardReset()
end
end
|
1a0b3c56
测试
抽卡保底,切换定向卡池
|
540
|
end
|
8e892c71
测试
挑战关卡活动打完再扣门票
|
541
542
|
else
payRecord[k] = nil
|
1a0b3c56
测试
抽卡保底,切换定向卡池
|
543
544
545
546
547
548
549
550
551
|
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
测试
挑战关卡活动打完再扣门票
|
552
553
|
else
buyRecord[k] = nil
|
1a0b3c56
测试
抽卡保底,切换定向卡池
|
554
555
556
557
558
|
end
end
self:updateProperty({field = "buyR", value = buyRecord})
end
|
9ea0c502
测试
限时礼包
|
559
560
561
|
--触发限时礼包
function Store:OnTriggerLimitTimePack(eventType, param)
local limitPack = self:getProperty("limitTPack")
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
562
|
--local payRecord = self:getProperty("payR")
|
9ea0c502
测试
限时礼包
|
563
|
local timeNow = skynet.timex()
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
564
|
--local find = false
|
9ea0c502
测试
限时礼包
|
565
|
-- 有未过期的限时礼包不再推送
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
566
567
568
569
570
571
572
573
574
575
576
577
578
|
--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
测试
限时礼包
|
579
|
-- 取满足限时礼包关卡要求的对应数据
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
|
--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
测试
限时礼包
|
596
597
|
end
end
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
598
|
if config ~= nil then
|
a33ade6c
测试
rmb礼包改钻石礼包
|
599
|
local rechargeCfg = csvdb["shop_normalCsv"][config.packId]
|
9ea0c502
测试
限时礼包
|
600
|
if rechargeCfg then
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
601
|
limitPack[rechargeCfg.id] = {timeNow + rechargeCfg.time, config.id}
|
97807511
zhouhaihai
增加日志
|
602
603
|
self.owner:log("push_gift", {
gift_id = rechargeCfg.id, --礼包ID
|
a33ade6c
测试
rmb礼包改钻石礼包
|
604
|
gift_name = rechargeCfg.descId, --礼包名称
|
97807511
zhouhaihai
增加日志
|
605
|
})
|
bf096b07
测试
每日抽卡限时礼包触发时,清空购买记录
|
606
607
|
-- 每日抽卡限时礼包 触发重置
if eventType == TriggerEventType.DrawHeroCnt then
|
a33ade6c
测试
rmb礼包改钻石礼包
|
608
|
local payR = self:getProperty("buyR")
|
bf096b07
测试
每日抽卡限时礼包触发时,清空购买记录
|
609
610
|
if payR[rechargeCfg.id] then
payR[rechargeCfg.id] = nil
|
a33ade6c
测试
rmb礼包改钻石礼包
|
611
|
self:updateProperty({field = "buyR", value = payR})
|
bf096b07
测试
每日抽卡限时礼包触发时,清空购买记录
|
612
613
|
end
end
|
5226a156
测试
每日抽卡礼包bug
|
614
|
self:updateProperty({field = "limitTPack", value = limitPack})
|
9ea0c502
测试
限时礼包
|
615
616
|
end
end
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
617
618
619
|
--if next(result) then
-- self:updateProperty({field = "packTrigger", value = triggerRecord})
--end
|
9ea0c502
测试
限时礼包
|
620
621
|
end
|
51d9d20b
测试
付费签到,应用市场反馈
|
622
623
624
625
|
function GetActGoodsIndex(goodsType)
return ActGoodsType[goodsType] or 0
end
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
626
|
function Store:SetActGoodsFlag(goodsType, flag)
|
51d9d20b
测试
付费签到,应用市场反馈
|
627
|
local actGoodsFlag = self:getProperty("actGoodsFlag") or {}
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
628
|
local goodsIndex = GetActGoodsIndex(goodsType)
|
51d9d20b
测试
付费签到,应用市场反馈
|
629
630
631
632
|
if goodsIndex == 0 then
print("get act goods index fail :paySignIn")
return
end
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
633
|
actGoodsFlag[goodsIndex] = flag
|
53b4b8bd
测试
自动挂机下一关
|
634
|
self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag})
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
635
|
end
|
51d9d20b
测试
付费签到,应用市场反馈
|
636
|
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
637
638
639
|
-- 购买付费签到 按开服时间算奖励
function Store:onBuyPaySignCard(dur)
local curTs = skynet.timex()
|
d4d00016
测试
付费签到开始时间改为开服时间
|
640
|
curTs = getServerOpenTs()
|
51d9d20b
测试
付费签到,应用市场反馈
|
641
|
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
642
|
self:SetActGoodsFlag("paySignIn", curTs)
|
ede282c0
测试
付费签到规则改为按登录天数计算进度...
|
643
644
645
|
local actData = self.owner.activity:getActData("PaySignIn")
actData[0] = 1
self.owner.activity:updateActData("PaySignIn", actData)
|
460afa6e
测试
付费签到改为主动领取,战斗关卡不一...
|
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
|
--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
测试
付费签到,应用市场反馈
|
670
671
672
673
674
675
676
677
678
679
|
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
测试
新增cb2临时限时礼包
|
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
|
-- 临时用 登录触发限时礼包 时间点以后
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: 月卡解锁的日/周商店随...
|
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
781
782
783
784
785
786
787
788
|
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
新增用户商城相关数据
|
789
|
function Store:data()
|
f7a55da3
测试
新增cb2临时限时礼包
|
790
|
self:OnTriggerLimitTimePackAfterTs(TriggerEventType.AfterTs, skynet.timex())
|
c5825110
saicom
新增用户商城相关数据
|
791
|
return {
|
3e20f499
测试
完善商城相关协议
|
792
793
794
795
796
|
buyR = self:getProperty("buyR"),
payR = self:getProperty("payR"),
growFund = self:getProperty("growFund"),
growFundR = self:getProperty("growFundR"),
monthCardEx = self:getProperty("monthCardEx"),
|
fb3d084d
测试
月卡赛季卡发送邮件奖励
|
797
798
799
|
battleCard = self:getProperty("battleCard"),
battleFR = self:getProperty("battleFR"),
battleLR = self:getProperty("battleLR"),
|
3e20f499
测试
完善商城相关协议
|
800
|
limitTPack = self:getProperty("limitTPack"),
|
317a46a9
测试
添加特权卡
|
801
|
privCardEx = self:getProperty("privCardEx"),
|
00bf6029
测试
限时礼包,抽卡ssr广播
|
802
|
--packTrigger = self:getProperty("packTrigger"),
|
51d9d20b
测试
付费签到,应用市场反馈
|
803
804
|
actGoodsFlag = self:getProperty("actGoodsFlag"),
bpInfo = self:getProperty("bpInfo"),
|
4f7cffe5
测试
多队挂机任务取消功能,累充奖励
|
805
|
totalRR = self:getProperty("totalRR"),
|
2e283f60
测试
月卡升级
|
806
|
monthCardId = self:getProperty("monthCardId"),
|
cddfa602
zhangqijia
feat: 月卡解锁的日/周商店随...
|
807
808
809
810
|
smonthCards = self:getProperty("smonthCards"),
smonthCardReceive = self:getProperty("smonthCardReceive"),
dailyShop = self:getProperty("dailyShop"),
weekShop = self:getProperty("weekShop"),
|
c5825110
saicom
新增用户商城相关数据
|
811
812
813
814
|
}
end
return Store
|