ProtocolMap

MiddleMan 用マップ制御プロトコル。プレフィックスは「MAP」とする。

仕様

対サーバ専用

  • GETCHARLIST : キャラクタリスト要求
  • GETMAPINFO : マップ諸元要求
  • GETCHARPOS <キャラ識別子> : キャラクタ位置要求
  • SETCHARPOS <キャラ識別子> <移動先X> <移動先Y> <向き> : キャラクタ移動指示

対クライアント専用

  • MAPINFO <マップタイプ> <Xサイズ> <Yサイズ> [その他諸元] :マップ諸元の返答 マップタイプは文字列で表す。UNKNOWN:不明、SQ-4:スクエア(4方向)、SQ-8:スクエア(8方向)、HEX-X:ヘクス(X直線)、HEX-Y:ヘクス(Y直線) とする。 サイズは 0の時は無限とする。その他諸元はカンマ区切りで諸元の記述を連結する。
  • CHARLIST [キャラ識別子リスト] : キャラリスト要求への返答 キャラ識別子リストはカンマ区切りで識別子の一覧を記述する。
  • CHARPOS <キャラ識別子> <現在X> <現在Y> <向き> : キャラ位置への返答(移動要求への回答も同じ) 向きは -1 が不定、X軸正方向を基準とし、Y軸正方向へ回転させた順に0からナンバリングする。

サーバ・クライアント共用

今のところ無し

マップ定義

X軸は左から右が正方向、Y軸は上から下が正方向とする。

スクエアの場合は、XおよびYともに全座標が有効となる。ヘクスの場合は一方の座標は全て有効だが、もう一方の座標は一つおきのみ有効となる。なお、(0,0)は常に有効である。

ヘクス例:HEX-X(X直線)の場合、ヘクスがX軸に直線に並ぶので、Y軸は全て有効となり、X軸はY軸値に応じて偶数のみ又は奇数のみが有効となる。Y=0ならば(0,0)、(2,0)、(4,0)…が有効である。同様にY=1ならば(1,1)、(3,1)、(5,1)…と奇数のみ有効となる。Y=2ならば、また偶数のみ有効である。