Commit db3c56add8efd936a3a55f4b2b55cab18a708658

Authored by zhouhaihai
1 parent 596ac19f

冒险相关

@@ -52,7 +52,6 @@ ItemType = { @@ -52,7 +52,6 @@ ItemType = {
52 FuncOpenType = { 52 FuncOpenType = {
53 AdvEndless = 2, -- 无尽模式 53 AdvEndless = 2, -- 无尽模式
54 AdvRelay = 3, -- 中继开放 54 AdvRelay = 3, -- 中继开放
55 - AdvArtifact = 4, -- 神器开放  
56 AdvWS = 6, -- 工坊解锁 55 AdvWS = 6, -- 工坊解锁
57 AdvWheelSurf = 7, -- 抽奖解锁 56 AdvWheelSurf = 7, -- 抽奖解锁
58 } 57 }
src/actions/AdvAction.lua
@@ -296,7 +296,7 @@ function _M.useItemRpc(agent, data) @@ -296,7 +296,7 @@ function _M.useItemRpc(agent, data)
296 adv:cost({[itemId] = count}, {}) 296 adv:cost({[itemId] = count}, {})
297 end 297 end
298 298
299 - adv:checkAchievement(Adv.AchievType.UseItem, count, itemId) 299 + adv:checkAchievement(adv.AchievType.UseItem, count, itemId)
300 adv:afterRound() 300 adv:afterRound()
301 adv:saveDB() 301 adv:saveDB()
302 302
src/actions/GmAction.lua
@@ -290,6 +290,19 @@ function _M.idlec(role, pms) @@ -290,6 +290,19 @@ function _M.idlec(role, pms)
290 return "成功" 290 return "成功"
291 end 291 end
292 292
  293 +table.insert(helpDes, {"获取冒险内道具", "advit"})
  294 +function _M.advit(role, pms)
  295 + local advItems = role:getProperty("advItems")
  296 + for k, v in pairs(csvdb["adv_itemCsv"]) do
  297 + if csvdb["itemCsv"][k] and v.effect ~= 0 then
  298 + advItems = advItems:incrv(k, 1)
  299 + end
  300 + end
  301 + role:updateProperty({field = "advItems", value = advItems})
  302 + return "成功"
  303 +end
  304 +
  305 +
293 table.insert(helpDes, {"爬塔到指定层", "tower", "层数"}) 306 table.insert(helpDes, {"爬塔到指定层", "tower", "层数"})
294 function _M.tower(role, pms) 307 function _M.tower(role, pms)
295 local level = tonum(pms.pm1, 1) 308 local level = tonum(pms.pm1, 1)
@@ -908,6 +908,12 @@ function Adv:doActive(activeId, target) @@ -908,6 +908,12 @@ function Adv:doActive(activeId, target)
908 return true 908 return true
909 end 909 end
910 910
  911 + -- 9: 给玩家增加buff
  912 + doActiveEffect[9] = function(_, buffId)
  913 + self.battle.player:addBuff(buffId, self.battle.player)
  914 + return true
  915 + end
  916 +
911 for _, effect in ipairs(activeData.effect:toArray()) do 917 for _, effect in ipairs(activeData.effect:toArray()) do
912 local cur = effect:toArray(true, "=") 918 local cur = effect:toArray(true, "=")
913 if doActiveEffect[cur[1]] then 919 if doActiveEffect[cur[1]] then
@@ -964,25 +970,32 @@ function Adv:enemyDead(enemy, escape) @@ -964,25 +970,32 @@ function Adv:enemyDead(enemy, escape)
964 local monsterData = csvdb["event_monsterCsv"][enemyId] 970 local monsterData = csvdb["event_monsterCsv"][enemyId]
965 self:scoreChange(AdvScoreType.Kill, monsterData.type) 971 self:scoreChange(AdvScoreType.Kill, monsterData.type)
966 self.battle.player:addExp(monsterData.exp) 972 self.battle.player:addExp(monsterData.exp)
967 - local item = block.event.item  
968 - if not item then  
969 - local buff = enemy:hadBuff(Buff.CHANGE_DROP)  
970 - if buff then  
971 - item = table.pack(buff:effect())  
972 - else  
973 - local dropData = csvdb["event_dropCsv"][monsterData.dropid]  
974 - item = dropData["range"]:randWeight(true)  
975 - end  
976 -  
977 - end  
978 -  
979 - if item[1] == 0 then  
980 - block:clear()  
981 - else 973 + if enemy:hadBuff(Buff.CHANGE_DROP_TO_CLICK) then -- 掉落转为 click
  974 + local clickId = buff:effect()
982 block:updateEvent({ 975 block:updateEvent({
983 - etype = AdvEventType.Drop,  
984 - item = item 976 + etype = AdvEventType.Click,
  977 + id = clickId
985 }) 978 })
  979 + else
  980 + local item = block.event.item
  981 + if not item then
  982 + local buff = enemy:hadBuff(Buff.CHANGE_DROP)
  983 + if buff then
  984 + item = table.pack(buff:effect())
  985 + else
  986 + local dropData = csvdb["event_dropCsv"][monsterData.dropid]
  987 + item = dropData["range"]:randWeight(true)
  988 + end
  989 +
  990 + end
  991 + if item[1] == 0 then
  992 + block:clear()
  993 + else
  994 + block:updateEvent({
  995 + etype = AdvEventType.Drop,
  996 + item = item
  997 + })
  998 + end
986 end 999 end
987 self:checkTask(Adv.TaskType.Kill, 1, enemyId) 1000 self:checkTask(Adv.TaskType.Kill, 1, enemyId)
988 self:checkTask(Adv.TaskType.KillAll) 1001 self:checkTask(Adv.TaskType.KillAll)
src/adv/AdvBuff.lua
@@ -26,6 +26,7 @@ Buff.DONT_DEFEND = 21 -- 不看守地板 -- 怪周围点半可点击 @@ -26,6 +26,7 @@ Buff.DONT_DEFEND = 21 -- 不看守地板 -- 怪周围点半可点击
26 Buff.EXP_UP = 24 -- 杀敌经验提高 26 Buff.EXP_UP = 24 -- 杀敌经验提高
27 Buff.DISABLE_BUFF = 25 -- 禁用固有技 27 Buff.DISABLE_BUFF = 25 -- 禁用固有技
28 Buff.ATTR_CHANGE_COND = 26 --属性变化(状态)有条件 28 Buff.ATTR_CHANGE_COND = 26 --属性变化(状态)有条件
  29 +Buff.CHANGE_DROP_TO_CLICK = 27 --掉落转换为click
29 30
30 --角色一些属性的变化 31 --角色一些属性的变化
31 local function commonAttr(_Buff, attrName) 32 local function commonAttr(_Buff, attrName)
@@ -178,6 +179,12 @@ local BuffFactory = { @@ -178,6 +179,12 @@ local BuffFactory = {
178 end 179 end
179 end, 180 end,
180 181
  182 + [Buff.CHANGE_DROP_TO_CLICK] = function(_Buff)
  183 + _Buff._effectValue = function(self)
  184 + return self.buffData.effectValue1
  185 + end
  186 + end,
  187 +
181 [Buff.IMMNUE_BUFF] = function(_Buff) 188 [Buff.IMMNUE_BUFF] = function(_Buff)
182 _Buff._init = function(self, data) 189 _Buff._init = function(self, data)
183 self.count = self.buffData.effectValue3 190 self.count = self.buffData.effectValue3
src/models/Role.lua
@@ -65,6 +65,7 @@ Role.schema = { @@ -65,6 +65,7 @@ Role.schema = {
65 advL = {"table", {0, 0}}, -- 冒险队等级 {lv, winCount} 65 advL = {"table", {0, 0}}, -- 冒险队等级 {lv, winCount}
66 advElM = {"number", 0}, -- 无尽模式通关的最高层数 endless max layer 66 advElM = {"number", 0}, -- 无尽模式通关的最高层数 endless max layer
67 advElS = {"number", globalCsv.adv_endless_season}, -- 无尽模式记录的赛季 endless season 67 advElS = {"number", globalCsv.adv_endless_season}, -- 无尽模式记录的赛季 endless season
  68 + advAFOpen = {"table", {}}, -- 解锁的神器
68 69
69 --挂机相关 70 --挂机相关
70 hangPass = {"table", {}}, -- 挂机通过的最大关卡 71 hangPass = {"table", {}}, -- 挂机通过的最大关卡
src/models/RolePlugin.lua
@@ -677,7 +677,9 @@ function RolePlugin.bind(Role) @@ -677,7 +677,9 @@ function RolePlugin.bind(Role)
677 count = count or 1 677 count = count or 1
678 if csvdb["itemCsv"][func] and csvdb["itemCsv"][func].type == ItemType.FuncOpen then 678 if csvdb["itemCsv"][func] and csvdb["itemCsv"][func].type == ItemType.FuncOpen then
679 local unlockData = csvdb["unlockCsv"][func] 679 local unlockData = csvdb["unlockCsv"][func]
680 - if TypeIsFunc[unlockData.type] then 680 + if unlockData.type == 4 then -- 解锁神器
  681 + self:changeUpdates({{type = "advAFOpen", field = unlockData.value1, value = 1}})
  682 + else TypeIsFunc[unlockData.type] then
681 if unlockData.value1 == 0 or unlockData.value1 == 1 then 683 if unlockData.value1 == 0 or unlockData.value1 == 1 then
682 self:changeUpdates({{type = "funcOpen", field = unlockData.type, value = 1}}) 684 self:changeUpdates({{type = "funcOpen", field = unlockData.type, value = 1}})
683 else 685 else