Commit 09edeae630dbac02a6b13c77d55aa55cb378e923

Authored by zhouhaihai
2 parents abed32ed 44d8a134

Merge branch 'bugfix' into qa

* bugfix:
  活动以类型标识,修改双倍活动bug
  伤害计算
  数据保护
  数据保护
  充值 gm
  结算rmb
  客户端要用到角色创建时间
  两个记录bug
  新设备
  遗失的log
src/actions/DinerAction.lua
@@ -901,6 +901,7 @@ function _M.entrustRpc(agent , data) @@ -901,6 +901,7 @@ function _M.entrustRpc(agent , data)
901 901
902 role:finishGuide(26) 902 role:finishGuide(26)
903 role:mylog("diner_action", {desc = "entrus", short1 = ctype, int1 = entrustId}) 903 role:mylog("diner_action", {desc = "entrus", short1 = ctype, int1 = entrustId})
  904 + role:checkTaskEnter("VillageApply", {})
904 905
905 SendPacket(actionCodes.Diner_entrustRpc, MsgPack.pack({reward = reward, change = change})) 906 SendPacket(actionCodes.Diner_entrustRpc, MsgPack.pack({reward = reward, change = change}))
906 return true 907 return true
src/actions/GmAction.lua
@@ -27,6 +27,7 @@ function _M.ignoreout(role, pms) @@ -27,6 +27,7 @@ function _M.ignoreout(role, pms)
27 else -- 解除 27 else -- 解除
28 role:updateProperty({field = "ignoreMt", value = 0}) 28 role:updateProperty({field = "ignoreMt", value = 0})
29 end 29 end
  30 + role:mylog("gm_action", {desc = "ignoreout", key1 = pms.sender})
30 return "指令生效" 31 return "指令生效"
31 end 32 end
32 33
@@ -46,11 +47,17 @@ function _M.ban(role, pms) @@ -46,11 +47,17 @@ function _M.ban(role, pms)
46 end) 47 end)
47 end 48 end
48 end 49 end
  50 +
  51 + role:mylog("gm_action", {desc = "ban", int1 = time, int2 = ctype, key1 = pms.sender})
  52 +
49 return isBan and "解封杀成功" or "封杀成功" 53 return isBan and "解封杀成功" or "封杀成功"
50 end 54 end
51 55
52 function _M.unban(role, pms) 56 function _M.unban(role, pms)
53 role:setBan(0, 0) 57 role:setBan(0, 0)
  58 +
  59 + role:mylog("gm_action", {desc = "unban", key1 = pms.sender})
  60 +
54 return "解封杀成功" 61 return "解封杀成功"
55 end 62 end
56 63
@@ -63,6 +70,8 @@ function _M.gmmsg(role, pms) @@ -63,6 +70,8 @@ function _M.gmmsg(role, pms)
63 skynet.call(agent.gate_serv, "lua", "forcekick", agent.fd) 70 skynet.call(agent.gate_serv, "lua", "forcekick", agent.fd)
64 end) 71 end)
65 end 72 end
  73 + role:mylog("gm_action", {desc = "gmmsg", text1 = pms.pm1, key1 = pms.sender})
  74 +
66 return "指令成功" 75 return "指令成功"
67 end 76 end
68 77
@@ -73,6 +82,8 @@ function _M.silent(role, pms) @@ -73,6 +82,8 @@ function _M.silent(role, pms)
73 return "解禁言成功" 82 return "解禁言成功"
74 end 83 end
75 role:updateProperty({field = "silent", value = specTime({hour = 0}, skynet.timex()) + pm1 * 86400}) 84 role:updateProperty({field = "silent", value = specTime({hour = 0}, skynet.timex()) + pm1 * 86400})
  85 +
  86 + role:mylog("gm_action", {desc = "silent", int1 = pms.pm1, key1 = pms.sender})
76 return "禁言成功" 87 return "禁言成功"
77 end 88 end
78 89
@@ -90,6 +101,8 @@ function _M.hero(role, pms) @@ -90,6 +101,8 @@ function _M.hero(role, pms)
90 if not role:addHero({type = heroType, log = {desc = "gm"}}) then 101 if not role:addHero({type = heroType, log = {desc = "gm"}}) then
91 return "失败" 102 return "失败"
92 end 103 end
  104 +
  105 + role:mylog("gm_action", {desc = "hero", int1 = heroType, key1 = pms.sender})
93 return "成功" 106 return "成功"
94 end 107 end
95 108
@@ -122,6 +135,8 @@ function _M.herol(role, pms) @@ -122,6 +135,8 @@ function _M.herol(role, pms)
122 hero:updateProperty({field = "level", delta = addLevel}) 135 hero:updateProperty({field = "level", delta = addLevel})
123 role:checkTaskEnter("HeroLevelUp", {level = hero:getProperty("level")}) 136 role:checkTaskEnter("HeroLevelUp", {level = hero:getProperty("level")})
124 137
  138 + role:mylog("gm_action", {desc = "herol", int1 = heroType, int2 = addLevel, key1 = pms.sender})
  139 +
125 return "成功" 140 return "成功"
126 end 141 end
127 142
@@ -133,6 +148,8 @@ function _M.herola(role, pms) @@ -133,6 +148,8 @@ function _M.herola(role, pms)
133 _M.herol(role, {pm1 = hero:getProperty("type"), pm2 = addLevel}) 148 _M.herol(role, {pm1 = hero:getProperty("type"), pm2 = addLevel})
134 end 149 end
135 150
  151 + role:mylog("gm_action", {desc = "herola", int1 = addLevel, key1 = pms.sender})
  152 +
136 return "成功" 153 return "成功"
137 end 154 end
138 155
@@ -143,6 +160,7 @@ function _M.equip(role, pms) @@ -143,6 +160,7 @@ function _M.equip(role, pms)
143 local level = tonum(pms.pm2) 160 local level = tonum(pms.pm2)
144 local count = tonum(pms.pm3) 161 local count = tonum(pms.pm3)
145 role:addEquip(typ, level, count, {log = {desc = "gm"}}) 162 role:addEquip(typ, level, count, {log = {desc = "gm"}})
  163 + role:mylog("gm_action", {desc = "equip", int1 = typ, int2 = level, long1 = count, key1 = pms.sender})
146 return "成功" 164 return "成功"
147 end 165 end
148 166
@@ -151,6 +169,7 @@ function _M.rune(role, pms) @@ -151,6 +169,7 @@ function _M.rune(role, pms)
151 local typ = tonum(pms.pm1) 169 local typ = tonum(pms.pm1)
152 local id = tonum(pms.pm2) 170 local id = tonum(pms.pm2)
153 local result = role:addRune({type = typ,id = id, log = {desc = "gm"}}) 171 local result = role:addRune({type = typ,id = id, log = {desc = "gm"}})
  172 + role:mylog("gm_action", {desc = "rune", int1 = typ, int2 = id, key1 = pms.sender})
154 173
155 return result 174 return result
156 end 175 end
@@ -171,6 +190,8 @@ function _M.fb(role, pms) -- 直接通关 @@ -171,6 +190,8 @@ function _M.fb(role, pms) -- 直接通关
171 role:hangFinish(carbonId) 190 role:hangFinish(carbonId)
172 addPre(carbonId) 191 addPre(carbonId)
173 192
  193 + role:mylog("gm_action", {desc = "fb", int1 = carbonId, key1 = pms.sender})
  194 +
174 role:checkTaskEnter("HangPass", {id = carbonId}) 195 role:checkTaskEnter("HangPass", {id = carbonId})
175 return "成功" 196 return "成功"
176 end 197 end
@@ -191,6 +212,8 @@ function _M.fbc(role, pms) -- 直接通关 @@ -191,6 +212,8 @@ function _M.fbc(role, pms) -- 直接通关
191 end 212 end
192 role:updateProperty({field = "hangPass", value = {}}) 213 role:updateProperty({field = "hangPass", value = {}})
193 addPre(carbonId) 214 addPre(carbonId)
  215 +
  216 + role:mylog("gm_action", {desc = "fbc", int1 = carbonId, key1 = pms.sender})
194 217
195 return "成功" 218 return "成功"
196 end 219 end
@@ -224,6 +247,8 @@ function _M.exp(role, pms) @@ -224,6 +247,8 @@ function _M.exp(role, pms)
224 exp = math.floor(math.max(exp, 0)) 247 exp = math.floor(math.max(exp, 0))
225 role:addPlayExp(exp, {log = {desc = "gm"}}) 248 role:addPlayExp(exp, {log = {desc = "gm"}})
226 249
  250 + role:mylog("gm_action", {desc = "exp", int1 = exp, key1 = pms.sender})
  251 +
227 return "成功" 252 return "成功"
228 end 253 end
229 254
@@ -280,6 +305,7 @@ function _M.get(role, pms) @@ -280,6 +305,7 @@ function _M.get(role, pms)
280 end 305 end
281 local count = tonum(pms.pm2, 1) 306 local count = tonum(pms.pm2, 1)
282 role:award({[itemId] = count}, {log = {desc = "gm"}}) 307 role:award({[itemId] = count}, {log = {desc = "gm"}})
  308 + role:mylog("gm_action", {desc = "get", int1 = itemId, int2 = count, key1 = pms.sender})
283 end 309 end
284 return "成功" 310 return "成功"
285 end 311 end
@@ -303,6 +329,9 @@ function _M.advc(role, pms) @@ -303,6 +329,9 @@ function _M.advc(role, pms)
303 advAFWear = {}, 329 advAFWear = {},
304 }, notNotify) 330 }, notNotify)
305 role.advData = nil 331 role.advData = nil
  332 +
  333 + role:mylog("gm_action", {desc = "advc", key1 = pms.sender})
  334 +
306 return "成功" 335 return "成功"
307 end 336 end
308 337
@@ -311,6 +340,8 @@ function _M.advf(role, pms) @@ -311,6 +340,8 @@ function _M.advf(role, pms)
311 role:updateProperty({field = "advC", value = 0}) 340 role:updateProperty({field = "advC", value = 0})
312 role.dailyData:updateProperty({field = "advElC", value = 0}) 341 role.dailyData:updateProperty({field = "advElC", value = 0})
313 342
  343 + role:mylog("gm_action", {desc = "advf", key1 = pms.sender})
  344 +
314 return "成功" 345 return "成功"
315 end 346 end
316 347
@@ -330,6 +361,7 @@ function _M.adv(role, pms) @@ -330,6 +361,7 @@ function _M.adv(role, pms)
330 advPass[chapterId] = layer 361 advPass[chapterId] = layer
331 role:updateProperty({field = "advPass", value = advPass}) 362 role:updateProperty({field = "advPass", value = advPass})
332 end 363 end
  364 + role:mylog("gm_action", {desc = "adv", int1 = chapterId, int2 = layer, key1 = pms.sender})
333 365
334 return "成功" 366 return "成功"
335 end 367 end
@@ -356,6 +388,7 @@ function _M.advt(role, pms) @@ -356,6 +388,7 @@ function _M.advt(role, pms)
356 isEnter = true, 388 isEnter = true,
357 debugMapId = mapId, 389 debugMapId = mapId,
358 }) 390 })
  391 + role:mylog("gm_action", {desc = "advt", int1 = chapterId, int2 = layer, key1 = pms.sender})
359 return "成功" 392 return "成功"
360 end 393 end
361 394
@@ -364,6 +397,8 @@ function _M.advl(role, pms) @@ -364,6 +397,8 @@ function _M.advl(role, pms)
364 local exp = tonum(pms.pm1) 397 local exp = tonum(pms.pm1)
365 role:addAdvLvExp(math.max(0, exp)) 398 role:addAdvLvExp(math.max(0, exp))
366 399
  400 + role:mylog("gm_action", {desc = "advl", int1 = exp, key1 = pms.sender})
  401 +
367 return "成功" 402 return "成功"
368 end 403 end
369 404
@@ -377,6 +412,7 @@ function _M.advcl(role, pms) @@ -377,6 +412,7 @@ function _M.advcl(role, pms)
377 end 412 end
378 advData.battle.player:addExp(exp) 413 advData.battle.player:addExp(exp)
379 advData:saveDB() 414 advData:saveDB()
  415 + role:mylog("gm_action", {desc = "advcl", int1 = exp, key1 = pms.sender})
380 416
381 return "成功" 417 return "成功"
382 end 418 end
@@ -386,6 +422,7 @@ function _M.idlec(role, pms) @@ -386,6 +422,7 @@ function _M.idlec(role, pms)
386 role:updateProperty({field = "hangTeam", value = {}}) 422 role:updateProperty({field = "hangTeam", value = {}})
387 role:updateProperty({field = "hangInfo", value = {}}) 423 role:updateProperty({field = "hangInfo", value = {}})
388 role:updateProperty({field = "hangBag", value = {}}) 424 role:updateProperty({field = "hangBag", value = {}})
  425 + role:mylog("gm_action", {desc = "idlec", key1 = pms.sender})
389 426
390 role.advData = nil 427 role.advData = nil
391 return "成功" 428 return "成功"
@@ -410,6 +447,8 @@ function _M.advit(role, pms) @@ -410,6 +447,8 @@ function _M.advit(role, pms)
410 local itemId = tonum(pms.pm1) 447 local itemId = tonum(pms.pm1)
411 local count = tonum(pms.pm2) 448 local count = tonum(pms.pm2)
412 reward[itemId] = count 449 reward[itemId] = count
  450 +
  451 + role:mylog("gm_action", {desc = "advit", int1 = itemId, int2 = count, key1 = pms.sender})
413 end 452 end
414 453
415 454
@@ -425,6 +464,8 @@ function _M.tower(role, pms) @@ -425,6 +464,8 @@ function _M.tower(role, pms)
425 if not csvdb["tower_battleCsv"][level] then return "不存在" end 464 if not csvdb["tower_battleCsv"][level] then return "不存在" end
426 role:updateProperty({field = "towerInfo", value = {c = globalCsv.tower_count_limit, l = level}}) 465 role:updateProperty({field = "towerInfo", value = {c = globalCsv.tower_count_limit, l = level}})
427 466
  467 + role:mylog("gm_action", {desc = "tower", int1 = level, key1 = pms.sender})
  468 +
428 return "成功" 469 return "成功"
429 end 470 end
430 471
@@ -443,6 +484,8 @@ function _M.email(role, pms) @@ -443,6 +484,8 @@ function _M.email(role, pms)
443 rewardPms = id ~= 0 and reward or nil, 484 rewardPms = id ~= 0 and reward or nil,
444 }) 485 })
445 486
  487 + role:mylog("gm_action", {desc = "email", int1 = id, key1 = pms.sender})
  488 +
446 return "成功" 489 return "成功"
447 end 490 end
448 491
@@ -461,6 +504,8 @@ function _M.guide(role, pms) @@ -461,6 +504,8 @@ function _M.guide(role, pms)
461 end 504 end
462 end 505 end
463 role:updateProperty({field = "funcGuide", value = str}) 506 role:updateProperty({field = "funcGuide", value = str})
  507 + role:mylog("gm_action", {desc = "sguide", key1 = pms.sender})
  508 +
464 elseif cmd == "RESET" then 509 elseif cmd == "RESET" then
465 local id = tonum(pms.pm2, 0) 510 local id = tonum(pms.pm2, 0)
466 if id == 0 then 511 if id == 0 then
@@ -473,6 +518,8 @@ function _M.guide(role, pms) @@ -473,6 +518,8 @@ function _M.guide(role, pms)
473 elseif id == 2 then 518 elseif id == 2 then
474 role:updateProperty({field = "funcGuide", value = ""}) 519 role:updateProperty({field = "funcGuide", value = ""})
475 end 520 end
  521 + role:mylog("gm_action", {desc = "cguide", int1 = id, key1 = pms.sender})
  522 +
476 end 523 end
477 524
478 return "成功" 525 return "成功"
@@ -496,4 +543,21 @@ function _M.ayncPurchase(role, params) @@ -496,4 +543,21 @@ function _M.ayncPurchase(role, params)
496 return role:handlePurchase(params) or "" 543 return role:handlePurchase(params) or ""
497 end 544 end
498 545
  546 +function _M.cz(role, pms)
  547 + local id = tonum(pms.pm1)
  548 + local csvData = csvdb["shop_rechargeCsv"][id]
  549 + if not csvData then
  550 + return "充值id错误, 查看shop_recharge.csv"
  551 + end
  552 + role:recharge({
  553 + id = id,
  554 + transactionId = "GM",
  555 + order = "GM",
  556 + pay_time = skynet.timex(),
  557 + })
  558 + role:mylog("gm_action", {desc = "recharge", int1 = id, key1 = pms.sender})
  559 + return "指令成功"
  560 +end
  561 +
  562 +
499 return _M 563 return _M
500 \ No newline at end of file 564 \ No newline at end of file
src/actions/HangAction.lua
@@ -166,7 +166,7 @@ function _M.startRpc( agent, data ) @@ -166,7 +166,7 @@ function _M.startRpc( agent, data )
166 elseif carbonId == 10220 then 166 elseif carbonId == 10220 then
167 role:saveGuide(22,1) 167 role:saveGuide(22,1)
168 end 168 end
169 - 169 + role:mylog("hang_action", {desc = "startHang", int1 = carbonId})
170 SendPacket(actionCodes.Hang_startRpc, '') 170 SendPacket(actionCodes.Hang_startRpc, '')
171 return true 171 return true
172 end 172 end
@@ -289,6 +289,9 @@ function _M.endBattleRpc(agent, data) @@ -289,6 +289,9 @@ function _M.endBattleRpc(agent, data)
289 reward = reward, 289 reward = reward,
290 }) 290 })
291 291
  292 + local team = role:getProperty("pvpTC")
  293 + role:mylog("hang_action", {desc = "hangBattle", short1 = msg.starNum > 0 and 1 or 0, int1 = carbonId, int2 = role:getProperty("hangTBV"), cint1 = role:getHerosCamp(team.heros)})
  294 +
292 SendPacket(actionCodes.Hang_endBattleRpc, MsgPack.pack({ 295 SendPacket(actionCodes.Hang_endBattleRpc, MsgPack.pack({
293 starNum = msg.starNum, 296 starNum = msg.starNum,
294 reward = reward, 297 reward = reward,
@@ -409,10 +412,9 @@ function _M.quickRpc(agent , data) @@ -409,10 +412,9 @@ function _M.quickRpc(agent , data)
409 end 412 end
410 413
411 local doubleCoef = role.activity:isOpen("DoubleDrop") and 2 or 1 414 local doubleCoef = role.activity:isOpen("DoubleDrop") and 2 or 1
412 -  
413 -- 特权卡获取加速获得额外道具 415 -- 特权卡获取加速获得额外道具
414 local coef = role.storeData:getProduceItemSpeedCoef() 416 local coef = role.storeData:getProduceItemSpeedCoef()
415 - if coef > 1 then 417 + if coef > 1 or doubleCoef > 1 then
416 for k, cnt in pairs(reward) do 418 for k, cnt in pairs(reward) do
417 reward[k] = math.floor(cnt * coef * doubleCoef) 419 reward[k] = math.floor(cnt * coef * doubleCoef)
418 end 420 end
@@ -479,10 +481,15 @@ function _M.buyBonusCountRpc(agent, data) @@ -479,10 +481,15 @@ function _M.buyBonusCountRpc(agent, data)
479 local btype = msg.type 481 local btype = msg.type
480 482
481 if not TimeReset["DailyBattle" .. btype] then return end 483 if not TimeReset["DailyBattle" .. btype] then return end
  484 + local open, actId = role.activity:isOpen("BonusDouble")
  485 + local actData = csvdb["activity_ctrlCsv"][actId]
  486 + if not actData then return end
  487 +
  488 + local coef = open and tonumber(actData.condition2) or 1
482 489
483 local bonusC = role.dailyData:getProperty("bonusC") 490 local bonusC = role.dailyData:getProperty("bonusC")
484 bonusC[btype] = bonusC[btype] or {c = 0, b = 0} 491 bonusC[btype] = bonusC[btype] or {c = 0, b = 0}
485 - local lastCount = globalCsv.bonus_daily_buy_count - bonusC[btype]["b"] 492 + local lastCount = globalCsv.bonus_daily_buy_count * coef - bonusC[btype]["b"]
486 if math.illegalNum(count, 1, lastCount) then return 1 end 493 if math.illegalNum(count, 1, lastCount) then return 1 end
487 494
488 if not role:checkItemEnough({[ItemId.Diamond] = globalCsv.bonus_buy_cost * count}) then return 2 end 495 if not role:checkItemEnough({[ItemId.Diamond] = globalCsv.bonus_buy_cost * count}) then return 2 end
@@ -502,20 +509,30 @@ function _M.startBonusBattleRpc(agent, data) @@ -502,20 +509,30 @@ function _M.startBonusBattleRpc(agent, data)
502 local msg = MsgPack.unpack(data) 509 local msg = MsgPack.unpack(data)
503 local id = msg.id 510 local id = msg.id
504 511
505 - if not role:isFuncUnlock(FuncUnlock.BonusBattle) then return end 512 + local open, actId = role.activity:isOpen("BonusDouble")
  513 +
  514 + if not role:isFuncUnlock(FuncUnlock.BonusBattle) then return 1 end
506 515
507 local bonusData = csvdb["bonus_battleCsv"][id] 516 local bonusData = csvdb["bonus_battleCsv"][id]
508 517
509 - if not role:isTimeResetOpen(TimeReset["DailyBattle" .. bonusData.type]) then return end 518 + if not open then
  519 + if not role:isTimeResetOpen(TimeReset["DailyBattle" .. bonusData.type]) then return 2 end
  520 + end
510 521
511 - if not bonusData then return 1 end  
512 - if not role:checkHangPass(bonusData.unlock) then return 2 end 522 + if not bonusData then return 3 end
  523 + if not role:checkHangPass(bonusData.unlock) then return 4 end
513 524
514 - if not next(role:getProperty("bTeam")) then return 3 end 525 + if not next(role:getProperty("bTeam")) then return 5 end
515 526
516 local bonusC = role.dailyData:getProperty("bonusC") 527 local bonusC = role.dailyData:getProperty("bonusC")
517 bonusC[bonusData.type] = bonusC[bonusData.type] or {c = 0, b = 0} 528 bonusC[bonusData.type] = bonusC[bonusData.type] or {c = 0, b = 0}
518 - if globalCsv.bonus_daily_count - bonusC[bonusData.type]["c"] <= 0 then return 4 end 529 +
  530 + local actData = csvdb["activity_ctrlCsv"][actId]
  531 + if not actData then return 6 end
  532 +
  533 + local coef = open and tonumber(actData.condition2) or 1
  534 +
  535 + if globalCsv.bonus_daily_count * coef - bonusC[bonusData.type]["c"] <= 0 then return 7 end
519 536
520 537
521 role.__bonusBattleCache = { 538 role.__bonusBattleCache = {
@@ -533,6 +550,11 @@ function _M.endBonusBattleRpc(agent, data) @@ -533,6 +550,11 @@ function _M.endBonusBattleRpc(agent, data)
533 local key = msg.key 550 local key = msg.key
534 local starNum = msg.starNum 551 local starNum = msg.starNum
535 if not role.__bonusBattleCache then return 1 end 552 if not role.__bonusBattleCache then return 1 end
  553 + local open, actId = role.activity:isOpen("BonusDouble")
  554 + local actData = csvdb["activity_ctrlCsv"][actId]
  555 + if not actData then return end
  556 +
  557 + local coef = open and tonumber(actData.condition2) or 1
536 558
537 if role.__bonusBattleCache.id ~= id or role.__bonusBattleCache.key ~= key then 559 if role.__bonusBattleCache.id ~= id or role.__bonusBattleCache.key ~= key then
538 SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({errorCode = 1})) 560 SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({errorCode = 1}))
@@ -545,7 +567,7 @@ function _M.endBonusBattleRpc(agent, data) @@ -545,7 +567,7 @@ function _M.endBonusBattleRpc(agent, data)
545 -- 胜利扣除次数 567 -- 胜利扣除次数
546 local bonusC = role.dailyData:getProperty("bonusC") 568 local bonusC = role.dailyData:getProperty("bonusC")
547 bonusC[bonusData.type] = bonusC[bonusData.type] or {c = 0, b = 0} 569 bonusC[bonusData.type] = bonusC[bonusData.type] or {c = 0, b = 0}
548 - if globalCsv.bonus_daily_count - bonusC[bonusData.type]["c"] <= 0 then return 3 end 570 + if globalCsv.bonus_daily_count * coef - bonusC[bonusData.type]["c"] <= 0 then return 3 end
549 bonusC[bonusData.type]["c"] = bonusC[bonusData.type]["c"] + 1 571 bonusC[bonusData.type]["c"] = bonusC[bonusData.type]["c"] + 1
550 role.dailyData:updateProperty({field = "bonusC", value = bonusC}) 572 role.dailyData:updateProperty({field = "bonusC", value = bonusC})
551 573
@@ -554,6 +576,9 @@ function _M.endBonusBattleRpc(agent, data) @@ -554,6 +576,9 @@ function _M.endBonusBattleRpc(agent, data)
554 if chance[1] ~= 0 then 576 if chance[1] ~= 0 then
555 reward[chance[1]] = (reward[chance[1]] or 0) + chance[2] 577 reward[chance[1]] = (reward[chance[1]] or 0) + chance[2]
556 end 578 end
  579 + for k, v in pairs(reward) do
  580 + reward[k] = v * (coef > 1 and actData.condition or 1)
  581 + end
557 reward, change = role:award(reward, {log = {desc = "bonusBattle", int1 = id}}) 582 reward, change = role:award(reward, {log = {desc = "bonusBattle", int1 = id}})
558 role:checkTaskEnter("BonusPass", {id = id}) 583 role:checkTaskEnter("BonusPass", {id = id})
559 end 584 end
@@ -564,6 +589,8 @@ function _M.endBonusBattleRpc(agent, data) @@ -564,6 +589,8 @@ function _M.endBonusBattleRpc(agent, data)
564 info = msg.info, 589 info = msg.info,
565 reward = reward, 590 reward = reward,
566 }) 591 })
  592 + role:mylog("hang_action", {desc = "bonusBattle", short1 = msg.starNum > 0 and 1 or 0, int1 = id})
  593 +
567 SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({ 594 SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({
568 starNum = starNum, 595 starNum = starNum,
569 reward = reward, 596 reward = reward,
@@ -586,6 +613,7 @@ function _M.hangGiftRpc(agent, data) @@ -586,6 +613,7 @@ function _M.hangGiftRpc(agent, data)
586 local reward, change = role:award(carbonData.item_clear_special, {log = {desc = "hangGift", int1 = id}}) 613 local reward, change = role:award(carbonData.item_clear_special, {log = {desc = "hangGift", int1 = id}})
587 614
588 role:changeUpdates({{type = "hangGift", field = id, value = 1}}) 615 role:changeUpdates({{type = "hangGift", field = id, value = 1}})
  616 + role:mylog("hang_action", {desc = "hangGift", int1 = id})
589 617
590 SendPacket(actionCodes.Hang_hangGiftRpc, MsgPack.pack({reward = reward, change = change})) 618 SendPacket(actionCodes.Hang_hangGiftRpc, MsgPack.pack({reward = reward, change = change}))
591 return true 619 return true
src/actions/HeroAction.lua
@@ -721,7 +721,7 @@ function _M.drawHeroRpc(agent, data) @@ -721,7 +721,7 @@ function _M.drawHeroRpc(agent, data)
721 local role = agent.role 721 local role = agent.role
722 local msg = MsgPack.unpack(data) 722 local msg = MsgPack.unpack(data)
723 723
724 - if not role:isFuncUnlock(FuncUnlock.GetHero) then return end 724 + if not role:isFuncUnlock(FuncUnlock.GetHero) then return 1 end
725 local btype = msg.pool -- 1 2 3 卡池类型 725 local btype = msg.pool -- 1 2 3 卡池类型
726 local subType = msg.subType or 1-- 定向卡池需要传 子类型 726 local subType = msg.subType or 1-- 定向卡池需要传 子类型
727 local drawType = msg.type -- 1 单抽 2 十连 727 local drawType = msg.type -- 1 单抽 2 十连
@@ -730,10 +730,10 @@ function _M.drawHeroRpc(agent, data) @@ -730,10 +730,10 @@ function _M.drawHeroRpc(agent, data)
730 end 730 end
731 731
732 local buildTypeData = csvdb["build_typeCsv"][btype] 732 local buildTypeData = csvdb["build_typeCsv"][btype]
733 - if not buildTypeData then return 1 end 733 + if not buildTypeData then return 2 end
734 734
735 local drawCount = {1, 10} -- 抽取次数 735 local drawCount = {1, 10} -- 抽取次数
736 - if not drawCount[drawType] then return 2 end 736 + if not drawCount[drawType] then return 3 end
737 737
738 local draw_floor_back_counts = globalCsv.draw_floor_back_counts[btype] 738 local draw_floor_back_counts = globalCsv.draw_floor_back_counts[btype]
739 local floorHeroCount = role:getProperty("floorHero")[btype] or 0 739 local floorHeroCount = role:getProperty("floorHero")[btype] or 0
@@ -757,20 +757,20 @@ function _M.drawHeroRpc(agent, data) @@ -757,20 +757,20 @@ function _M.drawHeroRpc(agent, data)
757 end 757 end
758 end 758 end
759 if lastCount > 0 then -- 钱不够 759 if lastCount > 0 then -- 钱不够
760 - return 3 760 + return 4
761 end 761 end
762 762
763 -- 抽取的池子 763 -- 抽取的池子
764 local poolMap = buildTypeData["pool"]:toNumMap() 764 local poolMap = buildTypeData["pool"]:toNumMap()
765 local poolId = poolMap[subType] 765 local poolId = poolMap[subType]
766 - if not poolId then return end 766 + if not poolId then return 5 end
767 767
768 --判断定向卡池是否开启 768 --判断定向卡池是否开启
769 if btype == 1 then 769 if btype == 1 then
770 if not role:isTimeResetOpen(TimeReset["DrawType" .. subType]) then 770 if not role:isTimeResetOpen(TimeReset["DrawType" .. subType]) then
771 local unlockPool = role.dailyData:getProperty("unlockPool") 771 local unlockPool = role.dailyData:getProperty("unlockPool")
772 if not unlockPool[subType] then 772 if not unlockPool[subType] then
773 - return 1 773 + return 6
774 end 774 end
775 end 775 end
776 end 776 end
@@ -782,12 +782,12 @@ function _M.drawHeroRpc(agent, data) @@ -782,12 +782,12 @@ function _M.drawHeroRpc(agent, data)
782 end 782 end
783 783
784 local unitPool = csvdb["build_unitCsv"][poolId] 784 local unitPool = csvdb["build_unitCsv"][poolId]
785 - if not unitPool then return 4 end 785 + if not unitPool then return 7 end
786 786
787 -- 开始抽 787 -- 开始抽
788 local resultPool = {} 788 local resultPool = {}
789 local function fillDrawPool(isFloorBack) 789 local function fillDrawPool(isFloorBack)
790 - local condition = {"rare", "camp"} 790 + local condition = {"rare"}
791 local values = {} 791 local values = {}
792 792
793 793
@@ -848,7 +848,7 @@ function _M.drawHeroRpc(agent, data) @@ -848,7 +848,7 @@ function _M.drawHeroRpc(agent, data)
848 fillDrawPool(isFloorBack) 848 fillDrawPool(isFloorBack)
849 if not next(resultPool) then 849 if not next(resultPool) then
850 skynet.error("random pool error, poolId:" .. poolId) 850 skynet.error("random pool error, poolId:" .. poolId)
851 - return 851 + return 8
852 end 852 end
853 853
854 local itemId = math.randWeight(resultPool, 1) 854 local itemId = math.randWeight(resultPool, 1)
src/actions/RoleAction.lua
@@ -292,7 +292,10 @@ function _M.loginRpc( agent, data ) @@ -292,7 +292,10 @@ function _M.loginRpc( agent, data )
292 292
293 local hangPass = role:getProperty("hangPass") 293 local hangPass = role:getProperty("hangPass")
294 role:log("onLogin") 294 role:log("onLogin")
295 - 295 + role:mylog("login", {key1 = agent.ip:toArray(false, ":")[1], int1 = hangPass[1] or 0})
  296 + if msg.newdevice then
  297 + role:mylog("newdevice", {key1 = agent.ip:toArray(false, ":")[1]})
  298 + end
296 return true 299 return true
297 end 300 end
298 301
@@ -359,7 +362,10 @@ function _M.createRpc(agent, data) @@ -359,7 +362,10 @@ function _M.createRpc(agent, data)
359 newRole:log("onCreateAccount") 362 newRole:log("onCreateAccount")
360 end 363 end
361 newRole:log("onCreateRole") 364 newRole:log("onCreateRole")
362 - 365 + newRole:mylog("create", {key1 = agent.ip:toArray(false, ":")[1]})
  366 + if msg.newdevice then
  367 + newRole:mylog("newdevice", {key1 = agent.ip:toArray(false, ":")[1]})
  368 + end
363 369
364 SendPacket(actionCodes.Role_createRpc, MsgPack.pack(response)) 370 SendPacket(actionCodes.Role_createRpc, MsgPack.pack(response))
365 return true 371 return true
@@ -552,7 +558,7 @@ function _M.openTimeBoxRpc(agent, data) @@ -552,7 +558,7 @@ function _M.openTimeBoxRpc(agent, data)
552 if boxL[slot].time > skynet.timex() then -- 没开完 558 if boxL[slot].time > skynet.timex() then -- 没开完
553 if not quick then return end 559 if not quick then return end
554 local cost_pre = globalCsv.box_timeOpen_diamond:toArray(true, "=") 560 local cost_pre = globalCsv.box_timeOpen_diamond:toArray(true, "=")
555 - local costKey = math.ceil((boxL[slot].time - skynet.timex()) / (cost_pre[1] * 60)) * cost_pre[2] 561 + costKey = math.ceil((boxL[slot].time - skynet.timex()) / (cost_pre[1] * 60)) * cost_pre[2]
556 if not role:checkItemEnough({[ItemId.BoxKey] = costKey}) then return end 562 if not role:checkItemEnough({[ItemId.BoxKey] = costKey}) then return end
557 role:costItems({[ItemId.BoxKey] = costKey}, {log = {desc = "openTimeBox"}}) 563 role:costItems({[ItemId.BoxKey] = costKey}, {log = {desc = "openTimeBox"}})
558 end 564 end
@@ -584,7 +590,7 @@ function _M.openTimeBoxRpc(agent, data) @@ -584,7 +590,7 @@ function _M.openTimeBoxRpc(agent, data)
584 590
585 boxL[slot] = nil 591 boxL[slot] = nil
586 reward, change = role:award(reward, {log = {desc = "openTimeBox", int1 = boxId}}) 592 reward, change = role:award(reward, {log = {desc = "openTimeBox", int1 = boxId}})
587 - role:checkTaskEnter("OpenBox", {id = boxId, count=1}) 593 + role:checkTaskEnter("OpenBox", {id = boxId, count=1, quality=itemData.quality})
588 594
589 role:log("carriage_dismantle", { 595 role:log("carriage_dismantle", {
590 item_id = boxId, -- 道具id 596 item_id = boxId, -- 道具id
@@ -687,8 +693,8 @@ function _M.storyBookRewardRpc(agent, data) @@ -687,8 +693,8 @@ function _M.storyBookRewardRpc(agent, data)
687 role:log("carriage_video", { 693 role:log("carriage_video", {
688 carriage_video_type = storyBookData.type, --放映室类型,剧情CG:0, 角色CG:1, 主线剧情:2, 角色剧情:3, 活动剧情:4, 图鉴:5 694 carriage_video_type = storyBookData.type, --放映室类型,剧情CG:0, 角色CG:1, 主线剧情:2, 角色剧情:3, 活动剧情:4, 图鉴:5
689 carriage_video_id = storyId, --放映室片段ID 695 carriage_video_id = storyId, --放映室片段ID
690 - carriage_video_coinid = reward[ItemId.Gold] and ItemId.Gold or 0, --放映奖励货币类型,无奖励则填写0  
691 - carriage_video_coinnum = reward[ItemId.Gold] or 0, --放映奖励货币数量,无奖励则填写0 696 + carriage_video_coinid = reward[ItemId.Diamond] and ItemId.Diamond or 0, --放映奖励货币类型,无奖励则填写0
  697 + carriage_video_coinnum = reward[ItemId.Diamond] or 0, --放映奖励货币数量,无奖励则填写0
692 carriage_video_item = reward, --放映奖励其他物品数量,json格式记录,{'itemid1':10,'itemid2':5,…………..},无奖励则填写0 698 carriage_video_item = reward, --放映奖励其他物品数量,json格式记录,{'itemid1':10,'itemid2':5,…………..},无奖励则填写0
693 }) 699 })
694 700
@@ -1007,7 +1013,7 @@ function _M.changeSettingRpc(agent, data) @@ -1007,7 +1013,7 @@ function _M.changeSettingRpc(agent, data)
1007 local setting = role:getProperty("setting") 1013 local setting = role:getProperty("setting")
1008 setting[id] = status 1014 setting[id] = status
1009 role:updateProperty({field = "setting", value = setting}) 1015 role:updateProperty({field = "setting", value = setting})
1010 - 1016 + role:mylog("role_action", {desc = "changeSetting", int1 = id, int2 = status})
1011 SendPacket(actionCodes.Role_changeSettingRpc, '') 1017 SendPacket(actionCodes.Role_changeSettingRpc, '')
1012 return true 1018 return true
1013 end 1019 end
@@ -1045,6 +1051,7 @@ function _M.drawCodeRpc(agent, data) @@ -1045,6 +1051,7 @@ function _M.drawCodeRpc(agent, data)
1045 gift_name = "", -- 礼包名称 1051 gift_name = "", -- 礼包名称
1046 gift_reason = 0, -- 礼包发放原因,见发放原因枚举表 1052 gift_reason = 0, -- 礼包发放原因,见发放原因枚举表
1047 }) 1053 })
  1054 + role:mylog("role_action", {desc = "drawCode", int1 = giftId, key1 = code})
1048 SendPacket(actionCodes.Role_drawCodeRpc, MsgPack.pack({ 1055 SendPacket(actionCodes.Role_drawCodeRpc, MsgPack.pack({
1049 result = ret, 1056 result = ret,
1050 reward = reward, 1057 reward = reward,
@@ -1119,6 +1126,7 @@ function _M.guideRpc(agent, data) @@ -1119,6 +1126,7 @@ function _M.guideRpc(agent, data)
1119 if msg.funcType then 1126 if msg.funcType then
1120 funcGuide = funcGuide:setv(msg.funcType, 1) 1127 funcGuide = funcGuide:setv(msg.funcType, 1)
1121 role:log("onGuidePoint", {guild_type = 2, guild_id = msg.funcType, guild_point = 0, guild_pass = 0}) 1128 role:log("onGuidePoint", {guild_type = 2, guild_id = msg.funcType, guild_point = 0, guild_pass = 0})
  1129 + role:mylog("guide", {desc = "guide_weak", int1 = msg.funcType})
1122 end 1130 end
1123 role:updateProperty({field = "funcGuide", value = funcGuide}) 1131 role:updateProperty({field = "funcGuide", value = funcGuide})
1124 elseif cmdType == 3 then 1132 elseif cmdType == 3 then
@@ -1128,6 +1136,7 @@ function _M.guideRpc(agent, data) @@ -1128,6 +1136,7 @@ function _M.guideRpc(agent, data)
1128 funcGuide = funcGuide:setv(msg.funcType, 1) 1136 funcGuide = funcGuide:setv(msg.funcType, 1)
1129 role:updateProperty({field = "funcGuide", value = funcGuide}) 1137 role:updateProperty({field = "funcGuide", value = funcGuide})
1130 role:log("onGuidePoint", {guild_type = 1, guild_id = msg.funcType, guild_point = 0, guild_pass = 0}) 1138 role:log("onGuidePoint", {guild_type = 1, guild_id = msg.funcType, guild_point = 0, guild_pass = 0})
  1139 + role:mylog("guide", {desc = "guide_sys", int1 = msg.funcType})
1131 end 1140 end
1132 elseif cmdType == 4 then 1141 elseif cmdType == 4 then
1133 -- 弹出一个tips(进入功能界面也许要自动弹说明,value要区分1、2) 1142 -- 弹出一个tips(进入功能界面也许要自动弹说明,value要区分1、2)
@@ -1135,6 +1144,7 @@ function _M.guideRpc(agent, data) @@ -1135,6 +1144,7 @@ function _M.guideRpc(agent, data)
1135 local value = msg.value or 1 1144 local value = msg.value or 1
1136 for _, funcIdx in pairs(msg.funcType:toArray(true,"=")) do 1145 for _, funcIdx in pairs(msg.funcType:toArray(true,"=")) do
1137 role:log("onGuidePoint", {guild_type = 3, guild_id = funcIdx, guild_point = 0, guild_pass = 0}) 1146 role:log("onGuidePoint", {guild_type = 3, guild_id = funcIdx, guild_point = 0, guild_pass = 0})
  1147 + role:mylog("guide", {desc = "guide_tips", int1 = funcIdx})
1138 funcGuide = funcGuide:setv(funcIdx, value) 1148 funcGuide = funcGuide:setv(funcIdx, value)
1139 end 1149 end
1140 role:updateProperty({field = "funcGuide", value = funcGuide}) 1150 role:updateProperty({field = "funcGuide", value = funcGuide})
src/adv/AdvPlayer.lua
@@ -332,7 +332,7 @@ end @@ -332,7 +332,7 @@ end
332 --计算自己伤害减免后的值 332 --计算自己伤害减免后的值
333 function BaseObject:getInjuredValue(value) 333 function BaseObject:getInjuredValue(value)
334 local injuredChange = self:getInjuredChange() 334 local injuredChange = self:getInjuredChange()
335 - return math.max(0, (value - self.def + injuredChange[0]) * (1 + injuredChange[1])) 335 + return math.max(0, (value + injuredChange[0]) * (1 + injuredChange[1]))
336 end 336 end
337 337
338 --最终伤害 = [ (敌方攻击 - 己方防御) * (1+伤害增加百分比-伤害减少百分比)*(1+受伤增加百分比-受伤减少百分比)+(伤害增加固定值-伤害增加固定值+受伤增加固定值-受伤增加固定值)]*(1+侍宠百分比)-侍宠固定值 338 --最终伤害 = [ (敌方攻击 - 己方防御) * (1+伤害增加百分比-伤害减少百分比)*(1+受伤增加百分比-受伤减少百分比)+(伤害增加固定值-伤害增加固定值+受伤增加固定值-受伤增加固定值)]*(1+侍宠百分比)-侍宠固定值
@@ -348,10 +348,11 @@ function BaseObject:hurt(value, releaser, params) @@ -348,10 +348,11 @@ function BaseObject:hurt(value, releaser, params)
348 end 348 end
349 end 349 end
350 350
351 - if params.hurtType ~= 5 and params.hurtType ~= 6 then  
352 - if not params.hurtType or params.hurtType ~= 4 then  
353 - value = self:getInjuredValue(value) --减伤计算 351 + if params.hurtType ~= 5 then
  352 + if params.hurtType ~= 6 or params.hurtType ~= 4 then
  353 + value = math.max(0, value - self.def)
354 end 354 end
  355 + value = self:getInjuredValue(value) --减伤计算
355 if value == 0 then return end 356 if value == 0 then return end
356 357
357 -- 舍身和恃宠 358 -- 舍身和恃宠
1 -Subproject commit 5751e98613ad7ade246cb9068c6752ecca115163 1 +Subproject commit 76bf12dfa6afe523ec30d1da6467cb8cbd30790f
src/models/Activity.lua
1 local Activity = class("Activity", require("shared.ModelBase")) 1 local Activity = class("Activity", require("shared.ModelBase"))
2 local string_format = string.format 2 local string_format = string.format
3 3
  4 +-- activity_ctr showType
4 Activity.ActivityType = { 5 Activity.ActivityType = {
5 - Sign = 1, -- 签到 6 + SsrUpPoolChange = 1, -- 特定英雄活动,切卡池
6 DoubleDrop = 2, -- 双倍掉落 7 DoubleDrop = 2, -- 双倍掉落
7 - FoodSell = 3, --贩卖周 料理  
8 - DrawHero = 4, --抽卡周 招募  
9 - AdvDraw = 5, --拾荒抽周 资助  
10 - OpenBox = 6, --拆解周 时钟箱  
11 - PaySignIn = 7, --付费签到  
12 - PayBack = 9, --返利  
13 -  
14 - SsrUpPoolChange = 10, -- 特定英雄活动,切卡池 8 + Sign = 4, -- 签到
  9 + ChangeCG = 5, -- 客户端使用,切换抽卡界面
  10 + PaySignIn = 6, --付费签到
  11 + ExploreCommand = 7, -- 探索指令
  12 + PayBack = 8, --返利
  13 +
  14 + BonusDouble = 9, -- 奖励关卡翻倍
  15 + CalendaTask = 10, -- 日历任务
  16 +
  17 + FoodSell = 11, --贩卖周 料理
  18 + DrawHero = 12, --抽卡周 招募
  19 + AdvDraw = 13, --拾荒抽周 资助
  20 + OpenBox = 14, --拆解周 时钟箱
15 } 21 }
16 22
17 23
@@ -33,26 +39,27 @@ end @@ -33,26 +39,27 @@ end
33 Activity.schema = { 39 Activity.schema = {
34 actime = {"table", {}}, -- 最近检查某项活动的开始时间 {id = time} 40 actime = {"table", {}}, -- 最近检查某项活动的开始时间 {id = time}
35 round = {"table", {}}, -- 记录活动到了第几轮 {id = roundnum} 41 round = {"table", {}}, -- 记录活动到了第几轮 {id = roundnum}
36 - act1 = {"table", {}}, -- {0 = day, 1= -1, 2 = -1} == 签到活动  
37 - act3 = {"table", {}}, -- {0 = 抽卡次数, 1=1, 2=1} 抽卡周活动 1表示领取过该档位的奖励  
38 - act4 = {"table", {}}, -- {0 = 贩卖数量, 1=1, 2=1} 贩卖周活动 1表示领取过该档位的奖励  
39 - act5 = {"table", {}}, -- {0 = 拆解数量, 1=1, 2=1} 拆解周活动 1表示领取过该档位的奖励  
40 - act6 = {"table", {}}, -- {0 = 拾荒消耗远古金币数量, 1=1, 2=1} 拾荒周活动 1表示领取过该档位的奖励  
41 - act7 = {"table", {}}, -- {1 = 1, 2 = 1} == 付费签到活动  
42 - act9 = {"number", 0}, -- 充值返利 42 + act4 = {"table", {}}, -- {0 = day, 1= -1, 2 = -1} == 签到活动
  43 + act6 = {"table", {}}, -- {1 = 1, 2 = 1} == 付费签到活动
  44 + act8 = {"number", 0}, -- 充值返利
  45 +
  46 + act11 = {"table", {}}, -- {0 = 贩卖数量, 1=1, 2=1} 贩卖周活动 1表示领取过该档位的奖励
  47 + act12 = {"table", {}}, -- {0 = 抽卡次数, 1=1, 2=1} 抽卡周活动 1表示领取过该档位的奖励
  48 + act13 = {"table", {}}, -- {0 = 拾荒消耗远古金币数量, 1=1, 2=1} 拾荒周活动 1表示领取过该档位的奖励
  49 + act14 = {"table", {}}, -- {0 = 拆解数量, 1=1, 2=1} 拆解周活动 1表示领取过该档位的奖励
43 } 50 }
44 51
45 function Activity:data() 52 function Activity:data()
46 return { 53 return {
47 actime = self:getProperty("actime"), 54 actime = self:getProperty("actime"),
48 round = self:getProperty("round"), 55 round = self:getProperty("round"),
49 - act1 = self:getProperty("act1"),  
50 - act3 = self:getProperty("act3"),  
51 act4 = self:getProperty("act4"), 56 act4 = self:getProperty("act4"),
52 - act5 = self:getProperty("act5"),  
53 act6 = self:getProperty("act6"), 57 act6 = self:getProperty("act6"),
54 - act7 = self:getProperty("act7"),  
55 - act9 = self:getProperty("act9"), 58 + act8 = self:getProperty("act8"),
  59 + act11 = self:getProperty("act11"),
  60 + act12 = self:getProperty("act12"),
  61 + act13 = self:getProperty("act13"),
  62 + act14 = self:getProperty("act14"),
56 } 63 }
57 end 64 end
58 65
@@ -77,10 +84,9 @@ function Activity:updateProperty(params) @@ -77,10 +84,9 @@ function Activity:updateProperty(params)
77 return false 84 return false
78 end 85 end
79 86
80 -  
81 -function Activity:isOpenRaw(activityType, now)  
82 - activityType = checkActivityType(activityType)  
83 - local actData = csvdb["activity_ctrlCsv"][activityType] 87 +function Activity:isOpenRaw(activityId, now)
  88 + activityId = checkActivityType(activityId)
  89 + local actData = csvdb["activity_ctrlCsv"][activityId]
84 if not actData then return end 90 if not actData then return end
85 91
86 if actData.time == "" then -- 关闭 92 if actData.time == "" then -- 关闭
@@ -89,7 +95,7 @@ function Activity:isOpenRaw(activityType, now) @@ -89,7 +95,7 @@ function Activity:isOpenRaw(activityType, now)
89 95
90 local st = 0 96 local st = 0
91 local et = 0 97 local et = 0
92 - local now = skynet.timex() 98 + --local now = skynet.timex()
93 99
94 if actData.ttype == 0 then -- 时间开放 100 if actData.ttype == 0 then -- 时间开放
95 local openTimes = actData.time:toArray(false, "=") 101 local openTimes = actData.time:toArray(false, "=")
@@ -118,7 +124,17 @@ end @@ -118,7 +124,17 @@ end
118 -- 缓存开放 124 -- 缓存开放
119 function Activity:isOpen(activityType) 125 function Activity:isOpen(activityType)
120 activityType = checkActivityType(activityType) 126 activityType = checkActivityType(activityType)
121 - return self._isOpen[activityType] 127 + --return self._isOpen[activityType]
  128 + local open = false
  129 + for id, data in pairs(csvdb["activity_ctrlCsv"]) do
  130 + if data.showType == activityType then
  131 + open = self._isOpen[data.id]
  132 + if open then
  133 + return true, data.id
  134 + end
  135 + end
  136 + end
  137 + return false
122 end 138 end
123 139
124 function Activity:getActData(actType) 140 function Activity:getActData(actType)
@@ -137,22 +153,22 @@ function Activity:checkActivityStatus(now, isCrossDay, notify) @@ -137,22 +153,22 @@ function Activity:checkActivityStatus(now, isCrossDay, notify)
137 self._isOpen = {} 153 self._isOpen = {}
138 local actime = self:getProperty("actime") 154 local actime = self:getProperty("actime")
139 local change = false 155 local change = false
140 - for actType, actData in pairs(csvdb["activity_ctrlCsv"]) do  
141 - local isOpen, startTime = self:isOpenRaw(actType, now)  
142 - self._isOpen[actType] = isOpen 156 + for actId, actData in pairs(csvdb["activity_ctrlCsv"]) do
  157 + local isOpen, startTime = self:isOpenRaw(actId, now)
  158 + self._isOpen[actId] = isOpen
143 159
144 if isOpen then 160 if isOpen then
145 - if actime[actType] and actime[actType] == startTime then -- 还是之前的状态 开放中 161 + if actime[actId] and actime[actId] == startTime then -- 还是之前的状态 开放中
146 else -- 重置 162 else -- 重置
147 - actime[actType] = startTime  
148 - self:closeActivity(actType, notify, true)  
149 - self:initActivity(actType, isCrossDay, notify) 163 + actime[actId] = startTime
  164 + self:closeActivity(actId, notify, true)
  165 + self:initActivity(actId, isCrossDay, notify)
150 change = true 166 change = true
151 end 167 end
152 else 168 else
153 - if actime[actType] then  
154 - self:closeActivity(actType, notify)  
155 - actime[actType] = nil 169 + if actime[actId] then
  170 + self:closeActivity(actId, notify)
  171 + actime[actId] = nil
156 change = true 172 change = true
157 end 173 end
158 end 174 end
@@ -345,13 +361,19 @@ activityFunc[Activity.ActivityType.PayBack] = { @@ -345,13 +361,19 @@ activityFunc[Activity.ActivityType.PayBack] = {
345 -- end, 361 -- end,
346 } 362 }
347 363
348 -function Activity:initActivity(actType, isCrossDay, notify) 364 +function Activity:initActivity(actId, isCrossDay, notify)
  365 + local actData = csvdb["activity_ctrlCsv"][actId]
  366 + if not actData then return end
  367 + local actType = actData.showType
349 if activityFunc[actType] and activityFunc[actType]['close'] then 368 if activityFunc[actType] and activityFunc[actType]['close'] then
350 activityFunc[actType]["init"](self, actType, isCrossDay, notify) 369 activityFunc[actType]["init"](self, actType, isCrossDay, notify)
351 end 370 end
352 end 371 end
353 372
354 -function Activity:closeActivity(actType, notify, notUpdateAct) 373 +function Activity:closeActivity(actId, notify, notUpdateAct)
  374 + local actData = csvdb["activity_ctrlCsv"][actId]
  375 + if not actData then return end
  376 + local actType = actData.showType
355 if activityFunc[actType] and activityFunc[actType]['close'] then 377 if activityFunc[actType] and activityFunc[actType]['close'] then
356 activityFunc[actType]["close"](self, actType, notify) 378 activityFunc[actType]["close"](self, actType, notify)
357 end 379 end
@@ -361,8 +383,10 @@ function Activity:closeActivity(actType, notify, notUpdateAct) @@ -361,8 +383,10 @@ function Activity:closeActivity(actType, notify, notUpdateAct)
361 end 383 end
362 384
363 function Activity:refreshDailyData(notify) 385 function Activity:refreshDailyData(notify)
364 - for actType, status in pairs(self._isOpen) do  
365 - if status then 386 + for actId, status in pairs(self._isOpen) do
  387 + local actData = csvdb["activity_ctrlCsv"][actId]
  388 + if status and actData then
  389 + local actType = actData.showType
366 if activityFunc[actType] and activityFunc[actType]['crossDay'] then 390 if activityFunc[actType] and activityFunc[actType]['crossDay'] then
367 activityFunc[actType]["crossDay"](self, actType, notify) 391 activityFunc[actType]["crossDay"](self, actType, notify)
368 end 392 end
@@ -398,10 +422,12 @@ end @@ -398,10 +422,12 @@ end
398 422
399 -- 获取活动卡池id 423 -- 获取活动卡池id
400 function Activity:getActivityPool(mainType, subType) 424 function Activity:getActivityPool(mainType, subType)
401 - if not self:isOpen(Activity.ActivityType.SsrUpPoolChange) then 425 + local open, actId = self:isOpen(Activity.ActivityType.SsrUpPoolChange)
  426 + if not open then
  427 + --if not self:isOpen(Activity.ActivityType.SsrUpPoolChange) then
402 return 0 428 return 0
403 end 429 end
404 - local actData = csvdb["activity_ctrlCsv"][Activity.ActivityType.SsrUpPoolChange] 430 + local actData = csvdb["activity_ctrlCsv"][actId]
405 if not actData then return 0 end 431 if not actData then return 0 end
406 432
407 local poolMap = actData.condition2:toMap(true, "=") 433 local poolMap = actData.condition2:toMap(true, "=")
src/models/Role.lua
@@ -386,7 +386,8 @@ function Role:data() @@ -386,7 +386,8 @@ function Role:data()
386 chatline = self:getProperty("chatline"), 386 chatline = self:getProperty("chatline"),
387 387
388 downCvR = self:getProperty("downCvR"), -- 下载cv扩展包奖励 388 downCvR = self:getProperty("downCvR"), -- 下载cv扩展包奖励
389 - feedback = self:getProperty("feedback") 389 + feedback = self:getProperty("feedback"),
  390 + ctime = self:getProperty("ctime"),
390 } 391 }
391 end 392 end
392 393
src/models/RolePlugin.lua
@@ -51,6 +51,7 @@ function RolePlugin.bind(Role) @@ -51,6 +51,7 @@ function RolePlugin.bind(Role)
51 end 51 end
52 52
53 local function _award(self, itemId, count, params) 53 local function _award(self, itemId, count, params)
  54 + local count = math.floor(count)
54 local pms = clone(params) 55 local pms = clone(params)
55 local itemData = csvdb["itemCsv"][itemId] 56 local itemData = csvdb["itemCsv"][itemId]
56 if not itemData then -- 加一层保护 57 if not itemData then -- 加一层保护
@@ -259,6 +260,7 @@ function RolePlugin.bind(Role) @@ -259,6 +260,7 @@ function RolePlugin.bind(Role)
259 260
260 function Role:addItem(params) 261 function Role:addItem(params)
261 params = params or {} 262 params = params or {}
  263 + params.count = math.floor(params.count or 0)
262 if params.itemId == ItemId.Diamond then 264 if params.itemId == ItemId.Diamond then
263 self:gainDiamond(params) 265 self:gainDiamond(params)
264 return 266 return
@@ -1536,7 +1538,7 @@ function RolePlugin.bind(Role) @@ -1536,7 +1538,7 @@ function RolePlugin.bind(Role)
1536 item_number = 1, -- 购买的道具数量 1538 item_number = 1, -- 购买的道具数量
1537 item_level = 1, -- 购买的道具等级 1539 item_level = 1, -- 购买的道具等级
1538 order_cost = rechargeData.rmb * 100, -- 此次消费的现金金额(单位:分),如 51800即未518元,对应客户端SDK传入的'total_fee' 1540 order_cost = rechargeData.rmb * 100, -- 此次消费的现金金额(单位:分),如 51800即未518元,对应客户端SDK传入的'total_fee'
1539 - order_currency = "TWD", -- 货币类型,默认为"CNY"(人民币),遵循ISO 4217规范 1541 + order_currency = "CNY", -- 货币类型,默认为"CNY"(人民币),遵循ISO 4217规范
1540 order_type = order_type, -- 订单类型,首充记录为1,否则为0 1542 order_type = order_type, -- 订单类型,首充记录为1,否则为0
1541 order_id = params.transactionId, -- 本条记录的订单号,对应客户端SDK返回的'bs_trade_no' 1543 order_id = params.transactionId, -- 本条记录的订单号,对应客户端SDK返回的'bs_trade_no'
1542 }) 1544 })
src/models/RoleTask.lua
@@ -12,6 +12,9 @@ local TaskType = { @@ -12,6 +12,9 @@ local TaskType = {
12 WakeCG = 7, -- 觉醒到解锁CG - heroType 12 WakeCG = 7, -- 觉醒到解锁CG - heroType
13 HeroTalent = 8, -- 天赋升级 - heroType alv 13 HeroTalent = 8, -- 天赋升级 - heroType alv
14 DrawSSR = 9, -- 抽到SSR - count 14 DrawSSR = 9, -- 抽到SSR - count
  15 + HeroLvlCollect = 10, -- 英雄等级收集进度
  16 + HeroQualityCollect = 11, -- 英雄品质收集进度
  17 + HeroStarCollect = 12, -- 英雄星级收集进度
15 18
16 --装备相关 19 --装备相关
17 AddEquip = 101, -- 获得装备 - equipId rarity 20 AddEquip = 101, -- 获得装备 - equipId rarity
@@ -44,6 +47,7 @@ local TaskType = { @@ -44,6 +47,7 @@ local TaskType = {
44 AdvStartSelf = 409, -- 手动冒险 - id 47 AdvStartSelf = 409, -- 手动冒险 - id
45 AdvScore = 410, -- 冒险分数 - score 48 AdvScore = 410, -- 冒险分数 - score
46 AdvDraw = 411, -- 冒险资助 - count ptype 49 AdvDraw = 411, -- 冒险资助 - count ptype
  50 + AdvHang = 412, -- 代理拾荒次数
47 51
48 --爬塔相关 52 --爬塔相关
49 TowerPass = 501, -- 爬塔通关 - level 53 TowerPass = 501, -- 爬塔通关 - level
@@ -60,6 +64,7 @@ local TaskType = { @@ -60,6 +64,7 @@ local TaskType = {
60 DinerPopular = 608, -- 人气值 - count 64 DinerPopular = 608, -- 人气值 - count
61 DinerLevelUp = 609, -- 餐厅升级 - level type 65 DinerLevelUp = 609, -- 餐厅升级 - level type
62 DinerTalentUp = 610, -- 天赋升级 - type level 66 DinerTalentUp = 610, -- 天赋升级 - type level
  67 + VillageApply = 611, -- 餐厅委托个数
63 68
64 -- 车厢相关 69 -- 车厢相关
65 PotionMake = 701, -- 营养剂制作 - id count 70 PotionMake = 701, -- 营养剂制作 - id count
@@ -78,6 +83,7 @@ local TaskType = { @@ -78,6 +83,7 @@ local TaskType = {
78 83
79 -- 角色相关 84 -- 角色相关
80 RoleLevelUp = 901, -- 角色升级 - curlevel 85 RoleLevelUp = 901, -- 角色升级 - curlevel
  86 + RuneQualityCollect = 902, -- 铭文品质收集进度
81 87
82 --功能未实现 todo 88 --功能未实现 todo
83 AdvShop = 1002, -- 冒险商城 89 AdvShop = 1002, -- 冒险商城
@@ -230,6 +236,32 @@ local StoreListener = { @@ -230,6 +236,32 @@ local StoreListener = {
230 } 236 }
231 } 237 }
232 238
  239 +local CalendaTaskListener = {
  240 + func = "checkCalendaTask",
  241 + listen = {
  242 + [TaskType.DrawHero] = {{1, 1, f("count")}},
  243 + [TaskType.BonusPass]= {{2, 1}},
  244 + [TaskType.AdvPass]= {{3, 1}},
  245 + [TaskType.DinerLevelUp]= {{4, 2, f("level")}},
  246 + [TaskType.HeroLvlCollect]= {{5, 3}}, -- x名y级英雄
  247 + [TaskType.AdvHang]= {{6, 1}}, ----
  248 + [TaskType.HeroQualityCollect]= {{7, 3}},
  249 + [TaskType.OverOderTask]= {{8, 1}},
  250 + [TaskType.VillageApply]= {{9, 1}},
  251 + [TaskType.PvpWin]= {{10, 2, f("score")}},
  252 + [TaskType.DinerPopular]= {{11, 2, f("count")}},
  253 + [TaskType.RoleLevelUp]= {{12, 2, f("level")}},
  254 + [TaskType.TowerPass]= {{13, 2, f("level")}},
  255 + [TaskType.HeroTalent]= {{14, 1}},
  256 + [TaskType.HangPass]= {{15, 2, f("id")}},
  257 + [TaskType.HeroStarCollect]= {{16, 3}},
  258 + [TaskType.FoodSell]= {{17, 1, f("count")}},
  259 + [TaskType.HangGet]= {{18, 3, f("reward")}},
  260 + [TaskType.RuneQualityCollect]= {{19, 3, f("id")}},
  261 + [TaskType.OpenBox]= {{20, 3, f("count"), f("quality")}},
  262 + }
  263 +}
  264 +
233 265
234 local TaskListeners = { 266 local TaskListeners = {
235 StoryListener, 267 StoryListener,
@@ -552,6 +584,33 @@ function RoleTask.bind(Role) @@ -552,6 +584,33 @@ function RoleTask.bind(Role)
552 self.storeData:OnTriggerLimitTimePack(triggerType, param) 584 self.storeData:OnTriggerLimitTimePack(triggerType, param)
553 end 585 end
554 586
  587 + function Role:checkCalendaTask(notNotify, mainType, subType, param1, param2)
  588 + local open, actId = self.activity:isOpen("CalendaTask")
  589 + local actData = csvdb["activity_ctrlCsv"][actId]
  590 + if not actData then return end
  591 + if not open then return end
  592 +
  593 + local change = false
  594 + local calTask = self:getProperty("calTask") or {}
  595 + param1 = param1 or 1
  596 +
  597 + local cid = actData.condition
  598 + for k, taskList in pairs(csvdb["activity_taskCsv"]) do
  599 + if k == cid then
  600 + for id, cfg in pairs(taskList) do
  601 + if cfg.type == mainType then
  602 + if subType == 1 then -- 增加数值
  603 + calTask[id] = (calTask[id] or 0) + param1
  604 + elseif subType == 2 then -- 直接赋值
  605 + calTask[id] = param1
  606 + elseif subType == 3 then -- 自定义类型
  607 + end
  608 + end
  609 + end
  610 + end
  611 + end
  612 + end
  613 +
555 end 614 end
556 615
557 return RoleTask 616 return RoleTask
558 \ No newline at end of file 617 \ No newline at end of file
src/utils/CommonFunc.lua
@@ -155,7 +155,7 @@ function diffFromOpen() @@ -155,7 +155,7 @@ function diffFromOpen()
155 hour = RESET_TIME, 155 hour = RESET_TIME,
156 } 156 }
157 if now < openTime then 157 if now < openTime then
158 - return 0 158 + return -1
159 end 159 end
160 160
161 return math.floor((now - openTime) / DAY_SEC) 161 return math.floor((now - openTime) / DAY_SEC)