Commit 5d51be8b0fb03fce0277a748d73d56a13973ec5d

Authored by zhouhaihai
2 parents cb3b7127 aad10fac

Merge branch 'develop' into player

docs/日志说明.xlsx
No preview for this file type
@@ -3,6 +3,7 @@ R_INCR = "role:%d:autoincr" @@ -3,6 +3,7 @@ R_INCR = "role:%d:autoincr"
3 R_HEROS = "role:%d:heroIds" 3 R_HEROS = "role:%d:heroIds"
4 R_HERO = "hero:%d:%d" 4 R_HERO = "hero:%d:%d"
5 R_DAILY = "role:%d:daily" 5 R_DAILY = "role:%d:daily"
  6 +R_ACTIVITY = "role:%d:act"
6 R_DINER = "role:%d:diner" -- 餐厅 7 R_DINER = "role:%d:diner" -- 餐厅
7 R_PVP = "role:%d:pvp" -- pvp 8 R_PVP = "role:%d:pvp" -- pvp
8 R_EQUIP_ROOT = "role:%d:equip*" -- 装备根目录 9 R_EQUIP_ROOT = "role:%d:equip*" -- 装备根目录
src/actions/GmAction.lua
@@ -516,7 +516,7 @@ end @@ -516,7 +516,7 @@ end
516 516
517 -- 充值回调 517 -- 充值回调
518 function _M.ayncPurchase(role, params) 518 function _M.ayncPurchase(role, params)
519 - return role:handlePurchase(params) 519 + return role:handlePurchase(params) or ""
520 end 520 end
521 521
522 522
src/actions/StoreAction.lua
@@ -82,9 +82,10 @@ function _M.googleRechargeRpc(agent, data) @@ -82,9 +82,10 @@ function _M.googleRechargeRpc(agent, data)
82 local secret_key = "b7657fa7ccd44c16a35e3f454ac7a075" 82 local secret_key = "b7657fa7ccd44c16a35e3f454ac7a075"
83 local need = { 83 local need = {
84 out_trade_no = partnerOrderId, 84 out_trade_no = partnerOrderId,
85 - money = dataSet.rmb, 85 + money = dataSet.rmb * 100,
86 game_money = dataSet.diamond, 86 game_money = dataSet.diamond,
87 product_id = dataSet.productId, 87 product_id = dataSet.productId,
  88 + notify_url = "http://l11-ts-pub-all-wasteland.komoejoy.com/pay/google"
88 } 89 }
89 local sign = signPms(need, secret_key) 90 local sign = signPms(need, secret_key)
90 91
@@ -108,8 +109,9 @@ function _M.myCardRechargeRpc(agent, data) @@ -108,8 +109,9 @@ function _M.myCardRechargeRpc(agent, data)
108 local secret_key = "48759e07540f46d9af17ec82669b4272" 109 local secret_key = "48759e07540f46d9af17ec82669b4272"
109 local need = { 110 local need = {
110 out_trade_no = partnerOrderId, 111 out_trade_no = partnerOrderId,
111 - money = dataSet.rmb, 112 + money = dataSet.rmb * 100,
112 game_money = dataSet.diamond, 113 game_money = dataSet.diamond,
  114 + notify_url = "http://l11-ts-pub-all-wasteland.komoejoy.com/pay/mycard"
113 } 115 }
114 local sign = signPms(need, secret_key) 116 local sign = signPms(need, secret_key)
115 117
@@ -133,9 +135,10 @@ function _M.iosRechargeRpc(agent, data) @@ -133,9 +135,10 @@ function _M.iosRechargeRpc(agent, data)
133 local secret_key = "9647d2efe1074c73b9ac19af4337a70e" 135 local secret_key = "9647d2efe1074c73b9ac19af4337a70e"
134 local need = { 136 local need = {
135 out_trade_no = partnerOrderId, 137 out_trade_no = partnerOrderId,
136 - money = dataSet.rmb, 138 + money = dataSet.rmb * 100,
137 game_money = dataSet.diamond, 139 game_money = dataSet.diamond,
138 - product_id = dataSet.productId, 140 + product_id = dataSet.iap_product_id,
  141 + notify_url = "http://l11-ts-pub-all-wasteland.komoejoy.com/pay/ios"
139 } 142 }
140 local sign = signPms(need, secret_key) 143 local sign = signPms(need, secret_key)
141 144
@@ -8,6 +8,7 @@ local Adv = class("Adv") @@ -8,6 +8,7 @@ local Adv = class("Adv")
8 local AdvTask = import(".AdvTask") --任务相关数据搞出去 8 local AdvTask = import(".AdvTask") --任务相关数据搞出去
9 AdvTask.bind(Adv) 9 AdvTask.bind(Adv)
10 10
  11 +
11 function Adv:ctor(owner) 12 function Adv:ctor(owner)
12 assert(owner, "Adv instance must have owner(role)") 13 assert(owner, "Adv instance must have owner(role)")
13 self.owner = owner 14 self.owner = owner
@@ -1307,6 +1308,7 @@ local function clickLinkChoose(self, room, block, params) @@ -1307,6 +1308,7 @@ local function clickLinkChoose(self, room, block, params)
1307 self.lchoose[startId] = (self.lchoose[startId] or 0) + 1 1308 self.lchoose[startId] = (self.lchoose[startId] or 0) + 1
1308 self:checkAchievement(Adv.AchievType.LinkChoose, 1, startId) 1309 self:checkAchievement(Adv.AchievType.LinkChoose, 1, startId)
1309 self:checkAchievement(Adv.AchievType.FinishStoryId, 1, chooseData.storyid) 1310 self:checkAchievement(Adv.AchievType.FinishStoryId, 1, chooseData.storyid)
  1311 + self:checkTask(Adv.TaskType.FinishStoryId, 1, chooseData.storyid)
1310 local advStoryB = self.owner:getProperty("advStoryB") 1312 local advStoryB = self.owner:getProperty("advStoryB")
1311 advStoryB[chooseData.storyid] = (advStoryB[chooseData.storyid] or 0) + 1 1313 advStoryB[chooseData.storyid] = (advStoryB[chooseData.storyid] or 0) + 1
1312 self.owner:setProperty("advStoryB", advStoryB) 1314 self.owner:setProperty("advStoryB", advStoryB)
@@ -1401,6 +1403,7 @@ end @@ -1401,6 +1403,7 @@ end
1401 1403
1402 local function clickClick(self, room, block, params) 1404 local function clickClick(self, room, block, params)
1403 local clickData = csvdb["event_clickCsv"][block.event.id] 1405 local clickData = csvdb["event_clickCsv"][block.event.id]
  1406 + local oldId = block.event.id
1404 if not clickData then return end 1407 if not clickData then return end
1405 local clearBlock = true 1408 local clearBlock = true
1406 local doEffect = { 1409 local doEffect = {
@@ -1423,8 +1426,11 @@ local function clickClick(self, room, block, params) @@ -1423,8 +1426,11 @@ local function clickClick(self, room, block, params)
1423 end 1426 end
1424 end, 1427 end,
1425 } 1428 }
  1429 +
1426 assert(doEffect[clickData.type], "error effect, event_clickCsv id :" .. block.event.id) 1430 assert(doEffect[clickData.type], "error effect, event_clickCsv id :" .. block.event.id)
1427 doEffect[clickData.type]() 1431 doEffect[clickData.type]()
  1432 + self:checkTask(Adv.TaskType.Click, 1, oldId)
  1433 +
1428 if clearBlock then 1434 if clearBlock then
1429 block:clear() 1435 block:clear()
1430 end 1436 end
@@ -1800,45 +1806,77 @@ function Adv:enemyDead(enemy, escape) @@ -1800,45 +1806,77 @@ function Adv:enemyDead(enemy, escape)
1800 end 1806 end
1801 local changeV = self.battle.player:addExp(monsterData.exp) 1807 local changeV = self.battle.player:addExp(monsterData.exp)
1802 self:backDead(enemyId, changeV) 1808 self:backDead(enemyId, changeV)
1803 - if enemy:hadBuff(Buff.CHANGE_DROP_TO_CLICK) then -- 掉落转为 click  
1804 - local clickId = buff:effect()  
1805 - block:updateEvent({  
1806 - etype = AdvEventType.Click,  
1807 - id = clickId  
1808 - })  
1809 - self.battle.player:triggerPassive(Passive.BATTLE_WIN)  
1810 - else  
1811 - local item = block.event.item  
1812 - if not item then  
1813 - local buff = enemy:hadBuff(Buff.CHANGE_DROP)  
1814 - if buff then  
1815 - item = table.pack(buff:effect())  
1816 - else  
1817 - if monsterData.dropid == 0 then  
1818 - item = {0, 0} 1809 +
  1810 + local toClick = enemy:hadBuff(Buff.CHANGE_DROP_TO_CLICK)
  1811 + if toClick then
  1812 + toClick = toClick:effect()
  1813 + end
  1814 +
  1815 + local changItem = enemy:hadBuff(Buff.CHANGE_DROP)
  1816 + if changItem then
  1817 + changItem = table.pack(changItem:effect())
  1818 + end
  1819 +
  1820 + local addMult = 0
  1821 + local dropBuff = enemy:hadBuff(Buff.DROP_BUFF_BY_ENEMY) -- 根据敌人数量变化个数
  1822 + if dropBuff then
  1823 + local team = enemy:getTeam(1, true)
  1824 + addMult = addMult + 0.2 * #team
  1825 + end
  1826 +
  1827 + local dropIds = monsterData.dropid:toArray(true, "=")
  1828 + local drops = {}
  1829 + local cCcount = 0 -- 需要改变为click 的个数
  1830 + for _, dropId in ipairs(dropIds) do
  1831 + local dropData = csvdb["event_dropCsv"][dropId]
  1832 + if dropData then
  1833 + local cur = dropData["range"]:randWeight(true)
  1834 + if cur and cur[1] ~= 0 then
  1835 + if toClick then
  1836 + cCcount = cCcount + 1
1819 else 1837 else
1820 - local dropData = csvdb["event_dropCsv"][monsterData.dropid]  
1821 - item = dropData["range"]:randWeight(true) 1838 + local item = changItem and changItem or cur
  1839 + item[2] = math.floor(item[2] * (1 + addMult))
  1840 + drops[#drops + 1] = item
1822 end 1841 end
1823 end 1842 end
1824 -  
1825 end 1843 end
1826 - if item[1] == 0 then  
1827 - block:clear()  
1828 - self.battle.player:triggerPassive(Passive.BATTLE_WIN)  
1829 - else  
1830 - local buff = enemy:hadBuff(Buff.DROP_BUFF_BY_ENEMY) -- 根据敌人数量变化个数  
1831 - if buff then  
1832 - local team = enemy:getTeam(1, true)  
1833 - item[2] = math.floor(item[2] * (1 + 0.2 * #team))  
1834 - end  
1835 - block:updateEvent({  
1836 - etype = AdvEventType.Drop,  
1837 - item = item  
1838 - })  
1839 - self.battle.player:triggerPassive(Passive.BATTLE_WIN, {itemId = item[1], count = item[2]}) 1844 + end
  1845 + -- 这些奖励可能会有被动加成
  1846 + self.battle.player:triggerPassive(Passive.BATTLE_WIN, {drops = drops})
  1847 +
  1848 + -- 自身带的掉落是不会被改变的 也不会被加成
  1849 + if block.event.item and block.event.item[1] ~= 0 then
  1850 + drops[#drops + 1] = block.event.item
  1851 + end
  1852 +
  1853 + -- 清空当前的格子
  1854 + block:clear()
  1855 +
  1856 + -- 掉落走一波
  1857 + local blocks = self:getCurMap():getEmptyBlocks(roomId, blockId, #drops)
  1858 + for _i, cblock in ipairs(blocks) do
  1859 + cblock:updateEvent({
  1860 + etype = AdvEventType.Drop,
  1861 + item = drops[_i]
  1862 + })
  1863 + if cblock ~= block then
  1864 + self:backBlockChange(cblock.room.roomId, cblock.blockId)
1840 end 1865 end
1841 end 1866 end
  1867 +
  1868 + -- 转换的click走一波
  1869 + local blocks = self:getCurMap():getEmptyBlocks(roomId, blockId, cCcount)
  1870 + for _i, cblock in ipairs(blocks) do
  1871 + cblock:updateEvent({
  1872 + etype = AdvEventType.Click,
  1873 + id = clickId
  1874 + })
  1875 + if cblock ~= block then
  1876 + self:backBlockChange(cblock.room.roomId, cblock.blockId)
  1877 + end
  1878 + end
  1879 +
1842 self:checkTask(Adv.TaskType.Kill, 1, enemyId) 1880 self:checkTask(Adv.TaskType.Kill, 1, enemyId)
1843 self:checkTask(Adv.TaskType.KillAll) 1881 self:checkTask(Adv.TaskType.KillAll)
1844 self:checkAchievement(Adv.AchievType.Kill, 1, enemyId) 1882 self:checkAchievement(Adv.AchievType.Kill, 1, enemyId)
@@ -1850,11 +1888,14 @@ function Adv:enemyDead(enemy, escape) @@ -1850,11 +1888,14 @@ function Adv:enemyDead(enemy, escape)
1850 self:checkAchievement(Adv.AchievType.KillWithAMWeapon, 1) 1888 self:checkAchievement(Adv.AchievType.KillWithAMWeapon, 1)
1851 1889
1852 if monsterData.type == 2 then 1890 if monsterData.type == 2 then
  1891 + self:checkTask(Adv.TaskType.KillBoss, 1, enemyId)
1853 self:checkAchievement(Adv.TaskType.KillBoss, 1, enemyId) 1892 self:checkAchievement(Adv.TaskType.KillBoss, 1, enemyId)
1854 self:checkAchievement(Adv.TaskType.KillBossWithBuff, 1) 1893 self:checkAchievement(Adv.TaskType.KillBossWithBuff, 1)
1855 self:checkAchievement(Adv.TaskType.KillBossNoBuff, 1) 1894 self:checkAchievement(Adv.TaskType.KillBossNoBuff, 1)
1856 self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1) 1895 self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1)
1857 self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1) 1896 self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1)
  1897 + elseif monsterData.type == 3 then
  1898 + self:checkTask(Adv.TaskType.KillElite, 1, enemyId)
1858 end 1899 end
1859 end 1900 end
1860 end 1901 end
src/adv/AdvMap.lua
@@ -349,6 +349,55 @@ function Map:getBlocksBySize(roomId, blockId, size) @@ -349,6 +349,55 @@ function Map:getBlocksBySize(roomId, blockId, size)
349 return blocks 349 return blocks
350 end 350 end
351 351
  352 +-- 找周围的空格子 最多 49 个
  353 +function Map:getEmptyBlocks(roomId, blockId, count)
  354 + local blocks = {}
  355 + if count == 0 then return blocks end
  356 + local room = self.rooms[roomId]
  357 + if not room then return end
  358 + local block = room.blocks[blockId]
  359 + if not block then return end
  360 +
  361 + local col, row = room:tranLtoG(block.col, block.row)
  362 +
  363 + -- 找周围49个格子
  364 + for range = 0, 3 do
  365 + if range == 0 then
  366 + if block.isOpen and not block:getEventType() then
  367 + blocks[#blocks + 1] = block
  368 + if #blocks >= count then
  369 + return blocks
  370 + end
  371 + end
  372 + else
  373 + for _, c in ipairs({col - range , col + range}) do
  374 + for r = row - range, row + range do
  375 + local rroom, rblock = self:getRBByPos(c, r)
  376 + if rroom and rblock.isOpen and not rblock:getEventType() then
  377 + blocks[#blocks + 1] = rblock
  378 + if #blocks >= count then
  379 + return blocks
  380 + end
  381 + end
  382 + end
  383 + end
  384 +
  385 + for _, r in ipairs({row - range , row + range}) do
  386 + for c = col - range + 1, col + range - 1 do
  387 + local rroom, rblock = self:getRBByPos(c, r)
  388 + if rroom and rblock.isOpen and not rblock:getEventType() then
  389 + blocks[#blocks + 1] = rblock
  390 + if #blocks >= count then
  391 + return blocks
  392 + end
  393 + end
  394 + end
  395 + end
  396 + end
  397 + end
  398 + return blocks
  399 +end
  400 +
352 function Map:getEnemysBySize(roomId, blockId, size) 401 function Map:getEnemysBySize(roomId, blockId, size)
353 local blocks = self:getBlocksBySize(roomId, blockId, size) 402 local blocks = self:getBlocksBySize(roomId, blockId, size)
354 local enemys = {} 403 local enemys = {}
@@ -514,7 +563,6 @@ createMap = function(self, mapId, isEnter, isNewRelay) @@ -514,7 +563,6 @@ createMap = function(self, mapId, isEnter, isNewRelay)
514 --交易所 563 --交易所
515 randomFunc[AdvEventType.Trader] = function() 564 randomFunc[AdvEventType.Trader] = function()
516 -- if self.adv.isRelay and isNewRelay then return false end 565 -- if self.adv.isRelay and isNewRelay then return false end
517 - if self.adv.isRelay then return false end  
518 return randomCommon() 566 return randomCommon()
519 end 567 end
520 --建筑 568 --建筑
src/adv/AdvPassive.lua
@@ -485,8 +485,10 @@ end @@ -485,8 +485,10 @@ end
485 485
486 --10=战斗额外掉落次数 486 --10=战斗额外掉落次数
487 function Passive:effect10(count, triggerPms) 487 function Passive:effect10(count, triggerPms)
488 - if triggerPms.count then  
489 - self.owner.battle.adv:award({[triggerPms.itemId] = triggerPms.count * count}, {log = {desc = "passive", int1 = self.id}}) 488 + if triggerPms.drops then
  489 + for _, drop in pairs(triggerPms.drops) do
  490 + drop[2] = drop[2] + math.floor(drop[2] * count)
  491 + end
490 end 492 end
491 end 493 end
492 494
src/adv/AdvTask.lua
@@ -11,6 +11,11 @@ function AdvTask.bind(Adv) @@ -11,6 +11,11 @@ function AdvTask.bind(Adv)
11 Shop = 5, --和指定商人交易N次 11 Shop = 5, --和指定商人交易N次
12 Build = 6, --和指定建筑交互N次 12 Build = 6, --和指定建筑交互N次
13 KillAll = 7, --消灭本层所有怪物 13 KillAll = 7, --消灭本层所有怪物
  14 + KillElite = 8, --击杀精英怪
  15 + KillBoss = 9, --击杀Boss
  16 + RelayOpen = 10, -- 解锁中继营地
  17 + FinishStoryId = 11, -- 完成故事
  18 + Click = 12, -- 点击点击事件
14 } 19 }
15 20
16 -- 检查任务状态 在新领取任务的时候回进行检查 21 -- 检查任务状态 在新领取任务的时候回进行检查
@@ -48,6 +53,13 @@ function AdvTask.bind(Adv) @@ -48,6 +53,13 @@ function AdvTask.bind(Adv)
48 end 53 end
49 end 54 end
50 55
  56 + checkTaskFunc[Adv.TaskType.RelayOpen] = function()
  57 + local limit = tonum(taskData.value2, 0)
  58 + if self.level > limit or (self.level == limit and self.isRelay) then
  59 + return -1
  60 + end
  61 + end
  62 +
51 if checkTaskFunc[taskData.condition] then 63 if checkTaskFunc[taskData.condition] then
52 status = checkTaskFunc[taskData.condition]() 64 status = checkTaskFunc[taskData.condition]()
53 else 65 else
@@ -84,6 +96,7 @@ function AdvTask.bind(Adv) @@ -84,6 +96,7 @@ function AdvTask.bind(Adv)
84 end 96 end
85 end 97 end
86 self:addTask() 98 self:addTask()
  99 + self:checkTask(Adv.TaskType.RelayOpen) --每一层都检查一下
87 end 100 end
88 101
89 function Adv:checkTask(taskType, count, cond) 102 function Adv:checkTask(taskType, count, cond)
src/models/RoleActivity.lua renamed to src/models/Activity.lua
@@ -2,9 +2,10 @@ local Activity = class("Activity", require("shared.ModelBase")) @@ -2,9 +2,10 @@ local Activity = class("Activity", require("shared.ModelBase"))
2 2
3 3
4 Activity.ActivityType = { 4 Activity.ActivityType = {
5 - 5 + DoubleDrop = 1, -- 双倍掉落
6 } 6 }
7 7
  8 +
8 local function checkActivityType(activityType) 9 local function checkActivityType(activityType)
9 if type(activityType) == "string" then 10 if type(activityType) == "string" then
10 activityType = Activity.ActivityType[activityType] 11 activityType = Activity.ActivityType[activityType]
@@ -16,12 +17,12 @@ end @@ -16,12 +17,12 @@ end
16 function Activity:ctor(properties) 17 function Activity:ctor(properties)
17 Activity.super.ctor(self, properties) 18 Activity.super.ctor(self, properties)
18 19
19 - self.open = {}  
20 - 20 + self._isOpen = {}
21 end 21 end
22 22
23 23
24 Activity.schema = { 24 Activity.schema = {
  25 + ctime = {"table", {}}, -- 最近检查某项活动的开始时间 {id = time}
25 _1 = {"table", {}}, 26 _1 = {"table", {}},
26 } 27 }
27 28
@@ -32,5 +33,49 @@ function Activity:data() @@ -32,5 +33,49 @@ function Activity:data()
32 end 33 end
33 34
34 35
  36 +function Activity:updateProperty(params)
  37 + local type, default = table.unpack(self.schema[params.field])
  38 +
  39 + if params.delta then
  40 + self:incrProperty(params.field, params.delta)
  41 + if not params.notNotify then
  42 + self.owner:notifyUpdateProperty(params.field, self:getProperty(params.field))
  43 + end
  44 + return true
  45 + end
  46 + if params.value then
  47 + self:setProperty(params.field, params.value)
  48 + if not params.notNotify then
  49 + self.owner:notifyUpdateProperty(params.field, self:getProperty(params.field))
  50 + end
  51 + return true
  52 + end
  53 + return false
  54 +end
  55 +
  56 +
  57 +function Activity:isOpen(activityType)
  58 + activityType = checkActivityType(activityType)
  59 +
  60 +end
  61 +
  62 +-- 跨天刷新 --登录刷新
  63 +function Activity:checkActivityStatus(ltime, now, notify)
  64 +
  65 +end
  66 +
  67 +local checkActivityFunc = {}
  68 +
  69 +checkActivityFunc[Activity.ActivityType.DoubleDrop] = function(self, notNotify, activityType, ...)
  70 +
  71 +end
  72 +
  73 +function Activity:checkActivityEnter(notNotify, activityType, ...)
  74 + if not activityType then return end
  75 + if checkActivityFunc[activityType] then
  76 + checkActivityFunc[activityType](self, notNotify, activityType, ...)
  77 + end
  78 +end
  79 +
35 80
36 return Activity 81 return Activity
37 \ No newline at end of file 82 \ No newline at end of file
src/models/Role.lua
@@ -23,7 +23,7 @@ function Role:ctor( properties ) @@ -23,7 +23,7 @@ function Role:ctor( properties )
23 self.heros = {} 23 self.heros = {}
24 self.runeBag = {} 24 self.runeBag = {}
25 self.advData = nil 25 self.advData = nil
26 - 26 + self.activity = nil
27 self.advElChapter = tonum(redisproxy:hget("adv_season", "chapter"), globalCsv.adv_endless_default_chapter) -- 无尽模式记录的赛季对应章节 27 self.advElChapter = tonum(redisproxy:hget("adv_season", "chapter"), globalCsv.adv_endless_default_chapter) -- 无尽模式记录的赛季对应章节
28 self.advOverTime = tonum(redisproxy:hget("adv_season", "overTime")) -- 无尽模式关闭时间戳 28 self.advOverTime = tonum(redisproxy:hget("adv_season", "overTime")) -- 无尽模式关闭时间戳
29 end 29 end
src/models/RolePlugin.lua
@@ -10,6 +10,7 @@ function RolePlugin.bind(Role) @@ -10,6 +10,7 @@ function RolePlugin.bind(Role)
10 self:loadRunes() 10 self:loadRunes()
11 self:loadHeros() 11 self:loadHeros()
12 self:loadDiner() 12 self:loadDiner()
  13 + self:loadActivity()
13 end 14 end
14 15
15 function Role:reloadWhenLogin() 16 function Role:reloadWhenLogin()
@@ -507,6 +508,18 @@ function RolePlugin.bind(Role) @@ -507,6 +508,18 @@ function RolePlugin.bind(Role)
507 end 508 end
508 end 509 end
509 510
  511 + function Role:loadActivity()
  512 + local roleId = self:getProperty("id")
  513 + local dataKey = string.format(R_ACTIVITY, roleId)
  514 + self.activity = require("models.Activity").new({key = dataKey})
  515 + self.activity.owner = self
  516 + if not redisproxy:exists(dataKey) then
  517 + self.activity:create()
  518 + else
  519 + self.activity:load()
  520 + end
  521 + end
  522 +
510 function Role:loadDiner() 523 function Role:loadDiner()
511 local roleId = self:getProperty("id") 524 local roleId = self:getProperty("id")
512 local dataKey = string.format(R_DINER, roleId) 525 local dataKey = string.format(R_DINER, roleId)
@@ -1191,6 +1204,7 @@ function RolePlugin.bind(Role) @@ -1191,6 +1204,7 @@ function RolePlugin.bind(Role)
1191 info.wakeL = hero:getProperty("wakeL") 1204 info.wakeL = hero:getProperty("wakeL")
1192 info.blockLevel = hero:getSkillLevel(4) 1205 info.blockLevel = hero:getSkillLevel(4)
1193 info.specialLevel = hero:getSkillLevel(1) 1206 info.specialLevel = hero:getSkillLevel(1)
  1207 + info.passiveLevel = hero:getSkillLevel(3)
1194 info.runeSkill = hero:getRuneSkill(102) 1208 info.runeSkill = hero:getRuneSkill(102)
1195 teamInfo.heros[slot] = info 1209 teamInfo.heros[slot] = info
1196 end 1210 end
@@ -1443,8 +1457,8 @@ function RolePlugin.bind(Role) @@ -1443,8 +1457,8 @@ function RolePlugin.bind(Role)
1443 1457
1444 local rechargeData = csvdb["shop_rechargeCsv"][orderObject:getProperty("rechargeId")] 1458 local rechargeData = csvdb["shop_rechargeCsv"][orderObject:getProperty("rechargeId")]
1445 if rechargeData.rmb ~= tonumber(params.amount) then 1459 if rechargeData.rmb ~= tonumber(params.amount) then
1446 - skynet.error(string.format("fake order: %s, roleId: %d, order: %s",  
1447 - params.transactionId, roleId, partnerOrderStr 1460 + skynet.error(string.format("fake order: %s, roleId: %d, order: %s, rmb %s, get %s",
  1461 + params.transactionId, roleId, partnerOrderStr, rechargeData.rmb, params.amount
1448 )) 1462 ))
1449 return 1463 return
1450 end 1464 end
src/models/RoleTask.lua
@@ -184,7 +184,7 @@ local AchievListener = { @@ -184,7 +184,7 @@ local AchievListener = {
184 } 184 }
185 } 185 }
186 186
187 -local SudokuListerer = { 187 +local SudokuListener = {
188 func = "checkSudokuTask", 188 func = "checkSudokuTask",
189 listen = { 189 listen = {
190 [TaskType.HangPass] = {{1, 1, f("id")}}, 190 [TaskType.HangPass] = {{1, 1, f("id")}},
@@ -205,12 +205,20 @@ local SudokuListerer = { @@ -205,12 +205,20 @@ local SudokuListerer = {
205 } 205 }
206 } 206 }
207 207
  208 +local ActivityListener = {
  209 + func = "checkActivityTask",
  210 + listener = {
  211 +
  212 + }
  213 +}
  214 +
208 215
209 local TaskListeners = { 216 local TaskListeners = {
210 StoryListener, 217 StoryListener,
211 CommonListener, 218 CommonListener,
212 AchievListener, 219 AchievListener,
213 - SudokuListerer, 220 + SudokuListener,
  221 + ActivityListener,
214 } 222 }
215 223
216 local RoleTask = {} 224 local RoleTask = {}
@@ -517,6 +525,10 @@ function RoleTask.bind(Role) @@ -517,6 +525,10 @@ function RoleTask.bind(Role)
517 end 525 end
518 end 526 end
519 527
  528 + function Role:checkActivityTask(notNotify, activityType, ...)
  529 + self.activity:checkActivityEnter(notNotify, activityType, ...)
  530 + end
  531 +
520 end 532 end
521 533
522 return RoleTask 534 return RoleTask
523 \ No newline at end of file 535 \ No newline at end of file