NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
>[danger]Buff钩子 [TOC] <br><br><br> # 添加buff前鉴权 >假如你用了拓展数据能否添加某个buff时,可以在这里进行操作 ``` #[参数] caster = buff投放者数据(玩家/怪物的相关数据) !可能为null,用之前 if(caster != null){...} #[参数] recipient = buff接收者数据(玩家/怪物的相关数据) #[参数] config = buff的相关配置 #[参数] container = 接收者的buff容器 #[参数] level = buff等级 #[参数] args = 传递下来的附加参数 # 例如指令: 'pr b g 玩家 标记 buffid 等级 time=1;自定义=2' 中的 'time=1;自定义=参数内容' #[返回] boolean = 可以添加返回true,不可返回false (默认true) #boolean canAddBuff(UMap caster,UMap recipient,BuffConfig config,BuffContainer container,int level,Map args); canAddBuff: true ``` <br><br><br> # 添加buff后 ``` #[参数] recipient = buff接收者数据(玩家/怪物的相关数据) #[参数] buff = 添加的buff数据 #[参数] old = 被顶替的buff(可能为null) #[参数] container = 接收者的buff容器 #[返回] 无 #boolean buffAdd(UMap recipient,BuffData buff,BuffData old,BuffContainer container); buffAdd: return; ``` <br><br><br> # buff移除后 > 如: 死亡移除,插件移除,指令移除,手动移除 等 ``` #[参数] recipient = buff接收者数据(玩家/怪物的相关数据) #[参数] container = buff容器 #[参数] buffs = 移除的buff数组 #[返回] 无 #void buffRemove(UMap recipient,BuffContainer container,BuffData[] buffs); buffRemove: |- for(BuffData buff : buffs){ System.out.println(buff.getBuffName() + " 被移除"); } ``` <br><br><br> # buff结束后 > 如: 时间到了 ``` #[参数] recipient = buff接收者数据(玩家/怪物的相关数据) #[参数] container = buff容器 #[参数] buffs = 移除的buff数组 #void buffEnd(UMap recipient,BuffContainer container,BuffData[] buffs); buffEnd: |- for(BuffData buff : buffs){ System.out.println(buff.getBuffName() + " 结束了"); } ``` <br><br><br> # buff暂停 > 如: 玩家死亡暂停,手动暂停 等 ``` #[参数] recipient = buff接收者数据(玩家/怪物的相关数据) #[参数] container = buff容器 #[参数] buffs = 移除的buff数组 #void suspendBuff(UMap recipient,BuffContainer container,BuffData[] buffs); suspendBuff: |- for(BuffData buff : buffs){ System.out.println(buff.getBuffName() + " 暂停了"); } ``` <br><br><br> # buff继续 > 如: 玩家重生,手动继续 等 ``` #[参数] recipient = buff接收者数据(玩家/怪物的相关数据) #[参数] container = buff容器 #[参数] buffs = 移除的buff数组 #void suspendBuff(UMap recipient,BuffContainer container,BuffData[] buffs); suspendBuff: |- for(BuffData buff : buffs){ System.out.println(buff.getBuffName() + " 继续计时"); } ``` <br><br><br> # 玩家buff载入完毕后 > 如: 进入游戏,重载插件读取玩家buff后 ``` #[参数] recipient = 玩家数据 #[参数] container = 玩家buff容器 #void playerBuffLoadOver(UMap recipient,BuffContainer container); playerBuffLoadOver: return; ```