Minecraft 板


LINE

※ 引述《vencin1987 (迪納敏斯)》之銘言: : 感謝協助 : 但這看起來只能解決工具 : 武器部分應該EntityDamageByEntityEvent : 可從getEntity拿到player再拿到手上道具處理 : 但裝備部分看起來都是要迭代物品欄,我擔心會對SERVER負擔太重 : 不知道有沒有可能用類似複寫setDurability的方式處理(應該不太行 : 所以最後我選擇裝了RepairRecipe解決 武器的部分,我沒經驗,PASS,只討論下面附魔的部分。 : 另外 : 看到你有寫附魔部分 我目前的理解是 : 就算接了event 但不做任何處理 : (例如接了BlockBreakEvent但public void OnBlockBreak(BlockBreakEvent e){}) : 原本該發生的事應該不會有影響 例如耐久度附魔 : 不知道有沒有誤會 這幾行寫得模糊不清,我感覺你已經懂了,但是文句沒寫對。 附魔的部分並不是接了event(事件)不做任何處理 解釋這件事情必須從「如何提升最大耐久度」說起 一般而言,在遊戲內可以附魔「耐久」讓工具可以用更久 若不去看工具耐久度的變化 可能會誤以為工具可以用得更久是因為最大耐久度提升了 事實上附魔「耐久」的功能並沒有增加最大耐久度,最大耐久度並沒有變化 每次使用工具時,附魔「耐久」是增加一個機率使工具耐久度不變 所以說,如果今天想要開發一個增加工具最大耐久度的Plugin 由於目前還沒有辦法真的增加工具最大耐久度 所以可以從類似附魔「耐久」的方式著手 也就是說,在玩家破壞方塊的時候,增加一個機率讓工具耐久度不發生變化 在程式實作方面,可分兩種方法達成目的: 1. 取消原 BlockBreakEvent 事件,對應的程式碼是 event.setCancelled(true); 這樣craftBukkit就不會對方塊被破壞事件做出任何動作 (在客戶端會看到方塊破壞掉之後,馬上又長回去) 走這條路,要自己撰寫事件處理器,處理所有應發生的事情 如:方塊換成空氣、掉出經驗值、工具耐久度變化……等 (讓客戶端看到方塊確實被破壞掉了) 2. 不取消原 BlockBreakEvent 事件 這方法要注意 事件處理順序是先經過Plugin才傳送到craftBukkit 傳送到craftBukkit的時候,視附魔有無耐久而定,耐久度有一定機率不會變化。 走這條路,只要將耐久度設定減一就可以了 (讓工具變新) 但若有附魔耐久的話,工具有一定機率會愈來愈新,也許最後會變成全新的。(bug?) : ※ 引述《H45 (!H45)》之銘言: : : 事件: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: 140.116.247.22
1F:推 vencin1987:我那5行的意思是 就算接聽EVENT 只要沒取消 原本該 01/08 00:56
2F:→ vencin1987:發生的處理都會照常發生 01/08 00:56
3F:→ vencin1987:並不是指留空method會讓原本該發生的stack中斷 01/08 00:57
4F:→ vencin1987:所以我才問java有沒有辦法把原本bukkit的實例蓋掉 01/08 00:57
5F:→ vencin1987:因為我看到第一個範例 有一個地方只繼承 這樣會有效? 01/08 00:59
6F:→ vencin1987:我看還是找個時間來讀讀bukkit 的source會比較快 01/08 01:06
7F:→ vencin1987:只是上班整天都在弄code回家就有點懶.. 01/08 01:08
看不懂上面這段 編輯:之前我推文語氣有點衝,修掉了。 ※ 編輯: H45 來自: 114.33.235.24 (01/08 20:15)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP