酷代码 AI
菜单

生成无名杀1.11.0版本的三国杀武将技能代码: 技能名称:韬晦 技能描述:当你于回合外成为其他角色使用牌的唯一目标时,你可以选择一项:1.观看牌堆顶一张牌,若为红色,你获得之。若此牌为红桃,则取消此牌并摸1张黑色牌;2.从牌堆底获得两张黑色牌(此牌不计入手牌上限);3. 背水:你与目标角色各自获得一个“背水”标记。拥有“背水”标记的角色受到伤害时,此伤害+1。所有“背水”标记于你的下个回合开始前移除。此效果最多使伤害+2。 (背水:同时执行前面的所有项,如果无法执行则跳过,然后执行后续效果。)

```javascript // 无名杀1.11.0版本的三国杀武将技能代码:韬晦 game.import("extension", function (lib, game, ui, get, ai, _status) { return { name: "韬晦技能扩展", content: function (config, pack) { // 定义技能 lib.skill.taohui = { trigger: { target: "useCardToTargeted", }, filter: function (event, player) { // 回合外,且是唯一目标 return player != _status.currentPhase && event.targets && event.targets.length == 1; }, content: function () { "step 0" player.chooseControl(["选项1:观看牌堆顶一张牌", "选项2:从牌堆底获得两张黑色牌", "选项3:背水"], function () { // AI选择逻辑,可以根据实际情况调整 return "选项1:观看牌堆顶一张牌"; }).set("prompt", "请选择一项执行"); "step 1" if (result.control == "选项1:观看牌堆顶一张牌") { var card = get.cards()[0]; game.log(player, "观看了牌堆顶的一张牌"); player.showCards(card); if (get.color(card) == "red") { player.gain(card); game.log(player, "获得了", card); if (get.suit(card) == "heart") { game.cancel(card); var blackCard = get.cards("bottom", 1, function (card) { return get.color(card) == "black"; })[0]; if (blackCard) { player.gain(blackCard); game.log(player, "摸了一张黑色牌", blackCard); } } } } else if (result.control == "选项2:从牌堆底获得两张黑色牌") { var blackCards = get.cards("bottom", 2, function (card) { return get.color(card) == "black"; }); if (blackCards.length > 0) { player.gain(blackCards); game.log(player, "从牌堆底获得了", blackCards); // 不计入手牌上限,所以不需要处理手牌上限 } } else if (result.control == "选项3:背水") { // 给双方添加背水标记 player.addMark("beishui", 1, false); trigger.player.addMark("beishui", 1, false); game.log(player, "和", trigger.player, "获得了背水标记"); } }, // 背水标记的效果定义 mark: { beishui: { intro: { content: "背水:受到伤害时,伤害+1(最多+2)", }, }, }, // 伤害加成效果 group: ["beishui_damage"], subSkill: { damage: { trigger: { source: "damageBegin", }, filter: function (event, player) { return event.player.hasMark("beishui") && event.player.getMark("beishui") > 0; }, content: function () { // 伤害+1,但最多+2 trigger.num = Math.min(trigger.num + 1, trigger.player.getMark("beishui") + 1); }, }, }, // 回合开始时移除背水标记 events: ["phaseBegin"], content: function () { if (_status.currentPhase == player) { // 移除所有背水标记 game.countPlayer(function (current) { current.removeMark("beishui", current.getMark("beishui")); }); } }, }; // 将技能添加到武将 lib.character["武将名称"] = ["", "", ["taohui"], "群", 3, "武将名称"]; }, precontent: function () { // 预加载内容,如果有需要可以在这里添加 }, help: {}, config: {}, }; }); ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 触发条件的判断要准确,避免技能在不恰当的时候触发。 2. 标记的管理要清晰,确保标记的添加、移除和效果触发都符合预期。 3. 伤害加成的逻辑要处理好,避免无限叠加或计算错误。 [2026-01-12 21:02:27 | AI写代码神器 | 1168点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多