一、前言
现在的SkillAPI是1.7-1.12通用的,尽管低版本不支持一部分的功能,但总体来说使用是没问题的,所以各位可以放心使用插件以及本教程
本教程不会着重于免费版或者付费版的SkillAPI,通常不标注的时候是免费版的通用功能,付费版功能会有专门注释
本教程全程使用官方编辑器
二、正文
1、SkillAPI的功能
对于这部分,是介绍给那些想了解SkillAPI的新人的,如果是插件老手就完全可以跳过本部分了。
总的来说,SkillAPI包含了以下几种功能:
- 职业
- 技能
- 属性
- 记分牌
- 自定义命令
- 物品控制
- 技能释放
- GUI控制(付费功能)
- 粒子效果
- PlaceHolderAPI支持
2、职业的制作方法
首先必须要说的是,一个职业转到另外一个更高的职业后,属性点、技能点、技能等都是保留的,但最大生命和最大法力值不会继承
图1-1
①职业总览列表:在这里你能够选择、新建职业
②职业基本设定:在这里你能够修改职业的基本设定,包括了名字、称号、组别、最高等级等。前面的都挺好理解,但要注意的是这里的职业名称和称号都是直接显示在头上的,而不是使用ESS的聊天格式,像这样:
如果需要设定转职相关内容,你必须要在下一个职业的parent里面,选定前一个职业,像这样
图1-2
③职业进阶设定:这里能够设定当前职业最低所需要的属性,比如我们可以设置一个职业至少需要15点力量才能转到这个职业来,如果你自定义了属性,你可以直接把attribute.yml拖到网页上来读取属性名字
mana-regen 即每秒恢复多少点法力值
④职业技能相关设定:在这里你能选择技能树样式以及当前职业拥有些什么技能,子职业(即转职后的职业)会默认继承父职业的技能
注意!你必须要往里面添加了技能,该职业才能使用你添加的技能
技能树的解释:
- Requirement:相当于智能排序,如果你不想花功夫设置的话就选这个,他是按照技能的相关性自动排序的
- Level开头的两个技能树:以技能所需角色等级为标准,进行水平(垂直)方向的排序
- Basic开头的两个技能树:以技能链为标准进行排序,需要你设计的技能拥有一个完整且逻辑严谨的技能链,否则你会发现同一技能会多次出现在不同的行里面
⑤职业选择图标设定:在这里你可以选择你的职业在选择界面出现的图标,图标的data值以及鼠标移到图标的时候上面显示的提示性文字
图1-3
职业的其他设定:⑥当前职业禁用的物品;⑦ActionBar(就是血量条上面不时出现的小标题文字)的显示格式
3、技能的基本制作方法
技能制作是SkillAPI最核心的部分,同时它也是最复杂,最难的一部分,如果我要在这里把我的经验全部介绍出来,可能会超过一万字,因此我在这里将只会介绍制作技能的基本步骤以及一些常规功能和主要选项,而对于子选项内的详细功能将不会介绍以及解析,value-attribute具体是怎么工作的,当然我会在帖子最后展示出一些技能模板供大家参考,日后可能会对这些技能模板开一个新帖进行详细解析,不过那都是后话了。
因为技能制作面板总共有三大模块,因此在这一章的介绍里面,我会从这三个模块出现时间顺序进行介绍
图2-1&图2-2
图2-1和图2-2同属技能信息模块,在这里你能够设置一些技能相关信息,比如技能的名字,冷却时间、技能点消耗、耗蓝等。技能信息模板总体和职业设置界面相似,因此这里就不一一展开介绍。需要注意的是,min spend 是指开启该技能需要先行使用过多少技能点;incompatible 是指该技能不能和下列技能同时被学习
在完成了技能信息设置以后,点击edit effect,即可进入技能制作的核心部分——效果编辑
刚进入效果编辑时,界面如图2-3显示
图2-3
①功能条:你能够从这里进行一些界面的跳转以及进行保存删除等操作
②操作区:该区域的每个标签都能自由拖动和编辑,是你在编辑修改技能的好帮手,在你第一次进入这个界面的时候,操作区理所当然是空的
进入这个界面以后,你第一件事要做的就是选择技能的触发方式,点击功能条的Triggers,进入触发方式界面
图2-4:触发方式界面
通常来说,如果你要做一个主动技能,你需要选择的只是cast;而当你想要做被动技能的时候,你可以按照你的需要选择其他的触发方式。触发方式决定了你的技能,将会以如何的方式发动,是一个技能必选内容。
选好了触发方式以后,你就会再次跳转到操作区,这时候你就发现操作区多出了一个标签,点一下标签上面的add child(添加子标签),你会进入到标签选择界面,
图2-5:标签选择界面
标签选择界面的内容繁多(其中蓝色的为付费版功能),这也就是为什么我不可能对每一个内容进行介绍的原因。但你可以发现标签选择界面有三个大标题:
- targets(目标):目标规定了技能的目标对象,这里分为了指向性以及非指向性的目标,指向性包括了single(单体)、self(施法者自身)、remember(标记的目标),而其他的都是非指向性的目标
- conditions(条件):条件的作用是限制技能的使用范围,比如说你可以通过条件标签来规定一个技能只能在血量低于50%的时候才能使用
- mechanics(操作、效果):操作用于定义技能拥有哪些实质性的功能,比如技能的伤害
在这三个大选项里面,targets和mechanics是必须,conditions是可选的,因此,只有当你的技能拥有了两个必须条件时,你的技能才能真正开始工作。图2-3显示了一个最简单的技能
当你选择了标签的时候,你将会跳转到以下界面:
图2-6:标签编辑界面
标签编辑界面是用于进行标签的进一步设置的,我们这里以图中的damage标签来进行介绍:
①通用属性:通用属性是每一个标签都拥有的,它是用来设置该标签如何被调用的,如果你想不懂的话,你完全可以不理他
②标签独立属性:这些属性都是当前标签独有的,你必须要对其进行细致的修改才能制作出个性化的技能
当你完成了这一系列职业技能的制作,你就可以点击最右上角的save,编辑器会自动帮你生成两个文件:classes.yml和skills.yml,将他们放到\plugins\SkillAPI\dynamic\ 这个目录里面去,然后重启服务器或者重载插件,插件会自动帮你拆分成单个的技能和职业文件。
4、属性的制作方法
在RPG的游戏中,最不可缺少的自然还有属性。SkillAPI虽然自带了一个做好的属性列表,但我如果是你,我就会多做点属性来玩。
具体的格式可以到attribute.yml了解,当你需要一个新的属性,请复制粘贴然后修改,我这里就不在冗述格式了
在文件中,我们可以看到,除了基本的名字、最高等级(max)等修改以外,还有global、stat两个标签
global是规定该属性只能在哪一种技能里面起作用,而stat则是这个技能主要起作用的部分
那么stat里面可以填些什么东西呢?
点击打开列表,其中P代表付费版功能,1.9+代表需要1.9以上的版本才能使用
属性点提供的属性则有两种格式:
- 加法型:a*<num>+v <num>改成你想要加上的点数。比如说我想要每一点属性加上两点攻击,我可以这么写:a*2+v
- 倍数型:v(a*<num>+1) <num>改成你要乘上的倍数。 比如说我想要每一点属性提高0.1%的伤害,我可以这么写:v(a*0.1+1)
不行,要死了……写到了早上5点钟,今天就先到这里,先去休息了,说好的技能模板以后再说