Commit db3c56add8efd936a3a55f4b2b55cab18a708658

Authored by zhouhaihai
1 parent 596ac19f

冒险相关

src/GlobalVar.lua
... ... @@ -52,7 +52,6 @@ ItemType = {
52 52 FuncOpenType = {
53 53 AdvEndless = 2, -- 无尽模式
54 54 AdvRelay = 3, -- 中继开放
55   - AdvArtifact = 4, -- 神器开放
56 55 AdvWS = 6, -- 工坊解锁
57 56 AdvWheelSurf = 7, -- 抽奖解锁
58 57 }
... ...
src/actions/AdvAction.lua
... ... @@ -296,7 +296,7 @@ function _M.useItemRpc(agent, data)
296 296 adv:cost({[itemId] = count}, {})
297 297 end
298 298  
299   - adv:checkAchievement(Adv.AchievType.UseItem, count, itemId)
  299 + adv:checkAchievement(adv.AchievType.UseItem, count, itemId)
300 300 adv:afterRound()
301 301 adv:saveDB()
302 302  
... ...
src/actions/GmAction.lua
... ... @@ -290,6 +290,19 @@ function _M.idlec(role, pms)
290 290 return "成功"
291 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 306 table.insert(helpDes, {"爬塔到指定层", "tower", "层数"})
294 307 function _M.tower(role, pms)
295 308 local level = tonum(pms.pm1, 1)
... ...
src/adv/Adv.lua
... ... @@ -908,6 +908,12 @@ function Adv:doActive(activeId, target)
908 908 return true
909 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 917 for _, effect in ipairs(activeData.effect:toArray()) do
912 918 local cur = effect:toArray(true, "=")
913 919 if doActiveEffect[cur[1]] then
... ... @@ -964,25 +970,32 @@ function Adv:enemyDead(enemy, escape)
964 970 local monsterData = csvdb["event_monsterCsv"][enemyId]
965 971 self:scoreChange(AdvScoreType.Kill, monsterData.type)
966 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 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 999 end
987 1000 self:checkTask(Adv.TaskType.Kill, 1, enemyId)
988 1001 self:checkTask(Adv.TaskType.KillAll)
... ...
src/adv/AdvBuff.lua
... ... @@ -26,6 +26,7 @@ Buff.DONT_DEFEND = 21 -- 不看守地板 -- 怪周围点半可点击
26 26 Buff.EXP_UP = 24 -- 杀敌经验提高
27 27 Buff.DISABLE_BUFF = 25 -- 禁用固有技
28 28 Buff.ATTR_CHANGE_COND = 26 --属性变化(状态)有条件
  29 +Buff.CHANGE_DROP_TO_CLICK = 27 --掉落转换为click
29 30  
30 31 --角色一些属性的变化
31 32 local function commonAttr(_Buff, attrName)
... ... @@ -178,6 +179,12 @@ local BuffFactory = {
178 179 end
179 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 188 [Buff.IMMNUE_BUFF] = function(_Buff)
182 189 _Buff._init = function(self, data)
183 190 self.count = self.buffData.effectValue3
... ...
src/models/Role.lua
... ... @@ -65,6 +65,7 @@ Role.schema = {
65 65 advL = {"table", {0, 0}}, -- 冒险队等级 {lv, winCount}
66 66 advElM = {"number", 0}, -- 无尽模式通关的最高层数 endless max layer
67 67 advElS = {"number", globalCsv.adv_endless_season}, -- 无尽模式记录的赛季 endless season
  68 + advAFOpen = {"table", {}}, -- 解锁的神器
68 69  
69 70 --挂机相关
70 71 hangPass = {"table", {}}, -- 挂机通过的最大关卡
... ...
src/models/RolePlugin.lua
... ... @@ -677,7 +677,9 @@ function RolePlugin.bind(Role)
677 677 count = count or 1
678 678 if csvdb["itemCsv"][func] and csvdb["itemCsv"][func].type == ItemType.FuncOpen then
679 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 683 if unlockData.value1 == 0 or unlockData.value1 == 1 then
682 684 self:changeUpdates({{type = "funcOpen", field = unlockData.type, value = 1}})
683 685 else
... ...