无名杀代码教程No.1——重操旧业
前言
①还是那句话,不要中途而废,无名杀的代码很简单。完全不用为了学会无名杀代码而去报js专业课程,现有的教程文件多的是,全看完一遍你就能入门了。 ②我这里只带一下完全不懂的新手,起个引导作用,剩下的全靠个人摸索。
怎么创建一个技能
①首先,你得有个扩展,没有扩展就先去创建一个扩展,流程【选项】—【扩展】—【制作扩展】,设置好名称后点击保存
注意了,保存是很重要的,建议养成多保存的习惯,只有保存后才能重启游戏加载,否则前功尽弃。
②你保存完成后,界面会有文字按键提示你是否要立即重启,我个人建议立即重启游戏。
注意,在给新扩展取名时注意不要取了和现有扩展一样的名字否则后果自负!
③重启后,再打开扩展界面,找到你创建的新扩展,点击后右边页面会出现4个按钮【编辑武将】【编辑卡牌】【编辑技能】【编辑代码】。【编辑卡牌】和【编辑代码】先不用管,【编辑武将】是用来创建一个新武将的,毕竟就算你有了新技能,但没有新武将这个载体,肯定也是不行的,创建新武将很简单,照着流程来就行了,不涉及代码知识,这里只教【编辑技能】 点击【编辑技能】后,再点击【创建技能】,如果扩展内已经有完成的技能,会在上分直接显示出来(该技能翻译的按钮,点击后可以编辑这个技能)。 创建一个新的技能,按要求写好【名称】和【描述】,【描述】可以没有,但【名称】必不可少,这里教一下写技能名称的格式
技能ID|技能翻译
④看好了,中间有一个英文符号|,你可以理解成起分割作用,前面部分为技能ID,一般为拼音,如wusheng,
技能ID不可以重复!
后面就是技能的翻译,如武圣,技能翻译是可以重复的。完整案例就是【wusheng|武圣】,再点击下方的【创建技能】按钮,这样我们就成功创建了一个新技能。
什么,你问我为什么按照案例的【wusheng|武圣】输进去没有成功?废话,上面不是说了吗?你新创建的技能ID不能和现有的技能ID重复,wusheng是本体技能已经有了的,所以你可以加个前缀【xindiy_】或者后缀【_xindiy】来作为一个独立的ID。当然,前后缀都加也没有关系。
⑤好了,技能创建好了,下面重磅的来了,技能代码该怎么写。
其实,我个人更推荐把代码也一起写好后,再点击【创建技能】,因为这种情况下点击【编辑代码】,游戏自带的编辑器会显示出【闭月】技能的模板案例,【闭月】技能很简单,十分适合新手学习。
那么,下面我们就来借【闭月】(结束阶段,你可以摸一张牌)讲讲触发类技能的书写格式。
还有一种是主动类技能,比如刘备的【仁德】,还有一种是转换类技能,比如关羽的【武圣】。
编辑代码前,先创建好技能名称和描述,即【
xindiy_biyue|闭月】和【结束阶段,你可以摸一张牌。】
触发类技能需要具体的触发时机,我们来根据描述写代码,先看第一句描述【结束阶段】。
这就是本技能的触发时机,前面没有写是谁的结束阶段,那么我们默认为自己的结束阶段。
注意,写技能的标点符号都必须是英文的。
trigger: {
(回车键,待补充……)
},
养成习惯,这里的括号后面要加个逗号
上面就是触发技时机的框架,trigger是触发的意思。那么框架写好了,接下来就是补充花括号{}里面的内容 因为是自己的结束阶段,我们写
player:
然后是结束阶段,再补充 player:
"phaseJieshuBegin",
【phaseJieshu】就是结束阶段的固有函数,那么问题来了,
我怎么知道这游戏里的固有函数有哪些呢?
去加无名杀官群,然后找教程文件,教程文件里面就有着那些固有函数。至于【Begin】是【时】的意思,还有【Before 前】【End 后】【After 结算后】,这四个固有函数牢牢记住,【闭月】描述中没有具体说是哪个时点,那么我们默认为【Begin 时】。
trigger:{
player:"phaseJieshuBegin",
},
OK,就这样,触发时机写好了。下面再读描述,【你可以摸一张牌】
模板案例中给出了一个【frequent:true,】,这个【frequent】标签有什么用呢?
用于某些必定正收益的技能,这样的话触发时就不需要玩家手动点,直接就可以自动摸一张牌了。另外,这个自动触发是可以设置开关的,在对局内长按武将牌显示技能资料,然后可以关闭掉。
如果你比较懒,这个【frequent】标签我们可以不写。
这个标签也是固有函数哦,类似的还有【forced 锁定技标签】
最后一句描述【你可以摸一张牌】,可以得知这是技能触发所发动的效果内容。
那么写一个技能触发内容的框架
content:function(){
【你摸一张牌】即
content:function(){
player.draw();
},
player是玩家你的意思,具体指发动这个技能的角色
.必不可少,你可以理解成连接前后函数的一个桥梁,如果直接写playerdraw,你的审美应该也会觉得怪怪的罢(
而draw()就是摸牌的意思,括号必不可少,括号里面可以填阿拉伯数字表示要摸几张牌,不填默认为1,也就是说【player.draw(1)】也是摸一张牌的意思
至于;这个标点符号,不多说,养成习惯
总结
到此2000多字,如果你从头到尾都认真看完了的话,那么恭喜你,你已经可以写一个简单的触发类技能了! 我之前说了,我只起引导作用,剩下的东西要你们自己去摸索,
去官群看看那些代码教程文件吧,那就相当于是你们的教科书和知识宝典!
等把教科书看完后,差不多记住那些固有函数后,我来给你们布置一个课后作业,自己去试着写写看吧!
写好后,可以截图私信发我或发在评论区里,记住技能写好了,要返回扩展界面再次保存好后,才能重启游戏加载哦!
课后作业(二选一)
①【开月】锁定技。出牌阶段开始前,你摸3张牌。 ②【开月】出牌阶段开始前,你可以摸2张牌。 "player: