大体わかってきて、手作業でのデータ分解はできてきました。
・圧縮はzlibのヘッダーなしinflateで展開
・コマンド長はLittleEndianのDWORD(WORDかも?)
・コマンドは2バイト(可変長数値の可能性あり)
・圧縮はコマンド含めず、無圧縮は1パケットに複数のコマンドが詰まってる場合あり
・先頭にインデックス(可変長数値)をもつタプル形式、インデックスは0x08ステップ
(ただしスキップあり)
・さらに、インデックス値にデータ形式を表すビットを立てる
ビットが立ってない場合には可変長数値
0x02のORの場合には、次のバイトであらわす長さの文字列または子タプルがくる
(0x0?だったら子タプル?)
文字コードはUTF8
0x05のORの場合には、4バイト固定長の数値
これでしばらくエラーが出てこないか様子見します。
コマンドの意味はまだ理解しきれていません。
こういうタプル形式のデータシリアライズ、まえにEVEonlineで扱った覚えがあるな。
ソース引っ張ってこようか。
Cだと記述が複雑になりすぎるんよね。C++のタプルも習得しなきゃ、か。
で、loa2でパケット解析のチートをやっても実はあまり面白くないのよねん。
loa2って戦闘はほぼサーバ任せ、操作Pスキルの出る幕がない><
チートをやって何が楽しいかというと、俺うめぇ~(チートだけど)ってのができるから
なんだけど、
loa2の場合、戦力差を覆すのはほぼ不可能。課金で強さが決まってしまう。
弱者が強者に数で圧倒したり、操作の上手さで倒したり、ポーションとかのバフアイテム
の力を一時的に借りたり、ってことはできない(だからつまらない)。
課金額だけで勝負が決まる非情なゲームなのです><
0 件のコメント:
コメントを投稿