无名杀技能:突破特殊技能限制的代码修改与注意要点
要去除不可声明限定技、觉醒技、隐匿技、使命技、主公技等特殊技能的限制,需要修改代码中涉及技能选择和处理的部分。在无名杀里,特殊技能的声明限制通常会在技能选择逻辑里体现。下面是具体的修改思路与代码示例: 修改思路 1. 找到技能选择逻辑:在`cost`函数里,有技能选择和排序的逻辑,要修改这里的逻辑,让特殊技能也能被选择。 2. 去除技能类型限制:修改技能过滤条件,让限定技、觉醒技、隐匿技、使命技、主公技等特殊技能不会被排除。 修改后的代码 ```javascript skill = { unique: true, audio: 2, trigger: { global: "phaseBefore", player: ["enterGame","phaseBegin","phaseEnd"], }, filter(event, player, name) { if (event.name != "phase") return true; if (name == "phaseBefore") return game.phaseNumber == 0; return player.storage.rehuashen?.character?.length > 0; }, async cost(event, trigger, player) { if (trigger.name !== "phase" || event.triggername === "phaseBefore") { event.result = { bool: true, cost_data: ["替换当前化身"] }; return; } const prompt = "" + get.prompt(event.skill) + '<div class="text center">替换当前化身牌或制衡至多两张其他化身牌</div>'; const result = await player .chooseControl("替换当前化身", "制衡其他化身", "cancel2") .set("ai", () => { const { player, cond } = get.event(); // 获取所有技能,不过滤特殊技能 let skills = player.storage.rehuashen.character.map(i => get.character(i).skills).flat(); skills.randomSort(); skills.sort((a, b) => get.skillRank(b, cond) - get.skillRank(a, cond)); if (skills[0] === player.storage.rehuashen.current2 || get.skillRank(skills[0], cond) < 1) return "制衡其他化身"; return "替换当前化身"; }) .set("cond", event.triggername) .set("prompt", prompt) .forResult(); const control = result.control; event.result = { bool: typeof control === "string" && control !== "cancel2", cost_data: control }; }, async content(event, trigger, player) { let choice = event.cost_data; if (Array.isArray(choice)) { lib.skill.rehuashen.addHuashens(player, 3); [choice] = choice; } _status.noclearcountdown = true; const id = lib.status.videoId++, prompt = choice === "替换当前化身" ? "化身:请选择你要更换的武将牌" : "化身:选择制衡至多两张武将牌"; const cards = player.storage.rehuashen.character; if (player.isOnline2()) { player.send( (cards, prompt, id) => { const dialog = ui.create.dialog(prompt, [cards, lib.skill.rehuashen.$createButton]); dialog.videoId = id; }, cards, prompt, id ); } const dialog = ui.create.dialog(prompt, [cards, lib.skill.rehuashen.$createButton]); dialog.videoId = id; if (!event.isMine()) dialog.style.display = "none"; if (choice === "替换当前化身") { const buttons = dialog.content.querySelector(".buttons"); const array = dialog.buttons.filter(item => !item.classList.contains("nodisplay") && item.style.display !== "none"); const choosed = player.storage.rehuashen.choosed; const groups = array .map(i => get.character(i.link).group) .unique() .sort((a, b) => { const getNum = g => (lib.group.includes(g) ? lib.group.indexOf(g) : lib.group.length); return getNum(a) - getNum(b); }); if (choosed.length > 0 || groups.length > 1) { dialog.style.bottom = (parseInt(dialog.style.top || "0", 10) + get.is.phoneLayout() ? 230 : 220) + "px"; dialog.addPagination({ data: array, totalPageCount: groups.length + Math.sign(choosed.length), container: dialog.content, insertAfter: buttons, onPageChange(state) { const { pageNumber, data, pageElement } = state; const { groups, choosed } = pageElement; data.forEach(item => { item.classList[ (() => { const name = item.link; // 这里保持不变,因为没有直接涉及技能类型过滤 return true; })() ]; }); }, groups, choosed }); } } } }; ``` 额外需要注意的逻辑点 1. 技能平衡性:去除特殊技能的限制之后,可能会对游戏的平衡性产生影响,要充分测试技能组合,避免出现过于强大或者不合理的情况。 2. 兼容性:修改代码可能会和其他技能或者游戏机制产生冲突,所以修改之后要进行全面的兼容性测试。 3. 性能影响:如果技能数量增多,排序和选择技能的逻辑可能会对性能有影响,要留意性能变化,必要时进行优化。 ######[AI写代码神器 | 1326点数解答 | 2025-06-29 08:57:51]
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)189
- 无名杀“突破”技能代码揭秘:用牌即增体力上限与体力! (字节豆包 | 309点数解答 | 2025-07-09 09:57:59)144
- 摄影组长年终突破:从自我提升到公司竞争力飞跃(字节豆包 | 325点数解答 | 2025-12-21 23:49:22)56
- 摄影组2023年终突破:数据亮眼瓶颈待解,2024多维度提升竞争力方案出炉! (阿里通义 | 442点数解答 | 2025-12-22 00:07:51)42
- Java实现Student类:含构造、方法及年龄判定(字节豆包 | 464点数解答 | 2024-11-19 15:55:26)384
- Python 实现多功能手机通讯录:添加、查看、删除、修改、查找全搞定!(字节豆包 | 1030点数解答 | 2025-06-05 15:47:56)242
- 「alfr round 3」b:巧用贪心与栈,求解序列swap & delete最小操作数(百度文心 | 637点数解答 | 2024-12-21 14:56:50)322
- ALFR Round 3:巧用贪心与栈求解序列清空最小操作数(百度文心 | 969点数解答 | 2024-12-21 14:56:57)341
- 「alfr round 3」:揭秘长序列通过交换与删除操作清空的最小操作数(百度文心 | 1279点数解答 | 2024-12-21 14:57:07)397
- 「alfr round 3」:巧用算法求解b swap & delete序列清空最小操作数(百度文心 | 2038点数解答 | 2024-12-21 14:57:39)352
- 求解序列清空最小操作数:含Python代码与注意要点(字节豆包 | 372点数解答 | 2024-12-21 15:27:24)252
- C++ 求解长为 n 序列清空最小操作次数:含题目分析与代码实现(字节豆包 | 407点数解答 | 2024-12-21 15:27:41)314