Commit db3c56add8efd936a3a55f4b2b55cab18a708658
1 parent
596ac19f
冒险相关
Showing
7 changed files
with
55 additions
and
20 deletions
Show diff stats
src/GlobalVar.lua
| @@ -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) |
src/adv/Adv.lua
| @@ -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 |