無名殺代碼教程 00.7
我又滾來寫教程了!回顧我寫了幾篇專欄,我覺得你們應(yīng)該會(huì)寫些技能了吧?(滑稽)
這次講些難點(diǎn)的
{
? enable:"phaseUse",
? usable:1,
?content: function()?{},
}
模板就這個(gè),出牌階段限一次,xxx
這次講content里面該怎么寫
1.基本效果(不分步)
player.draw();//摸一張牌
player.recover();//回復(fù)一點(diǎn)體力
player.damage();//受到一點(diǎn)傷害
2.選擇效果(分步)
"step 0"
player.chooseControl("一","二","三",true).set("prompt","請(qǐng)選擇要摸的牌數(shù)").set("ai", function(){
return 2;
});
"step 1"
player.draw(result.index+1);
//出牌階段限一次,摸最多3張牌
這里舉了個(gè)簡(jiǎn)單的例子,可以看到,分成了"step 0"和"step 1"這兩步
像chooseControl? chooseCard? chooseBool? chooseTarget? chooseButton? chooseCardButton? chooseCardTarget等一堆帶"choose"的函數(shù),都需要分步
player.chooseControl();//選擇一項(xiàng)
里面填選項(xiàng),后面的true代表必須選一項(xiàng)(實(shí)際這個(gè)true必填,因?yàn)閍i可能會(huì)點(diǎn)取消。如果需要取消,可以加個(gè)cancel2的選項(xiàng))
player.chooseControl的返回值是一個(gè)事件,是一個(gè)對(duì)象類型。眾所周知,事件對(duì)象可以用set函數(shù)添加鍵值對(duì)。set函數(shù)的返回值是修改過的該對(duì)象,所以可以繼續(xù)set。
有些同學(xué)看到ai里面的return 2可能會(huì)有疑惑,這個(gè)技能不是最多摸3張牌嗎,為什么不return 3,是不是在削弱ai?
?其實(shí)不是。chooseControl的ai有2種返回,第一個(gè)是返回選項(xiàng),比如返回"二"代表選了這個(gè)選項(xiàng)。也可以返回這個(gè)選項(xiàng)的index,也就是第幾個(gè)選項(xiàng)。不過是從0開始的,所以return 2代表選第3個(gè)選項(xiàng)。
step 1里面的result.index和上面講的index意思一樣。比如選了第3個(gè),那么
result.index是2,player.draw(2+1)??,摸三張牌,剛好是我們想要的。
player.chooseControl還有個(gè)result.control代表你選擇的選項(xiàng)。但沒有result.bool
//-----------華麗的分割線------------//
這里深挖一下,你們知道這個(gè)result是什么嗎?
下一步中的result是上一步最后一個(gè)事件的event.result,或者是上一步的event._result
上一步最后一個(gè)事件是player.chooseControl,如果這個(gè)事件有event.result,那么下一步中的result就是這個(gè)event.result
但是
如果step 0沒有player.chooseControl,直接寫了event._result={index:2}
那么下一步的result.index是2,還是會(huì)摸3張牌。
分步,是因?yàn)橄乱徊降男袆?dòng),需要用到上一步的結(jié)果。意味著這個(gè)技能有策略性。(強(qiáng)行分步除外)
字?jǐn)?shù)到了,溜了