新元的无名杀扩展教程(一)技能_1最简单的trigger类技能
引子
你想创建一个你的拓展,打开编辑拓展,编辑技能,为你的技能输入好漂亮的名字,写好了描述却无从下手?
没关系,这个教程将手把手教你学会编写技能。

1.技能类型
技能有很多类型:trigger类,enable类,mod类,等等。
技能的类型决定了技能的基本结构,下面,我们就以trigger技能为例开始编写技能
2.以trigger类技能为例
trigger类技能即触发技,只要达到某个条件,就发动此技能。比如:你受到伤害后,你失去体力后,你的摸牌阶段……。
要写一个trigger类的技能,就要先表明写的是trigger类的技能,如下:
trigger:{
}
在这个大括号内,就可以填触发的时机。
如果我们要写:你在受到伤害后触发此技能,就在括号内这样写:
player:"damageEnd"
冒号前的是触发的角色,冒号后的是触发的时机。player,就是拥有这个技能的角色。"damageEnd",就是受到伤害后。
如果有多个时机,可以用[]将所有时机框起来,注意时机和时机以","相连,如:
player:["damageEnd","loseHpEnd"]
这样,这名角色就在受到伤害后、失去体力后触发此技能
这个是通法,单个时机也可以写成这样。
现在我们的代码就成了这个样子:
trigger:{
player:["damageEnd","loseHpEnd"]
}
设置了触发时机,我们接下来就要写技能的内容了。格式如下:
content:function(){
}
接下就是要往里面装东西了。
如果我们想让技能发动者摸牌,怎么办呢?
就在大括号里填
player.draw()
前面那一个是对象,后面一个是对象执行的任务(或者说,做的事情)。player就是技能发动者,draw()就是摸牌。
我们如果想要player摸多张牌呢?draw()的()未填时,默认摸牌数为1。填上一个数,摸牌数就变了。
如:
player.draw(2)
就是摸2张牌了。
这样我们就编写了一个简单的技能:
trigger:{
player:["damageEnd","loseHpEnd"]
},
content:function(){
player.draw(2)
}
当你受到伤害后及失去体力后,你摸两张牌。

tips:
①在技能中,我们可以看到 key:value 这样一种形式,要注意的是,除了最末尾的那一个可以不用,其余的在结束必须都要打","(英文逗号)。要注意点是key只能以字母开头,不能含特殊符号。
如:
skill={
a:true,
b:[1,2],
c:"你好",
d:{
d1:1,
d2:function(){
}
}
}
②编辑技能中开始都是skill={},请将所有代码写在这个括号内。另外,确保{},[],()是完整的,而且是英文标点。