无名杀吧 关注:64,835贴子:289,383
  • 20回复贴,共1

无名杀ai编程claude3.7案例,又快又准!大幅降低扩展编程门槛!

只看楼主收藏回复

## 目录
一,操作方法
二,生成技能案例
三,未来展望


IP属地:广东1楼2025-03-01 15:23回复
    ## 一,操作方法
    1,先把无名杀官方代码教程文档做成知识库,
    无名杀教程文档在
    https://tieba.baidu.com/p/9441795347

    https://antarctics.github.io/noname/#/./chapter1-basics
    2,提问时关联知识库
    如我希望技能发动时除了播放台词,还播放背景音乐,提问后得到如下回答。
    可以看到回答引用了知识库的内容并创新。

    3,验证
    验证录屏我就不放啦,放一下代码案例。
    下图是官方教程,即知识库里的内容。

    下面两张图是游戏里已经出现过的类似代码。



    IP属地:广东2楼2025-03-01 15:27
    收起回复
      ## 二,生成技能案例
      1,先来个简单的,轻轻松松~

      "lock_skill": {
      charlotte: true, // 锁定技标记
      trigger: {player: 'damageBegin'},
      filter: function(event, player){
      return player.isTurnedOver(); // 英灵牌背面朝上
      },
      content: async function(){
      await player.turnOver(); // 将英灵牌翻至正面
      await player.draw(3); // 摸三张牌
      }
      }


      IP属地:广东3楼2025-03-01 15:28
      回复
        2,来个复杂点的,复合技能,依然一次成功~
        生成一个技能代码:"出牌阶段限一次,你可以将一张手牌交给一名其他角色,其获得如下效果直到你的下回合开始:其可以将黑色牌当做【杀】,红色牌当做【闪】使用。其第一次触发“使用【杀】/【闪】结算完成后”的时机时,你摸三张牌。"

        "custom_skill": {
        enable: "phaseUse",
        usable: 1,
        filter: function(event, player) {
        return player.countCards('h') > 0; // 需要有手牌
        },
        filterTarget: function(card, player, target) {
        return target != player; // 不能选择自己
        },
        content: async function(event, trigger, player) {
        let target = await player.chooseTarget('选择一名目标角色', true)
        .set('ai', target => -get.attitude(player, target))
        .forResult();
        if (target.bool) {
        event.target = target.targets[0];
        // 给予效果
        event.target.addTempSkill('custom_effect', { player: 'phaseBegin' });
        // 触发摸牌效果
        event.target.addTempSkill('drawThree', { player: 'useCardAfter' });
        }
        },
        ai: {
        order: 8,
        result: {
        target: 1
        }
        }
        },
        "custom_effect": {
        trigger: {
        player: 'useCard',
        },
        forced: true,
        content: function() {
        // 处理黑色牌当做【杀】和红色牌当做【闪】的逻辑
        }
        },
        "drawThree": {
        trigger: {
        player: 'useCardAfter',
        },
        forced: true,
        content: async function() {
        await player.draw(3); // 摸三张牌
        }
        }


        IP属地:广东4楼2025-03-01 15:29
        回复
          3,再测一个复合技能,依然ok~
          生成一个技能代码:'①结束阶段,你摸两张牌,然后将两张牌随机插入牌堆前2X张牌的位置中(X为角色数,选择牌的牌名对其他角色可见)。②当有其他角色使用“遗珠”牌指定唯一目标时,你可清除对应的“遗珠”标记并取消此目标,然后你可使用此牌。③当有“遗珠”牌进入弃牌堆后,你摸一张牌并清除对应的“遗珠”标记。',

          "yourSkill": {
          audio: 2,
          enable: "phaseEnd",
          usable: 1,
          content: async function (event, player) {
          // 结束阶段,你摸两张牌
          await player.draw(2);
          // 将两张牌随机插入牌堆前2X张牌的位置中(X为角色数,选择牌的牌名对其他角色可见)
          let cards = player.getCards('h').slice(-2);
          let numPlayers = game.players.length;
          let insertPosition = Math.min(numPlayers * 2, lib.cardPile.length);
          cards.forEach(card => {
          player.$throw(card);
          game.cardsDiscard(card);
          lib.cardPile.splice(insertPosition, 0, card);
          });
          },
          trigger: {
          player: "useCardToTargeted"
          },
          forced: true,
          content: async function (event, trigger, player) {
          // 当有其他角色使用“遗珠”牌指定唯一目标时
          if (trigger.card.name === '遗珠') {
          // 清除对应的“遗珠”标记并取消此目标
          player.removeMark('遗珠');
          trigger.target = null;
          // 你可使用此牌
          await player.useCard(trigger.card);
          }
          },
          trigger: {
          player: "discardAfter"
          },
          forced: true,
          content: async function (event, trigger, player) {
          // 当有“遗珠”牌进入弃牌堆后
          if (event.card.name === '遗珠') {
          // 你摸一张牌并清除对应的“遗珠”标记
          await player.draw();
          player.removeMark('遗珠');
          }
          }
          }


          IP属地:广东5楼2025-03-01 15:29
          回复
            ## 三,未来展望
            对无名杀官方团队来说,能缩短技能编程的工作量;
            对扩展作者来说,能把精力集中到最有趣的技能设计环节,大幅降低编程门槛!
            例如我这种扩展作者,以往大多数时间是搬运、组合技能代码,以后能把主要精力用在构思技能上,神孙权什么的说来就来~


            IP属地:广东6楼2025-03-01 15:32
            回复
              好,智齿✊


              IP属地:重庆来自Android客户端7楼2025-03-01 17:19
              回复
                必须支持


                IP属地:上海来自Android客户端8楼2025-03-03 00:29
                回复
                  问下你用的是deepseek吗


                  IP属地:江西来自iPhone客户端9楼2025-03-06 13:16
                  收起回复
                    虽然但是,如何关联知识库呢?


                    IP属地:北京10楼2025-03-10 21:18
                    收起回复
                      大佬,可以配合cursor,然后在项目路径放代码示例让claude3.7参考,并给出技能代码嘛,单用claude3.7我记得有点麻烦,好像要魔法什么的


                      IP属地:广东来自Android客户端11楼2025-03-18 13:45
                      收起回复
                        支持


                        IP属地:四川来自Android客户端12楼2025-03-22 19:00
                        回复