Class Equip

java.lang.Object
client.inventory.Item
client.inventory.Equip
All Implemented Interfaces:
Serializable, Comparable<Item>

public class Equip extends Item implements Serializable
可裝備道具的資料模型,繼承自 Item 並附帶全套裝備屬性。

封裝裝備格專屬的所有數值,包含:

  • 基本能力加成(STR/DEX/INT/LUK/HP/MP/攻擊/防禦/命中/迴避/速度/跳躍)
  • 強化資訊:升級槽(upgradeSlots)、強化次數(enhance)、Vicious Hammer 次數
  • 潛在能力(potential1potential5)與插槽(socket1socket3
  • 道具經驗值(itemEXP)、耐久度(durability)、魅力經驗(charmExp
  • 關聯的 MapleRing(配對戒指)與 MapleAndroid(安卓)

ItemLoader 自資料庫讀取還原,並透過 server.MapleInventoryManipulator 進行背包操作;卷軸強化結果以內部列舉 ScrollResult 表示。

See Also:
  • Field Details

  • Constructor Details

    • Equip

      public Equip(int id, short position, byte flag)
    • Equip

      public Equip(int id, short position, int uniqueid, short flag)
  • Method Details

    • copy

      public Item copy()
      Overrides:
      copy in class Item
    • getType

      public byte getType()
      Overrides:
      getType in class Item
    • getUpgradeSlots

      public byte getUpgradeSlots()
    • getStr

      public short getStr()
    • getDex

      public short getDex()
    • getInt

      public short getInt()
    • getLuk

      public short getLuk()
    • getHp

      public short getHp()
    • getMp

      public short getMp()
    • getWatk

      public short getWatk()
    • getMatk

      public short getMatk()
    • getWdef

      public short getWdef()
    • getMdef

      public short getMdef()
    • getAcc

      public short getAcc()
    • getAvoid

      public short getAvoid()
    • getHands

      public short getHands()
    • getSpeed

      public short getSpeed()
    • getJump

      public short getJump()
    • setStr

      public void setStr(short str)
    • setDex

      public void setDex(short dex)
    • setInt

      public void setInt(short _int)
    • setLuk

      public void setLuk(short luk)
    • setHp

      public void setHp(short hp)
    • setMp

      public void setMp(short mp)
    • setWatk

      public void setWatk(short watk)
    • setMatk

      public void setMatk(short matk)
    • setWdef

      public void setWdef(short wdef)
    • setMdef

      public void setMdef(short mdef)
    • setAcc

      public void setAcc(short acc)
    • setAvoid

      public void setAvoid(short avoid)
    • setHands

      public void setHands(short hands)
    • setSpeed

      public void setSpeed(short speed)
    • setJump

      public void setJump(short jump)
    • setUpgradeSlots

      public void setUpgradeSlots(byte upgradeSlots)
    • getLevel

      public byte getLevel()
    • setLevel

      public void setLevel(byte level)
    • getViciousHammer

      public byte getViciousHammer()
    • setViciousHammer

      public void setViciousHammer(byte ham)
    • getItemEXP

      public int getItemEXP()
    • setItemEXP

      public void setItemEXP(int itemEXP)
    • getEquipExp

      public int getEquipExp()
    • getEquipExpForLevel

      public int getEquipExpForLevel()
    • getExpPercentage

      public int getExpPercentage()
    • getEquipLevel

      public int getEquipLevel()
    • getBaseLevel

      public int getBaseLevel()
    • setQuantity

      public void setQuantity(short quantity)
      Overrides:
      setQuantity in class Item
    • getDurability

      public int getDurability()
    • setDurability

      public void setDurability(int dur)
    • getEnhance

      public byte getEnhance()
    • setEnhance

      public void setEnhance(byte en)
    • getPotential1

      public int getPotential1()
    • setPotential1

      public void setPotential1(int en)
    • getPotential2

      public int getPotential2()
    • setPotential2

      public void setPotential2(int en)
    • getPotential3

      public int getPotential3()
    • setPotential3

      public void setPotential3(int en)
    • getPotential4

      public int getPotential4()
    • setPotential4

      public void setPotential4(int en)
    • getPotential5

      public int getPotential5()
    • setPotential5

      public void setPotential5(int en)
    • getState

      public byte getState()
    • resetPotential_Fuse

      public void resetPotential_Fuse(boolean half, int potentialState)
    • resetPotential

      public void resetPotential()
    • renewPotential

      public void renewPotential(int type)
    • getIncSkill

      public int getIncSkill()
    • setIncSkill

      public void setIncSkill(int inc)
    • getCharmEXP

      public short getCharmEXP()
    • getPVPDamage

      public short getPVPDamage()
    • setCharmEXP

      public void setCharmEXP(short s)
    • setPVPDamage

      public void setPVPDamage(short p)
    • getRing

      public MapleRing getRing()
    • setRing

      public void setRing(MapleRing ring)
    • getAndroid

      public MapleAndroid getAndroid()
    • setAndroid

      public void setAndroid(MapleAndroid ring)
    • getSocketState

      public short getSocketState()
    • getSocket1

      public int getSocket1()
    • setSocket1

      public void setSocket1(int socket1)
    • getSocket2

      public int getSocket2()
    • setSocket2

      public void setSocket2(int socket2)
    • getSocket3

      public int getSocket3()
    • setSocket3

      public void setSocket3(int socket3)
    • getLine

      public int getLine()
    • setLine

      public void setLine(int line)
    • getLockPot

      public int getLockPot()
    • setLockPot

      public void setLockPot(int LockPot)
    • getlockid

      public long getlockid()
    • setlockid

      public void setlockid(long lockid)
    • setCustom

      public void setCustom(String key, Long value)
      設定一筆自訂屬性。valuenull 時移除該鍵(語意:清除此標籤); keynull 則忽略。
      Parameters:
      key - 屬性名稱(例如「初級寶石」)
      value - 屬性值;null 代表移除
    • getCustom

      public Long getCustom(String key)
      取得一筆自訂屬性。
      Parameters:
      key - 屬性名稱
      Returns:
      對應值;當鍵不存在時統一回傳 null(與本專案既有 MapleQuestStatus.getCustomData() 的 null 慣例一致,腳本可用 equip.getCustom(k) == null ? 0 : ... 判斷)
    • getCustomMap

      public Map<String,Long> getCustomMap()
      取得所有自訂屬性的唯讀快照(不暴露內部 Map,外部無法藉此繞過 API 改動)。 供腳本逐筆走訪或除錯用。
      Returns:
      不可修改的自訂屬性副本
    • getCustomJson

      public String getCustomJson()
      取得自訂屬性的 JSON 字串表示(供資料庫 custom 欄位保存)。 空 Map 回傳 null(資料庫存 NULL)。
      Returns:
      JSON 字串,或 null
    • setCustomJson

      public void setCustomJson(String json)
      由 JSON 字串還原自訂屬性(供資料庫載入)。會先清空既有內容; null / 空白 → 清空。JSON 格式錯誤時記錄警告並保持為空, 絕不讓單一裝備的壞資料中斷整批背包載入。
      Parameters:
      json - JSON 字串(允許 null
    • markOriginStats

      public void markOriginStats()
      記錄裝備「誕生之初」的原始素值快照(冪等)。已記錄過則「不再變動」—— 確保原始素值之完整性, 之後一般遊戲流程(卷軸強化等)無法藉此覆寫。由裝備創建流程 (server.MapleItemInformationProvider.getEquipById)自動呼叫,腳本通常無需手動使用。
    • recaptureOriginStats

      public void recaptureOriginStats()
      重新記錄原始素值(覆寫先前快照)。裝備創建流程專用:屬性隨機浮動 (randomizeStats)/融合(fuse)會在 getEquipById 取得基礎值「之後」 才改動能力值,故創建管線於浮動/融合完成後呼叫此法,把原始素值同步為「玩家實際拿到」的浮動後數值 (對應需求範例:基礎 力+1 攻擊+10、浮動後 力+2 攻擊+13 → 原始素值記為後者)。一般遊戲流程請勿呼叫。
    • restoreOriginStats

      public void restoreOriginStats()
      回到「誕生之初」的能力(需求 0605-4.txt 的 equip.回到原始狀態())。把卷軸/浮動會動到的 戰鬥能力、升級次數(upgradeSlots)、卷軸成功數(level)與強化次數(enhance) 還原為記錄的原始素值;刻意不動潛能(potential1~5)、插槽(socket1~3)、 裝備等級經驗(itemEXP)、魅力經驗(charmEXP)、強化鎚(vicioushammer)等另行養成/付費屬性。 若從未記錄原始素值(originStats 為空,例如本功能上線前的舊裝備)則不做任何事。

      注意:序列化時值為 0 的欄位刻意不存(見 getOriginStatsJson()),故此處缺鍵即代表 誕生之初為 0,一律以 0 還原(不可只還原存在的鍵,否則被卷軸從 0 衝上去的能力無法歸 0)。

    • 回到原始狀態

      public void 回到原始狀態()
      restoreOriginStats() 的中文別名,對應需求所述的 equip.回到原始狀態()
    • hasOriginStats

      public boolean hasOriginStats()
      是否已記錄原始素值。
      Returns:
      已記錄回傳 true(本功能上線前的舊裝備為 false
    • getOriginStats

      public Map<String,Long> getOriginStats()
      取得原始素值的唯讀快照(不暴露內部 Map,外部無法藉此繞過 API 改動)。供腳本檢視或除錯。
      Returns:
      不可修改的原始素值副本(鍵如 strwatkupgradeSlots…)
    • getOriginStatsJson

      public String getOriginStatsJson()
      取得原始素值的 JSON 字串(供資料庫 originStats 欄位保存)。空則回傳 null(存 NULL)。

      只序列化有數值的欄位:值為 0 的能力刻意省略,以縮短 DB 字串 (多數裝備十八個欄位僅少數非 0)。還原時缺鍵即視為誕生之初為 0(見 restoreOriginStats()), 故省略 0 不損失任何資訊。全為 0(或未記錄)時回傳 null

      Returns:
      JSON 字串,或 null
    • setOriginStatsJson

      public void setOriginStatsJson(String json)
      由 JSON 字串還原原始素值(供資料庫載入)。會先清空既有內容;null/空白 → 清空。 格式錯誤時記錄警告並保持為空,絕不讓單一裝備的壞資料中斷整批背包載入。
      Parameters:
      json - JSON 字串(允許 null