無(wú)名殺代碼教程 00.4
經(jīng)過(guò)上篇專欄的魔改,閉月這個(gè)技能太強(qiáng)了,只能設(shè)置成ai禁選。那么,有沒(méi)有辦法削弱呢?
這篇專欄叫你給技能加限制條件。
1。不能發(fā)動(dòng)這個(gè)技能
答:加上
filter:function(event,player){
? ? return false;
},
這里,我們學(xué)到了一個(gè)新的屬性,filter
這是技能的限制條件,如果return false,那么這個(gè)技能不能發(fā)動(dòng)。
2。你手牌數(shù)小于5才能發(fā)動(dòng)
答:
filter:function(event,player){
? ? if(player.countCards("h")<5)return true;
? ? return false;
},
這里學(xué)到了一個(gè)非常常見(jiàn)的函數(shù),countCards
countCards的作用是獲取牌數(shù),括號(hào)里面第1個(gè)參數(shù)填位置,第2個(gè)參數(shù)填限制條件
位置:
"h"? ? //手牌
"e"? ? //裝備區(qū)
"j"? ? ?//判定區(qū)
"s"? ? //木牛流馬的區(qū)域(最近游戲更新加的)
"hs"? ?//手牌和木牛流馬區(qū)域
"he"? //你的牌
"hej"? //你區(qū)域里的牌
"ej"? ?//你場(chǎng)上的牌
限制條件:
1.牌名
player.countCards("h","sha");
//你手牌里的殺數(shù)量
2.多個(gè)牌名
player.countCards("h",["sha","shan"]);
//你手牌里的殺和閃的數(shù)量
3.對(duì)象
player.countCards("h",{color:"red"});
//你手牌里的紅色牌的數(shù)量
player.countCards("h",{name:"sha",suit:["spade","heart"]});
//你手牌里的黑桃和紅桃殺的數(shù)量
?4.函數(shù)(遇事不決)
player.countCards("h",function(card){
? ? return card.name=="sha"&&card.number>8;
});
//你手牌里的點(diǎn)數(shù)大于8的殺的數(shù)量
3。每回合最多發(fā)動(dòng)3次
答:加上
usable:3,
ps:如果次數(shù)限制不是定值,比如"最多發(fā)動(dòng)你的體力數(shù)量次",就得老老實(shí)實(shí)用filter了
3。每輪發(fā)動(dòng)一次
答:加上
round:1,
ps:兩輪發(fā)動(dòng)一次是round:2,
ps:一輪發(fā)動(dòng)兩次或者不是定值,老老實(shí)實(shí)用filter
4。改成限定技
答:限定技的框架比較復(fù)雜,但可以通過(guò)移除這個(gè)技能達(dá)到只發(fā)動(dòng)一次的效果
content:function(){
? ? //閉月的content的內(nèi)容
? ? player.removeSkill("biyue");
},
removeSkill這個(gè)函數(shù)是用來(lái)移除技能的,biyue是閉月這個(gè)技能的英文名,官方的技能都是拼音,具體英文名是什么,還是需要看代碼確認(rèn)
如果括號(hào)里面填數(shù)組,可以移除數(shù)組里面的所有技能
player.removeSkill(["yingzi","biyue"]);
//移除技能英姿和閉月
與之相應(yīng)的是addSkill,添加技能
水夠一千字了,這篇專欄就到這里吧。