Class SpecialItemConfig
java.lang.Object
server.specialitem.SpecialItemConfig
單筆「特殊道具」設定的不可變資料模型,對應資料表
special_items 的一列。
由後台「特殊道具」頁設定、SpecialItemFactory 自 SQL 載入後封裝為本物件。
玩家身上(依三個生效旗標之一)持有對應 itemId 的道具時,
client.PlayerStats#recalcLocalStats 會把本設定的各項加成累加進角色數值,
道具一旦離身即於下次重算自動移除。
欄位語意:
itemId——道具編號(主鍵)。equipEffective/invEffective/storageEffective—— 三個「生效條件」旗標:穿戴中/背包內/倉庫內任一滿足即觸發(可同時開啟多個,符合其一即生效)。enabled——總開關,關閉時整列設定不生效。pickupRange——寵物自動撿物範圍(0~10000,10000約等同全圖吸物)。extraExpPct/extraMesoPct——擊殺怪物的額外經驗值/楓幣百分比(加法疊加)。str/dex/int_/luk/watk/matk—— 力/敏/智/幸/攻擊力/魔攻的固定加成(會以右上角 buff 圖示呈現,且不被同名藥水覆蓋、不被淨化)。
-
Constructor Summary
ConstructorsConstructorDescriptionSpecialItemConfig(int itemId, boolean equipEffective, boolean invEffective, boolean storageEffective, boolean enabled, int pickupRange, int extraExpPct, int extraMesoPct, int str, int dex, int int_, int luk, int watk, int matk) 建構一筆特殊道具設定。 -
Method Summary
-
Constructor Details
-
SpecialItemConfig
public SpecialItemConfig(int itemId, boolean equipEffective, boolean invEffective, boolean storageEffective, boolean enabled, int pickupRange, int extraExpPct, int extraMesoPct, int str, int dex, int int_, int luk, int watk, int matk) 建構一筆特殊道具設定。- Parameters:
itemId- 道具編號equipEffective- 穿戴中是否生效invEffective- 背包內是否生效storageEffective- 倉庫內是否生效enabled- 總開關pickupRange- 寵吸範圍(0~10000)extraExpPct- 額外經驗值百分比extraMesoPct- 額外楓幣百分比str- 力量加成dex- 敏捷加成int_- 智力加成luk- 幸運加成watk- 攻擊力加成matk- 魔法攻擊力加成
-
-
Method Details
-
getItemId
public int getItemId()- Returns:
- 道具編號(主鍵)。
-
isEquipEffective
public boolean isEquipEffective()- Returns:
- 穿戴中是否生效。
-
isInvEffective
public boolean isInvEffective()- Returns:
- 背包內是否生效。
-
isStorageEffective
public boolean isStorageEffective()- Returns:
- 倉庫內是否生效。
-
isEnabled
public boolean isEnabled()- Returns:
- 總開關(關閉時整列不生效)。
-
getPickupRange
public int getPickupRange()- Returns:
- 寵吸範圍(0~10000)。
-
getExtraExpPct
public int getExtraExpPct()- Returns:
- 額外經驗值百分比。
-
getExtraMesoPct
public int getExtraMesoPct()- Returns:
- 額外楓幣百分比。
-
getStr
public int getStr()- Returns:
- 力量加成。
-
getDex
public int getDex()- Returns:
- 敏捷加成。
-
getInt
public int getInt()- Returns:
- 智力加成。
-
getLuk
public int getLuk()- Returns:
- 幸運加成。
-
getWatk
public int getWatk()- Returns:
- 攻擊力加成。
-
getMatk
public int getMatk()- Returns:
- 魔法攻擊力加成。
-
hasStatBonus
public boolean hasStatBonus()本列是否帶有任何「會以右上角 buff 圖示呈現」的數值加成(力/敏/智/幸/攻擊/魔攻其一非零)。- Returns:
- 有任一數值加成時回傳
true
-
describeEffects
把本設定的各項非零加成組成可讀的中文效果字串,例如"力+5 敏+3 經驗+10%"。欄位順序與標籤與後台「特殊道具」頁一致:力/敏/智/幸/攻擊/魔攻為固定值(
力+5), 經驗/楓幣為百分比(經驗+10%),寵吸範圍為固定值(寵吸範圍+10000); 數值為0的項目一律略過,負值則以-呈現(力-5)。供「穿戴特殊道具時的效果提示」(
server.MapleInventoryManipulator#equip)與@特殊道具指令列出生效中的效果共用,確保兩處呈現一致。- Returns:
- 各非零加成的中文描述(以單一空白分隔);全部為
0時回傳空字串
-