Package server.movement


package server.movement
角色與物件移動指令的解析與資料模型:各種移動片段(LifeMovement)的型別階層。

客戶端送出的一次移動由多個「移動片段」組成,本 package 將其建模為 LifeMovementFragment 介面(serialize 寫入封包、 getPosition 取得座標)。LifeMovement 再擴充出 型別/持續時間/新狀態(type/duration/newstate), 由抽象基底 AbstractLifeMovement 提供共用欄位與存取子。

具體片段依移動方式分為:絕對座標 AbsoluteLifeMovement、 相對位移 RelativeLifeMovement、瞬間移動 TeleportMovement、彈跳 BounceMovement 與貼地 GroundMovement;另有特殊片段 ChangeEquipSpecialAwesome(直接實作 LifeMovementFragment)用於移動中切換裝備外觀。

每個片段以 MaplePacketLittleEndianWriter 序列化為封包位元組, 供 handling.channel.handler.MovementParse 於解析玩家/怪物移動封包後重建並廣播。

  • Class
    Description
    以絕對世界座標表達的生物移動片段,對應移動指令類型 071416444546
    所有具體移動片段類別的抽象基底,實作 LifeMovement 的四個共用欄位。
    代表彈跳(跳躍落地反彈)類型的生物移動片段。
    移動序列中的換裝特殊事件片段,直接實作 LifeMovementFragment 而非攜帶移動資料。
    代表地面靜止或接地狀態的生物移動片段。
    具備狀態(newstate)、持續時間(duration)與移動類型(type)的移動片段介面。
    所有生物移動序列片段的最基礎介面。
    以相對位移表達的生物移動片段,對應移動指令類型 121819 等。
    代表傳送類型的生物移動片段,序列化時附帶目標腳架(foothold)ID。