无名杀代码教程 00.4
经过上篇专栏的魔改,闭月这个技能太强了,只能设置成ai禁选。那么,有没有办法削弱呢?
这篇专栏叫你给技能加限制条件。
1。不能发动这个技能
答:加上
filter:function(event,player){
return false;
},
这里,我们学到了一个新的属性,filter
这是技能的限制条件,如果return false,那么这个技能不能发动。
2。你手牌数小于5才能发动
答:
filter:function(event,player){
if(player.countCards("h")<5)return true;
return false;
},
这里学到了一个非常常见的函数,countCards
countCards的作用是获取牌数,括号里面第1个参数填位置,第2个参数填限制条件
位置:
"h" //手牌
"e" //装备区
"j" //判定区
"s" //木牛流马的区域(最近游戏更新加的)
"hs" //手牌和木牛流马区域
"he" //你的牌
"hej" //你区域里的牌
"ej" //你场上的牌
限制条件:
1.牌名
player.countCards("h","sha");
//你手牌里的杀数量
2.多个牌名
player.countCards("h",["sha","shan"]);
//你手牌里的杀和闪的数量
3.对象
player.countCards("h",{color:"red"});
//你手牌里的红色牌的数量
player.countCards("h",{name:"sha",suit:["spade","heart"]});
//你手牌里的黑桃和红桃杀的数量
4.函数(遇事不决)
player.countCards("h",function(card){
return card.name=="sha"&&card.number>8;
});
//你手牌里的点数大于8的杀的数量
3。每回合最多发动3次
答:加上
usable:3,
ps:如果次数限制不是定值,比如"最多发动你的体力数量次",就得老老实实用filter了
3。每轮发动一次
答:加上
round:1,
ps:两轮发动一次是round:2,
ps:一轮发动两次或者不是定值,老老实实用filter
4。改成限定技
答:限定技的框架比较复杂,但可以通过移除这个技能达到只发动一次的效果
content:function(){
//闭月的content的内容
player.removeSkill("biyue");
},
removeSkill这个函数是用来移除技能的,biyue是闭月这个技能的英文名,官方的技能都是拼音,具体英文名是什么,还是需要看代码确认
如果括号里面填数组,可以移除数组里面的所有技能
player.removeSkill(["yingzi","biyue"]);
//移除技能英姿和闭月
与之相应的是addSkill,添加技能
水够一千字了,这篇专栏就到这里吧。