跳至主要內容

商店系統

EliteMobs 內建一套商店系統,讓玩家能花用並賺取精英金幣(EliteMobs 貨幣)來購買 EliteMobs 裝備與箭矢。商店通常透過冒險者公會中的鐵匠與商人 NPC 來存取,但也可以用指令開啟。

經濟設定

正常使用商店時,請保持 EconomySettings.yml 中的 enableEconomy: true。動態商店與自訂商店的入口選單會檢查此設定,但管理員直接開啟選單的指令,以及出售與箭矢 NPC 的路徑並沒有相同的檢查。這不是通用的存取控制開關。Vault 整合正常運作時,餘額會使用 Vault 經濟提供者,而非 EliteMobs 貨幣資料庫。

貨幣​

預設貨幣稱為精英金幣(EconomySettings.yml 中的 currencyName)。玩家主要透過擊殺精英(金幣灑落)以及出售 EliteMobs 戰利品來賺取它。餘額可使用標準的金錢指令查詢與支付:

  • /em money check – 查詢你的餘額(並沒有 /em wallet 指令;部分設定檔註解仍沿用這個舊名稱)
  • /em pay <player> <amount> – 支付給另一名玩家(受 playerToPlayerPaymentTaxes 影響)

管理員可使用 /em money add|remove|set 等指令管理餘額。

各商店​

動態商店(程序生成裝備)​

使用 /em shop dynamic 或與鐵匠 NPC(elitemobs.shop.dynamic.npc)對話。若 agTeleport 已啟用、公會已安裝,且玩家具有 elitemobs.adventurersguild.teleport 權限,玩家指令會轉往公會;否則會開啟買賣選單。NPC 會直接開啟該選單。

動態商店在 54 格選單中設定的商品欄位裡,提供程序生成的 EliteMobs 武器與盔甲。商品等級依照你對該物品類型的技能等級,在 (skillLevel - 5) 到 skillLevel 之間抽取,並限制在 1–100。技能等級達到 105 後,該技能的所有商品均為 100 級。沒有對應技能的材料使用依所有技能類型的平均 XP計算出的等級。

  • 點擊物品即可按其計算價值購買。購買需要足夠的資金、一個空的儲物欄位,並通過適用的裝備技能需求檢查。檢查遵循裝備限制設定及其例外,包括 20 級以下(含 20 級)的物品。
  • 使用重新擲骰按鈕來刷新所提供的庫存(2 秒的短冷卻)。
  • 購買物品也會更新庫存。

自訂商店(特殊物品)​

使用 /em shop custom 或與特殊鐵匠 NPC(elitemobs.shop.custom.npc)對話。玩家指令遵循與動態商店相同的公會轉送規則;NPC 直接開啟買賣選單。

自訂商店從符合條件的自訂物品中隨機抽取商品。itemType: CUSTOM 可以上架;UNIQUE、DROPPABLE 與 CLASS_LOOT 則被排除。啟用靈魂綁定時,商品複本會靈魂綁定給買家。請至少保留一個符合條件的物品:目前的商品選擇器無法處理空的候選池。

購買需要足夠的資金及一個空的儲物欄位。此選單不執行動態商店的技能檢查,因此能購買不代表能裝備。重新擲骰按鈕有 2 秒冷卻,購買也會更新庫存。

出售物品​

出售可透過買賣選單(在開啟動態或自訂商店後)的出售選項進入,或由管理員直接以 /em shop sell <player>(elitemobs.shop.sell.other)開啟。出售物品鐵匠 NPC 使用 elitemobs.shop.sell.npc 權限。

在出售選單中:

  • 點擊背包中的 EliteMobs 物品,將整疊移至出售欄位。未綁定物品和綁定於你的物品均可出售。原版物品及綁定於其他玩家的物品會被拒絕;停用靈魂綁定檢查或擁有略過權限時,綁定限制不適用。
  • 確認按鈕會顯示累計總額。點擊它即可出售所有物品並獲得精英金幣。
  • 售價是物品已儲存價值的一定比例;沒有儲存值時使用計算價值。比例由 EconomySettings.yml 中的 itemResaleValue 設定(預設 5%),付款金額還要乘以堆疊數量。
  • 出售收入會先償還尚未清償的賭博債務,只有剩餘部分才會增加可用餘額。
  • 每一疊物品會分別入帳。若經濟提供者拒絕某次入帳,該疊物品會退還給你,出售隨即中止,並顯示 shopTransactionFailedMessage。在此之前已入帳的物品仍視為已售出。

箭矢商店​

透過與箭矢商店 NPC(elitemobs.shop.arrow.npc)對話來開啟。

箭矢商店以精英金幣販售彈藥。預設庫存包括:

  • 一般箭矢(一小疊與一大疊)
  • 光靈箭
  • 中毒、緩速、虛弱、傷害與治療的藥水箭

每個商品的數量與價格在 menus/arrow_shop_menu.yml 中設定。點擊箭矢購買需要足夠的資金和一個空背包欄位,即使箭矢可以堆疊到別處也需要空位。商品欄位的位置在實作中固定。修改價格、數量或商品名稱後請重新啟動:商品目錄在選單類別首次載入時就會快取。

指令與權限​

指令權限預設說明
/em shop dynamicelitemobs.shop.dynamictrue開啟動態商店入口選單或要求傳送至公會
/em shop procedural <player>elitemobs.*op為另一名玩家開啟動態(程序生成)商店
/em shop customelitemobs.shop.command僅在程式碼中使用開啟自訂商店入口選單或要求傳送至公會;需要時授予這個實際使用的指令權限,而非已宣告但未使用的 elitemobs.shop.custom
/em shop custom <player>elitemobs.shop.custom.otherop為另一名玩家開啟自訂商店
/em shop sell <player>elitemobs.shop.sell.otherop為另一名玩家開啟販售選單

NPC 互動權限(透過 elitemobs.user 套組預設授予玩家):

權限NPC
elitemobs.shop.dynamic.npc鐵匠(動態商店)
elitemobs.shop.custom.npc特殊鐵匠(自訂商店)
elitemobs.shop.sell.npc出售物品
elitemobs.shop.arrow.npc箭矢商店

設定​

商店經濟在 EconomySettings.yml 中設定。值得注意的鍵:

鍵預設效果
enableEconomytrue啟用一般經濟入口;不會阻止所有直接進入商店的路徑
currencyNameElite Coins貨幣的顯示名稱
useVaultfalse透過 Vault 而非 EliteMobs 資料庫導向餘額
itemResaleValue5出售時支付的物品完整價值百分比
playerToPlayerPaymentTaxes0.2套用於 /em pay 轉帳的稅率(0.0–1.0,0.2 = 20%)
enableCurrencyShowertrue精英死亡時是否掉落金幣
currencyShowerTierMultiplier1.0掉落貨幣的倍率(2.0 = 兩倍)
materialWorth.defaultMaterialWorth1沒有自身 materialWorth.<MATERIAL> 項目的材料所使用的價值

materialWorth.<MATERIAL> 使用外掛材質階級的固定預設值:獄髓為 18,鑽石與三叉戟為 17,鐵為 16,石與鎖鏈甲為 15,金、木與皮革為 13。這些階級是程式碼常數,不是設定選項。要設定商店價格,請修改 EconomySettings.yml 中各項 materialWorth 值。

各商店的選單版面配置(欄位、物品圖示、名稱與訊息)位於 EliteMobs 選單設定檔中(例如買賣、自訂商店、程序生成商店、販售與箭矢商店的選單設定)。

購買價值的計算會合併材料、附魔與藥水效果的價值,並加上基礎值 1。因此,修改價格設定後,已儲存的轉售價值可能不同於新計算出的購買價格。

每次購買都會先扣款,等經濟提供者接受付款後才交付物品。若提供者拒絕付款,玩家會收到資金不足的訊息,且不會交付任何物品。若交易中途失敗,玩家會看到 shopTransactionFailedMessage,伺服器記錄則會寫下價格、扣款是否被接受以及物品,讓管理員可以處理。