开发者文档

API

属性模块所对外暴露的所有API

    /**
     * 给玩家增加一个BUFF
     * @param uuid 玩家ID
     * @param attributeId 属性ID
     * @param num 数值
     * @param time 秒数
     * @throws ServiceErrorSendMsgException 程序遇到错误,异常中保存了需要对该玩家输出的信息
     */
    IBuff createBuff(String uuid, String attributeId, double num, Long time) throws ServiceErrorSendMsgException;

    /**
     * 移除buff
     * @param buffId buffId
     */
    void removeBuff(String uuid,String buffId);

    /**
     * 增加用户的属性附加值
     * @param uuid 玩家ID
     * @param attributeId 属性ID
     * @param num 值
     */
    void addUserAttributeAppendValue(String uuid,String attributeId,double num);

    /**
     * 减少用户的属性附加值
     * @param uuid 玩家ID
     * @param attributeId 属性ID
     * @param num 值
     */
    void remUserAttributeAppendValue(String uuid,String attributeId,double num);

    /**
     * 重置玩家属性
     * @param uuid 玩家ID
     * @param isReturnPoint 是否返回属性点
     * @throws ServiceErrorSendMsgException 程序遇到错误,异常中保存了需要对该玩家输出的信息
     */
    void resetAttribute(String uuid,Boolean isReturnPoint) throws ServiceErrorSendMsgException;

    /**
     * 玩家升级属性(玩家调用)
     * 会扣除属性加点
     * @param uuid 玩家ID
     * @param attributeId 属性ID
     * @throws ServiceErrorSendMsgException 程序遇到错误,异常中保存了需要对该玩家输出的信息
     */
    void upAttributeByPlayer(String uuid,String attributeId) throws ServiceErrorSendMsgException;

    /**
     * 检查属性是否存在
     * @param attributeId 属性ID
     * @return 属性是否存在
     */
    Boolean isAtr(String attributeId);


    /**
     * 获取玩家所有BUFF
     * @param uuid 玩家ID
     * @param userBuffEnumCode BUFF类型
     * @return Buff列表
     */
    List<IBuff> getBuff(String uuid, UserBuffEnumCode userBuffEnumCode);

    /**
     * 获取指定buff数据
     * @param buffId BuffID
     * @return Buff
     */
    IBuff getBuffById(String buffId);

    /**
     * 获取玩家某个属性的数据值(仅加点得到的属性)
     * @param uuid 玩家ID
     * @param attributeId 属性ID
     * @return 加点的值
     */
    IUserAttributeValue getUserAttributeValueByAttributeId(String uuid, String attributeId);

    /**
     * 获取玩家所有属性数据值(仅加点得到的属性)
     * @param uuid 玩家ID
     * @return
     */
    List<IUserAttributeValue> getUserAttributeValue(String uuid);

    /**
     * 获取玩家所有属性(仅加点得到的属性)
     * @param uuid 玩家ID
     * @return 属性对象与玩家属性值的组合实体类
     */
    List<IAttributeAndValue> getAttributeAndValue(String uuid);

    /**
     * 根据玩家ID与属性ID,获取玩家这个属性的数据(仅加点得到的属性)
     * @param attributeId 属性ID
     * @param uuid 玩家ID
     * @return 属性对象与玩家属性值的组合实体类
     */
    IAttributeAndValue getAttributeAndValueByAttributeId(String attributeId, String uuid);

    /**
     * 获取玩家某个属性的值(装备附加值+加点附加值+buff值 计算出的最终值)
     * @param uuid 玩家ID
     * @param attributeId 属性ID
     * @return 装备附加值+加点附加值+buff值 计算出的最终值
     */
    double getFuseUserAttributeValue(String uuid, String attributeId);


    /**
     * 根据属性ID获取属性详情
     * @param attributeId 属性ID
     * @return 属性详情
     */
    IAttribute getAttributeByAttributeId(String attributeId);

    /**
     * 获取服务器配置的全部属性
     * @return 所有属性
     */
    List<IAttribute> getAttribute();

    /**
     * 创建属性
     * @param attributeVo 新的属性对象
     */
    void createAttribute(IAttribute attributeVo);

    /**
     * 移除属性
     * @param attributeId 属性ID
     */
    void removeAttribute(String attributeId);

    /**
     * 获取玩家当前剩余加点值
     * @param uuid 玩家ID
     * @return 玩家当前剩余的属性加点值
     * @throws ServiceErrorSendMsgException 程序遇到错误,异常中保存了需要对该玩家输出的信息
     */
    int getPlayerPoint(String uuid) throws ServiceErrorSendMsgException;

    /**
     * 检查属性是否合法
     * @param attributeId 属性ID
     * @return 校验这个属性是否配置完整
     */
    boolean checkAttributeUsable(String attributeId);

    /**
     * 向属性模块注册算法攻击算法处理
     * @param damageHandle 具体实现逻辑
     */
    void registerDamageHandle(Consumer<EntityDamageEntityEvent> damageHandle);

事件

类名说明

AttributeChangeEvent

玩家属性值变动事件

BuffCreateEvent

Buff创建事件

BuffRemoveEvent

buff移除事件

Last updated