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

新元的无名杀扩展教程(一)技能_6继承inherit+子技能subSkill=模板技能

2022-10-15 18:23 作者:新元noname  | 我要投稿

前言

在前面几期中,我们已经知道了trigger类一般技能和特殊技能的基本格式。为了节省我们编辑技能的时间,我现在要介绍一种方法,它的目的来创建一个作为技能模板的技能。


模板技能

我们创建一个技能模板,其目的,是为了引用它。因此他必须要两个基本的特点。

1.便于引用。引用的方法就是输入模板技能的名字(这一点,会在inherit中讲到),因此模板技能名字就必须一眼让人知道他是什么的模板,比如,模板技能名叫trigger,但是trigger的范围很大,就不如写trigger_usual,trigger_limited,trigger_zhuanhuanji等等。

2.模板内容只保留必要的,如果模板技能里面是过于详细,反而会造成诸多阻碍。因此trigger_usual中将trigger,content,filter写上,但其中内容不填;trigger_zhuSkill则只多加个标签,而filter用if语句(在前面提到过)加上player.hasZhuSkill()

多说无益,我们进入下一个话题。


inherit继承

继承,这是skill的一个标签。

inherit:"trigger_usual",

我们只需要这样一输入,保存,再重启,即可让我们的技能继承trigger_usual了。很简单。

在这个新技能中,它将模板技能的trigger,filter,content全部继承过来。

同理,你也可以写别的技能,若你写上

inherit:"yiji"

你这个新技能,保存,重启,就继承了遗计的全部内容。

既然谈到了继承其他技能,不妨说一下游戏本体技能id,这样对于编写技能也更快,游戏本体的技能是很多的,可以用来借鉴。

所以我们就有这样一个思路:对于自己创新的技能则继承模板,而游戏本体有相似的技能,则继承该技能。

无论如何继承都是十分重要的。不要因为只是这样一个小小的标签而忽视它强大的威力。


subSkill

我们已经在前面了解到了subSkill即子技能,它的写法是这样的。

subSkill:{

usual:{},

limited:{},

zhuanhuanji:{},

}

而子技能的技能id是,主技能的id+_+subSkill中写的id。

比如,我们模板技能的id是trigger,subSkill中写的usual这个子技能,它的id就是,trigger_usual

这样,我们就可以把一类技能模板写在同一个技能中。

而且在这里,主技能除了提供一个子技能的一个位置就再无用处,子技能成为真正的主人。

但是,我们也会发现一个严重的问题,那就是子技能越多,技能编辑器就显得有点臃肿了。我们不妨写在主代码中。

主代码怎么创建技能呢?

只需要在其中输入:

lib.skill.xx={}

写法和以前完全相同,比如我们要写模板技能trigger,就可以写成

lib.skill.trigger={

subSkill:{

    usual:{

        trigger:{},

        filter:function(event,player){},

        content:function() {},

        sub:true

    },

   zhuSkill:{

        trigger:{},

        zhuSkill:true,

        filter:function(event,player){

          if(!player.hasSkill("")) return false

          return true

        },

        content:function() {},

        sub:true

    },

}

}

在主代码写上以上代码并保存后,要在新技能中继承它,只需要写

inherit:"trigger_zhuSkill"

或者写

inherit:"trigger_usual"

新元的无名杀扩展教程(一)技能_6继承inherit+子技能subSkill=模板技能的评论 (共 条)

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