NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
>[danger] 没法写出所有例子(因为根本写不完,无限种效果QAQ),这里就写出了一些简单的例子,开发脑洞写更出色的效果吧 > 待更新 <br><br><br> [TOC] <br><br><br> # 简单的给自己释放(有同标识的buff时不让使用) ![](../../images/screenshot_1679930334322.png) ``` function: common: consume: true cooldown: 0 pxrpg-cooldown: 100 germ-cooldown: 100 permission: '' can-use: |- AdapterPlayer player = data.get("entity"); BuffContainer buff = data.get("buff"); if(buff.hasBuff("buff标识")){ player.sendOldMessage("你已经有这个buff了,无法继续使用该物品"); return false; } return true; condition: [] event: [] additional: code: code: |- AdapterPlayer player = data.get("entity"); BuffContainer buff = data.get("buff"); boolean s = buff.addBuff("buff标识","buffid",player,1); if(s){ player.sendOldMessage("&a添加buff成功"); player.sendOldMessage("&a这个物品将消耗一个"); }else{ player.sendOldMessage("&c添加buff失败"); player.sendOldMessage("&c这个物品将不会消耗"); } return s; ``` <br><br><br> # 给附近20格内的玩家上buff ![](../../images/screenshot_1679932521043.png) 使用者 ![](../../images/screenshot_1679932192960.png) 接收者 ![](../../images/screenshot_1679932019917.png) ``` function: common: consume: true cooldown: 0 pxrpg-cooldown: 100 #萌芽冷却 germ-cooldown: 100 permission: '' can-use: true condition: [] event: [] additional: code: code: |- import com.pxpmc.pxrpg.api.Module; import com.pxpmc.pxrpg.api.modules.buff.BuffController; import com.pxpmc.pxrpg.api.modules.buff.BuffModule; AdapterPlayer player = data.get("entity"); String buffNote = "攻击提升"; //buff标识符 String buffId = "井泉水"; //buffID double range = 20.0; //20格范围 BuffModule module = (BuffModule)Module.getModule(BuffModule.class); int count = 0; System.out.println("测试"); for (AdapterEntity nearbyEntity : player.getLocation().getNearbyEntities(range, range, range)) { //判断一下这个实体是不是玩家,去掉可以给附近所有实体上BUFF if (nearbyEntity instanceof AdapterPlayer) { //获取玩家的容器 BuffContainer buffContainer = module.getController().getBuffContainer(nearbyEntity); if (buffContainer != null) { if (!buffContainer.hasBuff(buffNote)) {//去掉这行可以不判断玩家是否有这个buff //给buff,并且如果成功就说明使用物品成功了 if(buffContainer.addBuff(buffNote, buffId, player, 1)){ player.sendOldMessage("&f你成功给附近玩家 &c" + nearbyEntity.getName() + " &f添加了标识为: &a" + buffNote + " &f,buffID为: &e" + buffId + " &f的buff"); AdapterPlayer temp = (AdapterPlayer)nearbyEntity; temp.sendOldMessage("&f你成功收到来自于 &c" + player.getName() + " &f玩家添加的标识为: &a" + buffNote + " &f,buffID为: &e" + buffId + " &fbuff"); count++; } }//去掉这行可以不判断玩家是否有这个buff } } } if(count > 0){ player.sendOldMessage("&f你成功给附近 &c" + count + " &f个玩家添加了buff"); } //玩家的数量 > 0 标识道具使用成功,让使用者消耗一下 return count > 0; ``` <br><br><br> # 给 当前世界/服务器 所有玩家上buff(管理员福利BUFF QAQ) ![](../../images/screenshot_1679932617604.png) 使用者 ![](../../images/screenshot_1679932659416.png) 接收者 ![](../../images/screenshot_1679932686836.png) ``` function: common: consume: true cooldown: 0 pxrpg-cooldown: 100 #萌芽冷却 germ-cooldown: 100 permission: '' can-use: true condition: [] event: [] additional: code: code: |- import com.pxpmc.pxrpg.api.Module; import com.pxpmc.pxrpg.api.modules.buff.BuffController; import com.pxpmc.pxrpg.api.modules.buff.BuffModule; import com.pxpmc.pxrpg.api.MAPI; //获取所有在线玩家时需要导入 AdapterPlayer player = data.get("entity"); String buffNote = "攻击提升"; //buff标识符 String buffId = "井泉水"; //buffID BuffModule module = (BuffModule)Module.getModule(BuffModule.class); int count = 0; /* 如果需要给服务器所有玩家可以使用 for (AdapterPlayer nearbyEntity : MAPI.getBukkitPxRpgAPI().getOnlinePlayers()) { */ for (AdapterPlayer nearbyEntity : player.getLocation().getWorld().allPlayer()) { //获取玩家的容器 BuffContainer buffContainer = module.getController().getBuffContainer(nearbyEntity); if (buffContainer != null) { if (!buffContainer.hasBuff(buffNote)) {//去掉这行可以不判断玩家是否有这个buff //给buff,并且如果成功就说明使用物品成功了 if(buffContainer.addBuff(buffNote, buffId, player, 1)){ player.sendOldMessage("&f你成功给当前世界 &c" + nearbyEntity.getName() + " &f玩家添加了标识为: &a" + buffNote + " &f,buffID为: &e" + buffId + " &f的buff"); nearbyEntity.sendOldMessage("&f你成功收到来自于 &c" + player.getName() + " &f玩家添加的标识为: &a" + buffNote + " &f,buffID为: &e" + buffId + " &fbuff"); count++; } }//去掉这行可以不判断玩家是否有这个buff } } if(count > 0){ player.sendOldMessage("&f你成功给当前世界 &c" + count + " &f个玩家添加了buff"); } //玩家的数量 > 0 标识道具使用成功,让使用者消耗一下 return count > 0; ``` <br><br><br> # 给自己队伍所有玩家上buff(不限距离QAQ) >[danger] 由于需要 [队伍插件](../../../../PxTeam2/%E4%BB%8B%E7%BB%8D.md) 的支持, 我就暂时没写例子 <br><br><br> # 给自己帮派所有玩家上buff(不限距离QAQ) >[danger] 由于需要 [帮派插件](../../../../PxGangs/%E4%BB%8B%E7%BB%8D.md) 的支持, 我就暂时没写例子