这是无名杀的一个技能,如何让他去除不可声明限定技、觉醒技、隐匿技、使命技、主公技等特殊技能的限制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


要去除不可声明限定技、觉醒技、隐匿技、使命技、主公技等特殊技能的限制,需要修改代码中涉及技能选择和处理的部分。在无名杀里,特殊技能的声明限制通常会在技能选择逻辑里体现。下面是具体的修改思路与代码示例: 修改思路 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. 性能影响:如果技能数量增多,排序和选择技能的逻辑可能会对性能有影响,要留意性能变化,必要时进行优化。 [2025-06-29 08:57:51 | AI写代码神器 | 1326点数解答]
- 这是无名杀的一个技能,如何让他去除不可声明限定技、觉醒技、隐匿技、使命技、主公技等特殊技能的限制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: ["(556点数解答 | 2025-06-29 08:59:58)109
- 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") { ev(1573点数解答 | 2025-06-29 08:55:47)80
- 这是无名杀的一个技能,如何让他去除不可声明限定技、觉醒技、隐匿技、使命技、主公技等特殊技能的限制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(1326点数解答 | 2025-06-29 08:57:51)119
- skill={ audio:2, trigger:{ player:"useCard", }, frequent:true, filter:function (event,player){ if(!event.cards||event.cards.length!=1) return false; if(_status.currentPhase!=player) return false; if(!player.storage.jianying) return false; return get.suit(player.storage.jianying)==get.suit(event.cards[0])|| player.storage.jianying.number==event.cards[0].number; }, content:function (){ player.draw(); }, (713点数解答 | 2025-07-05 23:27:14)94
- skill={ audio:2, trigger:{ global:"phaseBefore", player:"enterGame", }, forced:true, filter:function(event,player){ return (event.name!='phase'||game.phaseNumber==0); }, content:function(){ 'step 0' var cards=player.getCards('h'); player.addGaintag(cards,'dcshuangjia_tag'); }, mod:{ ignoredHandcard:function(card,player){ if(card.hasGaintag('dcshuangjia_tag')){ return true; (165点数解答 | 2025-05-24 04:46:03)121
- skill={ audio:2, trigger:{ global:"phaseBefore", player:"enterGame", }, forced:true, filter:function(event,player){ return (event.name!='phase'||game.phaseNumber==0); }, content:function(){ 'step 0' var cards=player.getCards('h'); player.addGaintag(cards,'dcshuangjia_tag'); }, mod:{ ignoredHandcard:function(card,player){ if(card.hasGaintag('dcshuangjia_tag')){ return true; (245点数解答 | 2025-05-24 04:47:24)126
- skill={ trigger:{ global:"useCard1", }, audio:2, forced:true, firstDo:true, filter:function(event,player,card){ if(get.color(event.card)!='black') return false; return event.card.name=='nanman'&&player!=event.player||event.card.name=='wanjian'&&player!=event.player||event.card.name=='taoyuan'&&player.hp<player.maxHp||event.card.name=='wugu'; }, content:function(){}, mod:{ targetEnabled:function(card){ if((get.type(ca(211点数解答 | 2025-02-01 13:23:26)204
- skill={ trigger:{ player:"shaBegin", }, direct:true, filter:function (event,player){ return event.target.hp>0&&event.target.countCards('he')>0; }, audio:2, logTarget:"target", content:function (){ 'step 0' player.choosePlayerCard(trigger.target,'he', [1,Math.min(trigger.target.countCards('he'),trigger.target.hp)],get.prompt('pojun',trigger.target)); 'step 1' if(result.bool&&result.links.length){ player.logSkill('xinpojun'); if(trigger.target.storage.xinpojun2){ trigger.target.storage.xinpojun2=t(288点数解答 | 2025-07-06 23:39:34)99
- jingyu: { audio: 2, trigger: { global: ["useskill", "logskillbegin", "usecard", "respond"], }, filter(event, player) { if (["global", "equip"].includes(event.type)) return false; let skill = event.sourceskill || event.skill; if (!skill || skill === "jingyu") return false; let info = get.info(skill); while (true) { if (!info || info.charlotte || info.equipskill) return false; if (info && !info.sourceskill) break; skill = info.sourceskill; info = get.info((15点数解答 | 2024-06-06 17:40:23)285
- skill={ audio:2, trigger:{ player:["loseEnd","changeHp"], }, forced:true, filter:function (event,player){ return (player.countCards('h')<Math.min(3,player.maxHp-player.hp)); }, content:function (){ player.draw(Math.min(3,player.maxHp-player.hp)-player.countCards('h')); }, ai:{ noh:true, skillTagFilter:function (player,tag){ if(tag=='noh'&&player.maxHp-player.hp<player.countCards('h')){ return (331点数解答 | 2025-07-01 12:15:43)89
- skill={ trigger:{ global:"gamestart", player:["entergame","phaseusebegin","changehp"], }, audio:"rehuashen", mark:true, intro:{ name:"化身", mark:function (dialog, content, player) { if (player.storage.ymhuashen) { dialog.addtext("已获得的武将牌:"); dialog.add([player.storage.ymhuashen,'character']); } else dialog.addtext("暂无获得的武将牌"); }, }, forced:true, content:funct(209点数解答 | 2025-01-03 09:53:12)187
- skill={ trigger:{ global:"gamestart", player:["entergame","phaseusebegin","changehp"], }, audio:"rehuashen", mark:true, intro:{ name:"化身", mark:function (dialog, content, player) { if (player.storage.ymhuashen) { dialog.addtext("已获得的武将牌:"); dialog.add([player.storage.ymhuashen,'character']); } else dialog.addtext("暂无获得的武将牌"); }, }, forced:true, content:funct(1259点数解答 | 2025-01-03 09:53:43)190