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