這裡我不會接續原來的插件(RpgA)來寫,而是創建另一個插件去支援它,為什麼要做得這麼麻煩呢?
沒有一種插件可以滿足所有使用者,而且分開寫作在維護上也比較方便,基本上大多數插件寫作都是為了自己的伺服器有所需求,比如接下來的創作是玩家加入及加入屬性功能,但也有伺服器是後來經過某種程序再加入,如經過試練考核等,因此你也可以再寫一個依你自己的模式需求製作插件來支援我寫的。
上圖已經放入RpgA中我們可以加以利用的API,使用API的方法與同插件寫入是一樣的不需要額外的寫作方法。
接下來我們要先讓玩家擁有屬性,在這裡有幾種簡單的方法,第一種是使用指令方式,這時如果以自動化來看指令需要由玩家來執行是比較不好的方法,所以可以用指令木牌插件或壓力板來做觸發,不過更簡單的就是玩家一進遊戲同時也將屬性加入會比較好,這次寫的算是共通性屬性所以沒必要加入過於複雜的設計。
玩家加入遊戲事件,在事件之中最常使用的就是它,這也是事件中的基礎運用,只需要玩家進入到遊戲中立即觸發作用,內容當中分兩段(第1張圖)主要是檔案判斷這部份用if一分為二,如果不進行檔案判斷便會一值重複作屬性修改為0的動作。
內容以口語來說就是,玩家加入遊戲觸發以UUID命名的檔案辨識系統(唯一檔案),如玩家第一次進入遊戲(或者伺服器第一次裝)此時辨識系統檢測不到該玩家檔案,自動創建以該玩家UUID命名檔,依照上一篇的說明該玩家所有屬性都會設定為0;登出之後再進入就不是第一次加入遊戲而且屬性檔也有建立,系統會由檔案讀取相干的值並提示玩家目前的屬性。
別忘記要讓事件起作用還需要在Main Class註冊,不然寫在多也是白費;目前為止我們事件只有一條,再不久加入的更多更煩雜,最好的方法是事前規劃,再做分類拆開。
寫好一個階段最好是進行實際測試,尤其是「事件」要做到避免有互相干涉的情形,登入2次看看結果是不是跟我一樣。
當然我們的標題「顯示屬性」還沒有結束,你不可能讓玩家進行登出登入來看自己的屬性值,而目前有幾種簡單的方式來製作,能夠再Spigot API 裏面找到顯示方式大約3~5種 。
利用指令讓玩家自行輸入來使用,這一種顯示方式對玩家來說是最方便的,想要在時何地都可以使用對伺服器也不會造成太大的影響,如果嫌麻煩還可以使用箱子指令讓玩家用點選的方法來執行,當然也可以用物品點擊左右鍵來取得也行。
上圖中你可以發現內容的寫法跟前面的事件內容有些相似,不想讓玩家查詢自己的屬性卻只有白色的文字所以有使用ChatColor改變文字顏色,比較常使用的方法有ChatColor.Color + String ,當然你也可以像我一樣使用代碼式轉換,下圖有對照顏色代碼雖然說你不一要用&,不過我個人認為這是習慣用法而且這樣的模式比較符合多數人的習慣。
內容以口語來說就是,玩家加入遊戲觸發以UUID命名的檔案辨識系統(唯一檔案),如玩家第一次進入遊戲(或者伺服器第一次裝)此時辨識系統檢測不到該玩家檔案,自動創建以該玩家UUID命名檔,依照上一篇的說明該玩家所有屬性都會設定為0;登出之後再進入就不是第一次加入遊戲而且屬性檔也有建立,系統會由檔案讀取相干的值並提示玩家目前的屬性。
別忘記要讓事件起作用還需要在Main Class註冊,不然寫在多也是白費;目前為止我們事件只有一條,再不久加入的更多更煩雜,最好的方法是事前規劃,再做分類拆開。
寫好一個階段最好是進行實際測試,尤其是「事件」要做到避免有互相干涉的情形,登入2次看看結果是不是跟我一樣。
當然我們的標題「顯示屬性」還沒有結束,你不可能讓玩家進行登出登入來看自己的屬性值,而目前有幾種簡單的方式來製作,能夠再Spigot API 裏面找到顯示方式大約3~5種 。
利用指令讓玩家自行輸入來使用,這一種顯示方式對玩家來說是最方便的,想要在時何地都可以使用對伺服器也不會造成太大的影響,如果嫌麻煩還可以使用箱子指令讓玩家用點選的方法來執行,當然也可以用物品點擊左右鍵來取得也行。
上圖中你可以發現內容的寫法跟前面的事件內容有些相似,不想讓玩家查詢自己的屬性卻只有白色的文字所以有使用ChatColor改變文字顏色,比較常使用的方法有ChatColor.Color + String ,當然你也可以像我一樣使用代碼式轉換,下圖有對照顏色代碼雖然說你不一要用&,不過我個人認為這是習慣用法而且這樣的模式比較符合多數人的習慣。
沒錯除了「事件」以外「指令」也需要在Main Class註冊,另外還需要寫入說明不過你可以看到我沒有寫說明在裏面,只是單純放一個框架而已,由於在BUKKIT某一版本寫入說明這部份有出現問題後我就沒有再寫入說明(應該已經修好BUG),寫說明的好處是玩家使用/help時,內容顯示可以秀出說明外,還可以查詢如何使用,框架是一定要加入的如果沒做這一部份會導致指令無法運作。
再次進行測試是否有達到我們的需求,顏色文字排版最好是進遊戲之後再來比對排版,當然也有其他補助插件可以改善排版的問題;目前為止事件與指令介紹的不是很完善等這部份告一段落再來好好研究一番。
沒有留言:
張貼留言