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 |