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

无名杀代码教程 00.7

2021-08-02 20:18 作者:玩大师4的醒醒  | 我要投稿

我又滚来写教程了!回顾我写了几篇专栏,我觉得你们应该会写些技能了吧?(滑稽)


这次讲些难点的

{

  enable:"phaseUse",

  usable:1,

 content: function() {},

}

模板就这个,出牌阶段限一次,xxx


这次讲content里面该怎么写

1.基本效果(不分步)

player.draw();//摸一张牌

player.recover();//回复一点体力

player.damage();//受到一点伤害

2.选择效果(分步)

"step 0"

player.chooseControl("一","二","三",true).set("prompt","请选择要摸的牌数").set("ai", function(){

return 2;

});

"step 1"

player.draw(result.index+1);

//出牌阶段限一次,摸最多3张牌


这里举了个简单的例子,可以看到,分成了"step 0"和"step 1"这两步

像chooseControl  chooseCard  chooseBool  chooseTarget  chooseButton  chooseCardButton  chooseCardTarget等一堆带"choose"的函数,都需要分步


player.chooseControl();//选择一项

里面填选项,后面的true代表必须选一项(实际这个true必填,因为ai可能会点取消。如果需要取消,可以加个cancel2的选项)


player.chooseControl的返回值是一个事件,是一个对象类型。众所周知,事件对象可以用set函数添加键值对。set函数的返回值是修改过的该对象,所以可以继续set。


有些同学看到ai里面的return 2可能会有疑惑,这个技能不是最多摸3张牌吗,为什么不return 3,是不是在削弱ai?

 其实不是。chooseControl的ai有2种返回,第一个是返回选项,比如返回"二"代表选了这个选项。也可以返回这个选项的index,也就是第几个选项。不过是从0开始的,所以return 2代表选第3个选项。


step 1里面的result.index和上面讲的index意思一样。比如选了第3个,那么

result.index是2,player.draw(2+1)  ,摸三张牌,刚好是我们想要的。


player.chooseControl还有个result.control代表你选择的选项。但没有result.bool


//-----------华丽的分割线------------//

这里深挖一下,你们知道这个result是什么吗?

下一步中的result是上一步最后一个事件的event.result,或者是上一步的event._result


上一步最后一个事件是player.chooseControl,如果这个事件有event.result,那么下一步中的result就是这个event.result

但是

如果step 0没有player.chooseControl,直接写了event._result={index:2}

那么下一步的result.index是2,还是会摸3张牌。


分步,是因为下一步的行动,需要用到上一步的结果。意味着这个技能有策略性。(强行分步除外)


字数到了,溜了







无名杀代码教程 00.7的评论 (共 条)

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