2015年8月3日 星期一

自製屬性系統-三章-經驗等級與屬性增長

自製屬性系統-經驗等級與屬性增長

經驗在麥塊裡扮演的就是來來去去的作用,打怪、挖礦、燒製可以一點一滴的取得,累積之後會有等級成長但是無實質作用,如果要讓等級起作用還需要考慮到降等的問題玩家死亡、道具附魔。

定住等級讓玩家不掉等,這部份其實已經破壞原本的遊戲內容,當然你也可以自己編出新等級經驗,問題在於廣泛使用的還是原玩家等級這裡,我們儘量不壞原則下來進行插件的寫作,不過有時也為了讓玩家不作弊而有所犧牲。


接下來我們還需要運用指令讓玩家進行屬性的調配,當然你也一定發現我們讓玩家打開箱子,使用指令進行屬性升級太簡單了,但是,所有遊戲幾乎都是圖形化的介面,玩家用滑鼠點擊就可以完成許多事,圖形化介面已經不再是伺服器的特色,而是一種必然的作法。


看到上面簡單的介面是不是越越欲試,當然原本的構想沒這麼簡單就是了,不過光這樣寫的時候除了枯燥外就是乏味。


這裡我大概說明一下內容好了,我們要以箱子介面來充當圖形介面所以我們需要一個框架,所以我會做的跟RpgAa一樣寫出一個可重複使用的介面,不過再這裡你會發現我們的Class少了public,因為RpgCa不需要讓其他人使用,對於Class權限有興趣的話可以Google一下。

Plugin Config內容是讓服主設定屬性等級需要多少經驗值(如,需要多少經驗才能升級到LV1)、最大等級,內容還需要玩家們的屬性所以建立new class 需要置入 player uuid才行,重復的內容我們就不多說。


當然別忘記我們的按鈕,之前建立5的屬性自然需要最少5個按鈕,我們只拉出一個來看請看官們自行舉一反三了,45行你應該發現我們還給按鈕數量為了要玩家一打開就知道自己的屬性等級,不過道具最多只能夠堆疊64個,再往上追加會造成顯示上的錯誤,當然還是可以靠其他插件來補救,不過再這我們還是要限制屬性等級不要超過64較好。

內容(Lore)的第1行你一定發現內容不是跟道具名稱差不多嗎?沒錯,第1行扮演一個很重要的角色,大多數插件都會以道具名稱來做辨別,但是這樣的作法容易讓玩家們破解並從中作梗,名稱上加入顏色碼是無效的除非你是使用translateAlternateColorCodes(),不過一旦色碼代號流出去就跟反編譯程式流落再我們手上是一樣的道理,也有些人再加上道具類型做判斷,但只是再增加困難度而已,鐵砧就能搞定一切,玩家無法編輯的部份就是說明內容所以判斷使用的Keyword就是Lore的第1行。

接近結尾處你應該發現了ItemFlag,他可以用來隱藏道具的固定/額外附加的屬性,比如鐵劍有+6 攻擊傷害玩家一看還以為我修煉一個等級會增加6點傷害,附魔燃燒,哇嗚聽起來好遜喔,隱藏附魔後加上個小故事...每當揮下一劍,惡龍便從劍刃之中浮現,並且吐出邪惡的黑焰。攻擊有機率發動特技:魔龍吐熄。


完成界面按鈕後自然我們要接上按鈕與玩家們互動,其中會利用到的就是事件了,玩家與箱子互動事件之中,一開始我們要辨別是不是打開屬性生級的箱子,由於在這裡不需要移動到裡面的按鈕與玩家的道具,因此所有的互動設定為取消,雖然互動是取消的但是取得的點擊依然存在。


取得點擊欄位就可以取得點擊的按鈕,辦別玩家經驗值是否能夠提生該技能,可以的話該技能就提生1個等級,是不是很簡單呢,不外乎,很多處發還可以做出更多便利的界面供伺服器使用,在這只是牛身上的一根毛而以。