欢迎光临散文网 会员登陆 & 注册

新手,自己闲着没事做的无名杀武将(第三/四期,李梦蝶/宋星寒)

2022-10-19 15:25 作者:殇之迎微  | 我要投稿

闲着没事自己做的武将,目前做了八九个了。作为新手就是为了熟悉一下技能中的代码意思,自己做的第三/四个人物,不想多说话,技能血量如下图。有想用代码的,下文拿走。不过记得和我说一声。能帮助你们最好,不能帮就算了。不过,我受了那么多累做的,终于调试通了,经过前两期的试探,这期应该不难拿了吧。

李梦蝶技能图
宋星寒技能图


首先就是李梦蝶的一技能,魔导,看技能效果就知道,单纯就是一个改了一点的缝合技能,前半段就是小乔的弱化的红颜的魔改版“黑颜色”,后半段就是ol界钟会的技能,技能过于简单(不得不说的是ol界钟会的技能真的很强)。放下面随便取吧。由于技能太简单,不用跟我说了。

魔导

skill={

    group:["xinquanji","xinzili"],

    trigger:{

        global:"judge",

    },

    direct:true,

    filter:function(event,player){

        if(event.fixedResult&&event.fixedResult.suit) return event.fixedResult.suit=='spade';

        return get.suit(event.player.judging[0],event.player)=='spade';

    },

    content:function(){

        "step 0"

        var str='魔导:'+get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+

        get.translation(trigger.player.judging[0])+',请将其改为一种花色';

        player.chooseControl('spade','heart','diamond','club').set('prompt',str).set('ai',function(){

            var judging=_status.event.judging;

            var trigger=_status.event.getTrigger();

            var res1=trigger.judge(judging);

            var list=lib.suit.slice(0);

            var attitude=get.attitude(player,trigger.player);

            if(attitude==0) return 0;

            var getj=function(suit){

                return trigger.judge({

                    name:get.name(judging),

                    nature:get.nature(judging),

                    suit:suit,

                    number:get.number(judging),

                })

            };

            list.sort(function(a,b){

                return (getj(b)-getj(a))*get.sgn(attitude);

            });

            return list[0];

        }).set('judging',trigger.player.judging[0]);

        "step 1"

        if(result.control!='cancel2'){

            player.addExpose(0.25);

            player.popup(result.control);

            game.log(player,'将判定结果改为了','#y'+get.translation(result.control+2));

            if(!trigger.fixedResult) trigger.fixedResult={};

            trigger.fixedResult.suit=result.control;

            trigger.fixedResult.color=get.color({suit:result.control});

        }

    },

    ai:{

        rejudge:true,

        tag:{

            rejudge:0.4,

        },

        expose:0.5,

    },

}



宋星寒的技能就是一个纯粹的缝合技能。千军=加强版的毅重+江东小白板(划掉)霸王的激昂+天妒+英姿。没啥好说的只要会缝合,那这就是简简单单。技能下面拿。


千军

skill={

    forced:true,

    group:["千军_1","千军_2","千军_3","千军_4"],

    subSkill:{

        "1":{

            forced:true,

            trigger:{

                target:"shaBefore",

            },

            audio:2,

            filter:function(event,player){

        return (event.card.name=='sha'&&get.color(event.card)=='black')

    },

            content:function(){

        trigger.cancel();

    },

            ai:{

                effect:{

                    target:function(card,player,target){

                if(player==target&&get.subtype(card)=='equip2'){

                    if(get.equipValue(card)<=8) return 0;

                }

                if(target.getEquip(2)) return;

                if(card.name=='sha'&&get.color(card)=='black') return 'zerotarget';

            },

                },

            },

            sub:true,

        },

        "2":{

            shaRelated:true,

            audio:2,

            preHidden:true,

            audioname:["sp_lvmeng","re_sunben","re_sunce"],

            trigger:{

                player:"useCardToPlayered",

                target:"useCardToTargeted",

            },

            filter:function(event,player){

        if(!(event.card.name=='juedou'||(event.card.name=='sha'&&get.color(event.card)=='red'))) return false;

        return player==event.target||event.getParent().triggeredTargets3.length==1;

    },

            frequent:true,

            content:function(){

        player.draw();

    },

            ai:{

                effect:{

                    target:function(card,player,target){

                if(card.name=='sha'&&get.color(card)=='red') return [1,0.6];

            },

                    player:function(card,player,target){

                if(card.name=='sha'&&get.color(card)=='red') return [1,1];

            },

                },

            },

            sub:true,

        },

        "3":{

            trigger:{

                player:"judgeEnd",

            },

            preHidden:true,

            frequent:function(event){

        if(event.result.card.name=='du') return false;

        //if(get.mode()=='guozhan') return false;

        return true;

    },

            check:function(event){

        if(event.result.card.name=='du') return false;

        return true;

    },

            filter:function(event,player){

        return get.position(event.result.card,true)=='o';

    },

            content:function(){

        player.gain(trigger.result.card,'gain2');

    },

            sub:true,

        },

        "4":{

            trigger:{

                player:"phaseDrawBegin2",

            },

            frequent:true,

            filter:function(event,player){

        return !event.numFixed;

    },

            content:function(){

        trigger.num++;

    },

            ai:{

                threaten:1.3,

            },

            sub:true,

        },

    },

}


魔导说完了接着说说李梦蝶的二技能吧,绝情。就是春哥的绝情,没什么好说的。

绝情

skill={

    trigger:{

        source:"damageBefore",

    },

    forced:true,

    audio:2,

    check:function(){return false;},

    content:function(){

        trigger.cancel();

        trigger.player.loseHp(trigger.num);

    },

    ai:{

        jueqing:true,

    },

}


接着是宋星寒的二技能伤逝,就是春哥的伤逝。下面拿。

伤逝

skill={

    audio:2,

    trigger:{

        player:["loseAfter","changeHp"],

    },

    frequent:true,

    filter:function(event,player){

        return player.countCards('h')<player.getDamagedHp();

    },

    content:function(){

        player.draw(player.getDamagedHp()-player.countCards('h'));

    },

    ai:{

        noh:true,

        skillTagFilter:function(player,tag){

            if(tag=='noh'&&player.maxHp-player.hp<player.countCards('h')){

                return false;

            }

        },

    },

}



李梦蝶三技能,幻蝶,技能强度挺高的,上来就是三个幻蝶标记,只要有人在自己回合内(此处的自己是指任意一名角色在其回合内的意思)失去装备区牌时,获得一枚幻蝶标记,在自己回合内,幻蝶标记可以当作无距离限制的杀使用,但此杀会占用实体杀的资格,如果你自己先使用幻蝶当杀,那么你将无法在使用实体杀,但是不影响幻蝶使用的杀,幻蝶转换的杀不可被相应。另外由于技术问题(QAQ我是个菜鸡),幻蝶转化的杀竟然可以破空城。另外,标记类技能都可以用下面的代码去套,本来想考验一下你们的技术的,想给你们想前两期那样自己取的(滑稽),但想了想还是算了吧,代码下面自取,记得跟我说一声哦。

幻蝶


skill={

    group:["幻蝶_1","幻蝶_2","幻蝶_3","幻蝶_4"],

    subSkill:{

        "1":{

            mark:true,

            marktext:"幻蝶",

            unique:true,

            trigger:{

                player:"enterGame",

                global:"phaseBefore",

            },

            forced:true,

            filter:function(event){

        return (event.name!='damage'&&(event.name!='phase'||game.phaseNumber==0))||event.num>0; 

    },

            content:function(){

        player.addMark('幻蝶_1',3);

               

    },

            intro:{

                name:"幻蝶",

                content:"幻蝶当作杀",

            },

            ai:{

                combo:"ol_shenfen",

                maixie:true,

                "maixie_hp":true,

            },

            sub:true,

        },

        "2":{

            trigger:{

                global:["equipAfter","addJudgeAfter","gainAfter","loseAsyncAfter","addToExpansionAfter","loseAfter"],

            },

            frequent:true,

            filter:function(event,player){

        var evt=event.getl(_status.currentPhase);

        return evt&&evt.es&&evt.es.length>0;

    },

            content:function(){

        "step 0"

        event.count=trigger.getl(_status.currentPhase).es.length;

        "step 1"

         player.addMark('幻蝶_1',event.count);

 

    },

            ai:{

                noe:true,

                reverseEquip:true,

                effect:{

                    target:function(card,player,target,current){

                if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];

            },

                },

            },

            sub:true,

        },

        "3":{

            enable:"phaseUse",

            forced:true,

            unique:true,

            filter:function(event,player){

                    return player.hasMark('幻蝶_1');

      },

            content:function(){

        "step 0"

        player.chooseTarget('是否弃置一枚“幻蝶”,并使用一张杀?',function(card,player,target){

                        return player!=target;

                    },function(target){//ai:

    var player=get.player();//定义变量player为选目标的发起者(不懂可以先不写)

    return -get.attitude(player,target);//选敌人

});

                        

        "step 1"

        if(result.bool){

                        player.removeMark('幻蝶_1',1);

            console.log(result.targets[0]);

result.targets[0].storage.幻蝶_0=true;

            player.useCard({name:'sha'},result.targets[0]);

                    }

    },

            ai:{

                order:1,

                result:{

                    player:function(player){

                return 1;

            },

                },

            },

            sub:true,

        },

        "4":{

            silent:true,

            trigger:{

                player:"useCardToPlayer",

            },

            filter:function (event,player) {

        return event.target.storage.幻蝶_0&&event.card.name=='sha';

      },

            content:function () {

    trigger.getParent().directHit.add(trigger.target);            

        delete trigger.target.storage.幻蝶_0;

      },

            sub:true,

            forced:true,

            popup:false,

        },

    },

}



宋星寒的三技能就是界刘备的仁德,配合伤逝,给队友过牌很强。(没敢用标刘备的仁德QAQ)。代码下面拿。

仁德


skill={

    audio:2,

    audioname:["gz_jun_liubei","shen_caopi"],

    enable:"phaseUse",

    filterCard:true,

    selectCard:[1,Infinity],

    discard:false,

    lose:false,

    delay:false,

    filterTarget:function(card,player,target){

        if(player.storage.rerende2&&player.storage.rerende2.contains(target)) return false;

        return player!=target;

    },

    onremove:["rerende","rerende2"],

    check:function(card){

        if(ui.selected.cards.length&&ui.selected.cards[0].name=='du') return 0;

        if(!ui.selected.cards.length&&card.name=='du') return 20;

        var player=get.owner(card);

        if(ui.selected.cards.length>=Math.max(2,player.countCards('h')-player.hp)) return 0;

        if(player.hp==player.maxHp||player.storage.rerende<0||player.countCards('h')<=1){

            var players=game.filterPlayer();

            for(var i=0;i<players.length;i++){

                if(players[i].hasSkill('haoshi')&&

                    !players[i].isTurnedOver()&&

                    !players[i].hasJudge('lebu')&&

                    get.attitude(player,players[i])>=3&&

                    get.attitude(players[i],player)>=3){

                    return 11-get.value(card);

                }

            }

            if(player.countCards('h')>player.hp) return 10-get.value(card);

            if(player.countCards('h')>2) return 6-get.value(card);

            return -1;

        }

        return 10-get.value(card);

    },

    content:function(){

        'step 0'

        var evt=_status.event.getParent('phaseUse');

        if(evt&&evt.name=='phaseUse'&&!evt.rerende){

            var next=game.createEvent('rerende_clear');

            _status.event.next.remove(next);

            evt.after.push(next);

            evt.rerende=true;

            next.player=player;

            next.setContent(lib.skill.rerende1.content);

        }

        if(!Array.isArray(player.storage.rerende2)){

            player.storage.rerende2=[];

        }

        player.storage.rerende2.push(target);

        target.gain(cards,player,'giveAuto');

        if(typeof player.storage.rerende!='number'){

            player.storage.rerende=0;

        }

        if(player.storage.rerende>=0){

            player.storage.rerende+=cards.length;

            if(player.storage.rerende>=2){

                var list=[];

                if(lib.filter.cardUsable({name:'sha'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){

                    return player.canUse('sha',current);

                })){

                    list.push(['基本','','sha']);

                }

                for(var i of lib.inpile_nature){

                 if(lib.filter.cardUsable({name:'sha',nature:i},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){

                            return player.canUse({name:'sha',nature:i},current);

                        })){

                        list.push(['基本','','sha',i]);

                    }

                }

                if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){

                    return player.canUse('tao',current);

                })){

                    list.push(['基本','','tao']);

                }

                if(lib.filter.cardUsable({name:'jiu'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){

                    return player.canUse('jiu',current);

                })){

                    list.push(['基本','','jiu']);

                }

                if(list.length){

                    player.chooseButton(['是否视为使用一张基本牌?',[list,'vcard']]).set('ai',function(button){

                        var player=_status.event.player;

                        var card={name:button.link[2],nature:button.link[3]};

                        if(card.name=='tao'){

                            if(player.hp==1||(player.hp==2&&!player.hasShan())||player.needsToDiscard()){

                                return 5;

                            }

                            return 1;

                        }

                        if(card.name=='sha'){

                            if(game.hasPlayer(function(current){

                                return player.canUse(card,current)&&get.effect(current,card,player,player)>0

                            })){

                                if(card.nature=='fire') return 2.95;

                                if(card.nature=='thunder'||card.nature=='ice') return 2.92;

                                return 2.9;

                            }

                            return 0;

                        }

                        if(card.name=='jiu'){

                            return 0.5;

                        }

                        return 0;

                    });

                }

                else{

                    event.finish();

                }

                player.storage.rerende=-1;

            }

            else{

                event.finish();

            }

        }

        else{

            event.finish();

        }

        'step 1'

        if(result&&result.bool&&result.links[0]){

            var card={name:result.links[0][2],nature:result.links[0][3]};

            player.chooseUseTarget(card,true);

        }

    },

    ai:{

        fireAttack:true,

        order:function(skill,player){

            if(player.hp<player.maxHp&&player.storage.rerende<2&&player.countCards('h')>1){

                return 10;

            }

            return 4;

        },

        result:{

            target:function(player,target){

                if(target.hasSkillTag('nogain')) return 0;

                if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){

                    if(target.hasSkillTag('nodu')) return 0;

                    return -10;

                }

                if(target.hasJudge('lebu')) return 0;

                var nh=target.countCards('h');

                var np=player.countCards('h');

                if(player.hp==player.maxHp||player.storage.rerende<0||player.countCards('h')<=1){

                    if(nh>=np-1&&np<=player.hp&&!target.hasSkill('haoshi')) return 0;

                }

                return Math.max(1,5-nh);

            },

        },

        effect:{

            target:function(card,player,target){

                if(player==target&&get.type(card)=='equip'){

                    if(player.countCards('e',{subtype:get.subtype(card)})){

                        if(game.hasPlayer(function(current){

                            return current!=player&&get.attitude(player,current)>0;

                        })){

                            return 0;

                        }

                    }

                }

            },

        },

        threaten:0.8,

    },

}




我的第三/四个做的武将就算是做好了,这期有点水。各位陌生人,如果想用就拿就行,记得跟我说一声哦。以后如果心血来潮的话,我还会发一些其他的。希望大家支持一下无名杀(QAQ)。




新手,自己闲着没事做的无名杀武将(第三/四期,李梦蝶/宋星寒)的评论 (共 条)

分享到微博请遵守国家法律