したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

【会員制】ZeazyUO総合スレ03【shadow氏】

10294:2018/05/15(火) 00:28:38 ID:20T89R.c0
>>100
修正案1にならってMSBを常時1ないしは0にしてみたところ、
サイズさえあわせておけばとりあえずトラブルはなさそうです。

ざっくり調べたところ、0x8000以上のモデルIDは結構使われているようです。
見た感じUOHS以降に追加されたものがそれにあてはまり、
今現在は0xA12Dまでが使用(準備)されているかと思われます。
なので、特定のオブジェクトを検索する際にはモデルIDだけでは
よろしくない場合もあることを念頭におく必要があるかもしれません。

10394:2018/05/15(火) 00:40:23 ID:20T89R.c0
寝ぼけてたようで>>102の修正です。
件の1バイトはどうやらMultiオブジェクトにのみ関わるようです

104名も無きチーター:2018/05/15(火) 02:07:14 ID:JTc0QdvE0
検証ありがとうございます。とても助かります。
当方でも試したところ

修正案1 (追加フィールド無し)は、
- ルナ場内の Moonstone Crystal も徳之島船の船倉 cargo hold も認識しなかった

修正案2 と修正案3 (追加フィールドあり)は、
- 両方ともルナ場内の Moonstone Crystal を 0x9CBB ではなく 0x1CBB としてを認識した
- 両方とも徳之島船の船倉 cargo hold を 0x916F ではなく 0x116F として認識した
- ただ、ヘイブンの徳之島船の船倉は時々うまく検索にヒットしなかった

の結果となりました。94様とは修正案1 の結果が異なるようですが、修正案2 か 3 が無難かもです

別の検証で、pilow (緑地に金色のハート) は、バックパック内では 0x9E1D として認識しますが、
地面に置くと、0x1E1D として認識されます

この辺の違いも考慮してスクリプト書く必要がありそうです
理想は、爺本体のバイナリ書き換えたいですが大変そう…

あと、0x8000 を超えるモデルID については、当方でも画像を作りましたので参考まで

ttps://dotup.org/uploda/dotup.org1533922.jpg.html
ttps://dotup.org/uploda/dotup.org1533923.jpg.html
ttps://dotup.org/uploda/dotup.org1533924.jpg.html

105名も無きチーター:2018/05/16(水) 02:08:03 ID:b/fPLQPA0
ZeazyUO.exe のバイナリ変更

66 25 FF 7F 66 89 43 0C 66 3D 06 20
でバイナリサーチすると(爺のバージョンによらず) 1ヶ所に絞れると思う
そこを下記のように書き換え (FF 7F を FF FF)
66 25 FF FF 66 89 43 0C 66 3D 06 20

意味は eax &= 0x7FFF を eax &= 0xFFFF に変更
この変更と uohook5.cpp ソースの修正案2 か 3 の変更とを合わせると
地面のアイテムも 0x8000 引いた値とならず、元のモデルID で認識されました

解析結果は別途あげるかも
ほんと、94様のおかけです

106名も無きチーター:2018/05/20(日) 20:08:11 ID:dYAM8.eM0
>>105様によるZeazyUO.exe書換え情報のおかげで、
モデルIDの取得・判別はうまくいくようになりました。
ありがとうございます。

なお、パケットF6を受信してもZeazyがスルーしているため、
船の移動時に自身ないしは同乗しているオブジェクトの位置情報が
更新されないという不具合もあったりします。
ただこれはZzInfo.getXYFromMemoryをオンにしてやれば
追従してくれるので問題はなさそうです。

107名も無きチーター:2018/05/23(水) 02:33:53 ID:mCrbBH6c0
報告ありがとうございます。動いているようでよかったです。

F6 については 爺もハンドリングしてませんし、uohook 側での対応も難しそうそうなので
>106 の対処法が良いように思います。

(船の座標が変わった後、サーバーからプレイヤーの座標更新パケットが来るわけではなく
パケットのやり取り無しに、クライアント内部でプレイヤーの座標を再計算しているぽい?)

(爺内の座標とクライアント内の座標がずれたときは、何でもいいのでパケット受信すれば、
同期される作りになっています。なので、open paperdoll とか open status とか適当に
送信するのでもいけそうですが、それより >106 の方法が簡単ですね)

話変わって、パケット 78 についても潜在的には 1A と同じ問題を抱えていて
装備品やペットで 0x8000 以上のモデルID の場合 0x8000 を引いた値で認識される気がします。

まあ、今は問題起きてないようなので、その時が来れば修正する感じですかね

108名も無きチーター:2019/09/18(水) 17:12:59 ID:/PTDBW8w0
パケットを、使って直接ログインさせたいのですが、何か参考になる情報は無いでしょうか。

爺の公式が健在な頃に落としたスクリプトは、クライアント上でID PASを入力する方式でした。
色々思案してるのですが、解決できません。

109名も無きチーター:2019/09/19(木) 01:24:00 ID:5jET.t2A0
C->S: 0x80: Account Login Request (Login Request)
S->C: 0xA8: Servers List (Game Server List)
C->S: 0xA0: Play Server (Select Server)
S->C: 0x8C: Play Server Accept (Connect To Game Server)

* ここまでの接続先IPはログインサーバー、次からの接続先IPはゲームサーバー

C->S: 0x91: Game Server Login
S->C: 0xA9: Characters List (Characters / Starting Locations)
C->S: 0x5D: Play Character (Login Character)

* C = Client, S = Server.
* 0x73 の Ping パケットが時々流れるらしい
* 下記リンク先を参考にしただけで、実際に試したわけではないので誤っている可能性があります
* Razor でパケット記録して観察するとよいと思います

ttps://sites.google.com/site/ultimaonlineoldpackets/protocol/login-server
ttps://sites.google.com/site/ultimaonlineoldpackets/protocol/game-server-login

110名も無きチーター:2019/09/19(木) 14:26:28 ID:lgHvX2bM0
>>109
ありがとうございます。

頂いた情報を元に、トライして見ます。

111<垢ぼ〜ん>:<垢ぼ〜ん>
<垢ぼ〜ん>


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板