minecraft吧 关注:2,573,066贴子:32,121,306

【原创服务器插件教程】SkillAPI——一个高难度的插件制作教程

只看楼主收藏回复

rt,楼主将会更新,在我发教程期间禁止插楼!


IP属地:河南1楼2015-02-11 10:34回复
    二.Class的制作
    ——来自水桶服官网
    SkillAPI是需要你去编写它的,所以我教大家先做个开头(学过做MOD的一定会做这款插件):
    public class MyClass extends CustomClass {
    /*内容*/
    }
    基本上同JS
    注意:public类似Js的function
    讲解:
    public:不说了
    class:类名
    MyClass:文件名
    extends:不知道(与后者有联系)
    CustomClass:自定义技能/职业的开端。
    =================================================
    构造类函数
    相信做过MOD的童鞋们一定知道这个名词。
    构造函数需要4个参数传递给superconstructor(本段纯属机翻):
    也可按照下列模型复制:
    super(professional name,professional child name,professional prefix,int professionalLevel,int professionalMaxLevel){
    -professional name:职业名
    -professional child name:子职业名
    -professional prefix:职业名前缀(可以加ChatColor.颜色英文名大写+职业名)
    -int professionalLevel:当前职业等级(建议是1级,如果为0后果自负!)
    -int professionalMaxLevel:该职业的最大等级(自定义)
    例如:
    public Fighter(){
    super("Fighter",null//如果没有子职业这里不能为空,必须是null//,ChatColor.RED+"Fighter",1,40);
    }
    学过js的童鞋们一定会对这个更感兴趣的!


    IP属地:河南3楼2015-02-11 10:51
    收起回复
      2026-03-09 18:06:28
      广告
      不感兴趣
      开通SVIP免广告
      木有人么?


      IP属地:河南4楼2015-02-11 10:52
      回复
        表示学编程←_←-_-///


        IP属地:安徽来自手机贴吧5楼2015-02-11 10:53
        收起回复
          好简单的编程呀,不过好像游戏里的红石技术还要好吧。。。。我是红石渣


          IP属地:安徽来自手机贴吧6楼2015-02-11 10:54
          回复
            二-2:添加职业技能
            addSkills(
            //这里提供几个技能
            "Dash",
            "Harsh Training",
            "Heavy Blow",
            "Jeer",
            "Vitality",
            "Whirlwind"
            );
            -Dash:冲锋
            -Harsh Training:严酷的训练(WTF?)
            -Heavy Blow:沉重打击(跳斩)
            -Jeer:嘲讽
            -Vitality:力量增幅
            -Whirlwind:风暴(加速的)
            可以加入到super后面


            IP属地:河南9楼2015-02-11 10:59
            收起回复
              二-3.添加该职业的天赋(血量+魔法值)
              自己设置该职业的法力值与血量(最大血量)
              setAttribute(String, int1, int2);
              String:职业名
              int1:血量
              int2:法力值
              当然,到后期制作高难度的ClassAttribute时,你可以用ClassAttribute.HEALTH和ClassAttribute.MANA来设置职业的血量与蓝量。
              第二章完


              IP属地:河南10楼2015-02-11 11:05
              收起回复
                什么是职业函数?
                就是上个教程中的public Fighter(){xxx}就是职业函数
                模型:
                public 职业名(){需要的函数}
                职业函数需要放在
                public class MyClass extends CustomClass()的{}里


                IP属地:河南11楼2015-02-11 11:09
                回复
                  2026-03-09 18:00:28
                  广告
                  不感兴趣
                  开通SVIP免广告
                  三-1.设置武器伤害
                  这个函数要放在职业函数里
                  setDamage(Material, int);
                  -Material:物品——特指物ID
                  -int:特指物品的伤害值


                  IP属地:河南12楼2015-02-11 11:11
                  回复
                    顶啊


                    IP属地:河南14楼2015-02-11 11:28
                    回复
                      三-3-1.技能的属性设置
                      本届有点难,要分三小节
                      本小节讲解超类
                      设置了触发技能函数后,我们需要在触发技能函数里写构造节段函数
                      一个技能需要4个节段
                      String name:技能名(能在技能树里显示)
                      SkillType type:技能的属性类型
                      Material icon:在技能树菜单中使用的物品图标
                      INT maxLevel:需要多少级才能学习该技能
                      除此之外,你还可以再添加两个构造函数:
                      String skillReq:技能真名
                      INT skillReqLevel:需要等级技能多少级解锁(子技能可有)
                      有了额外的参数,你可以为你的技能树创建一个层
                      除此之外,你还应该在构造函数中将描述和技能属性设置为好


                      IP属地:河南15楼2015-02-11 11:45
                      收起回复
                        三-3-2.描述与属性
                        描述:
                        你可以添加一行自定义自符段(写在技能函数里)
                        description.add (String);
                        String:你要写的内容
                        但注意:最多只能写4行!
                        属性:
                        你可以添加一个属性写在技能函数里
                        setAttribute(String name, int base, int bonus);
                        String name=Default.XXXXX或自定义的技能名
                        int base:字段初始值
                        int bonus:字段奖励值
                        其中,奖励值为每升一级就奖励初始值的数量
                        有4个属性是默认的,总是添进去(被动技能并不需要添加一些字符):
                        Default.COOLDOWN:技能CD(被动省略)
                        Default.MANA:技能耗蓝(被动也省略)
                        Default.LEVEL:技能需要解锁的等级
                        Default.COST:升级一次所花费的技能点


                        IP属地:河南16楼2015-02-11 11:57
                        收起回复
                          三-3-3:玩家的属性设置
                          1.设置玩家(无视职业)的血量
                          api.getPlayer(player.getName()).addMaxHealth(amount);
                          其中 player.getName()不能更改,amount为玩家血量
                          2.设置玩家(无视职业)回血量
                          PlayerSkills.heal (amount);
                          其中amount是玩家的回血量
                          3.设置玩家(无视职业)的状态
                          ~~~~这个很碉堡~~~~
                          PlayerSkills.addStatus(Status status, int duration);
                          其中Status status指状态名:
                          状态名:speed 加速, slow 减速, fast_digging 快速挖掘, slow_digging 缓慢挖掘, increase_damage 伤害提升, heal 瞬间恢复, harm 瞬间伤害, jump 跳跃提升, confusion 反胃, regeneration 生命再生, damage_resistance 抗性提升, fire_resistance 抗火, water_breathing 水下呼吸, invisibility 隐形, blindness 失明, night_vision 夜视, hunger 饥饿, weakness 虚弱, poison 中毒, wither 凋零
                          int duration指状态持续时间,单位——秒
                          第三章完!


                          IP属地:河南17楼2015-02-11 12:06
                          回复