Class JobPacket.PhantomPacket

java.lang.Object
tools.packet.JobPacket.PhantomPacket
Enclosing class:
JobPacket

public static class JobPacket.PhantomPacket extends Object
幻影 (Phantom) 職業專屬封包建構器。

負責建構幻影竊取技能 (Stolen Skill) 與卡牌堆疊 (Card Stack) 相關的客戶端封包, 為 149.1 版本特定內容。

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static byte[]
    addStolenSkill(int jobNum, int index, int skill, int level)
    建構新增竊取技能的封包。
    static byte[]
    gainCardStack(int oid, int runningId, int color, int skillid, int damage, int times)
    建構幻影獲得卡牌堆疊 (Card Stack) 的封包。
    static byte[]
    removeStolenSkill(int jobNum, int index)
    建構移除竊取技能的封包。
    static byte[]
    replaceStolenSkill(int base, int skill)
    建構替換竊取技能的封包。
    static byte[]
    updateCardStack(int total)
    建構更新幻影卡牌堆疊數量的封包。

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PhantomPacket

      public PhantomPacket()
  • Method Details

    • addStolenSkill

      public static byte[] addStolenSkill(int jobNum, int index, int skill, int level)
      建構新增竊取技能的封包。

      對應送出 opcode SendPacketOpcode.UPDATE_STOLEN_SKILLS,操作碼為新增 (1/0), 序列化目標職業、技能槽索引、技能編號與技能等級。

      Parameters:
      jobNum - 來源職業編號
      index - 竊取技能槽位索引
      skill - 被竊取的技能編號
      level - 該技能等級
      Returns:
      封包位元組陣列
    • removeStolenSkill

      public static byte[] removeStolenSkill(int jobNum, int index)
      建構移除竊取技能的封包。

      對應送出 opcode SendPacketOpcode.UPDATE_STOLEN_SKILLS,操作碼為移除 (1/3), 序列化要移除的來源職業與技能槽位索引。

      Parameters:
      jobNum - 來源職業編號
      index - 欲移除的竊取技能槽位索引
      Returns:
      封包位元組陣列
    • replaceStolenSkill

      public static byte[] replaceStolenSkill(int base, int skill)
      建構替換竊取技能的封包。

      對應送出 opcode SendPacketOpcode.REPLACE_SKILLS,將既有技能 base 替換為新技能 skill;當 skill > 0 時旗標寫入 1,否則寫入 0。

      Parameters:
      base - 欲被替換的原技能編號
      skill - 替換後的新技能編號
      Returns:
      封包位元組陣列
    • gainCardStack

      public static byte[] gainCardStack(int oid, int runningId, int color, int skillid, int damage, int times)
      建構幻影獲得卡牌堆疊 (Card Stack) 的封包。

      對應送出 opcode SendPacketOpcode.GAIN_FORCE,序列化施法者物件 ID、傷害值、 技能編號,並依 times 次數逐張寫入卡牌資料 (顏色與位置)。

      注意:每張卡牌的部分欄位使用 Randomizer 隨機產生 (rand(15,29)rand(7,11)rand(0,9)),因此輸出為非確定性 (non-deterministic),不適用於黃金位元組快照測試。

      Parameters:
      oid - 施法者 (角色) 的物件 ID
      runningId - 卡牌起始編號 (damage == 0 時逐張遞增)
      color - 卡牌顏色
      skillid - 觸發此卡牌堆疊的技能編號
      damage - 傷害值 (為 0 時改採遞增編號模式)
      times - 產生的卡牌張數
      Returns:
      封包位元組陣列
    • updateCardStack

      public static byte[] updateCardStack(int total)
      建構更新幻影卡牌堆疊數量的封包。

      對應送出 opcode SendPacketOpcode.PHANTOM_CARD,僅寫入目前的卡牌堆疊總數 total

      Parameters:
      total - 目前的卡牌堆疊總數
      Returns:
      封包位元組陣列