作者vencin1987 (迪纳敏斯)
看板Minecraft
标题Re: [讨论] 有没有人在写bukkit plugin?
时间Mon Jan 7 12:34:28 2013
感谢协助
但这看起来只能解决工具
武器部分应该EntityDamageByEntityEvent
可从getEntity拿到player再拿到手上道具处理
但装备部分看起来都是要迭代物品栏,我担心会对SERVER负担太重
不知道有没有可能用类似复写setDurability的方式处理(应该不太行
所以最後我选择装了RepairRecipe解决
另外
看到你有写附魔部分 我目前的理解是
就算接了event 但不做任何处理
(例如接了BlockBreakEvent但public void OnBlockBreak(BlockBreakEvent e){})
原本该发生的事应该不会有影响 例如耐久度附魔
不知道有没有误会
※ 引述《H45 (!H45)》之铭言:
: ※ 引述《vencin1987 (迪纳敏斯)》之铭言:
: : 近日因朋友要求开了一个bukkit亲友服
: : 为提升游戏性及降低时间花费
: : 有一些需求
: : 1. 提升得到的EXP倍率
: : 这个搞定了 简单的用
: : PlayerExpChangeEvent的getAmount setAmount达成
: : 2.提物品高耐久度
: : 较可能的做法是降低扣耐久度的机率
: : 但我找不到相应的事件可以搞定
: : 不知道有没有人有弄过这个?
: 事件:BlockBreakEvent 方块破坏事件
: 耐久度增减相关类别与方法:
: Player player = blockBreakEvent.getPlayer(); // 取得破坏方块的玩家
: ItemStack item = player.getItemInHand(); // 取得玩家手上的物品
: short durability = item.getDurability(); // 取得物品的耐久度
: item.setDurability(durability - 1); // 耐久度减一
: (全新的物品耐久度是零,所以耐久度加一,是让物品愈来愈旧,加到最後坏掉。)
: 附魔相关:
: if (item.containsEnchantment(Enchantment.DURABILITY)) { // 有无耐久附魔
: // 取得耐久附魔等级
: int level = item.getEnchantmentLevel(Enchantment.DURABILITY);
: if (random.nextInt(level + 1) == 0) { // 一定机率扣耐久
: // TODO 减少耐久度
: }
: }
: 相关 Plugin 可参考:
: 1. Lumberjack (专案较小): https://github.com/ChinChangYang/Lumberjack
: 2. mcMMO (专案较大): https://github.com/mcMMO-Dev/mcMMO
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 139.223.42.113
1F:→ H45:最後五行总觉得你是懂的,但是却没写对=.= 01/07 12:59
2F:→ H45:耐久度附魔是以一定机率不损耐久度 就这样 程式部分我只是给个 01/07 13:02
3F:→ H45:范例,看你要不要取得附魔相关的资讯供後续程式处理。 01/07 13:02