レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
技術情報交換スレ
-
RTXのみならずROや支援ツール全般に関する技術的な情報を交換するスレです。
コーディングに詰まった作者が他力本願的に知恵を増やす目的で設立されましたが、
それだけでなく広く情報交換に使っていただけることを願っています。
管理人の手持ちの情報は少ないですが、RTX/RoTimerの内部動作に関する
御質問などでしたら、できるだけお答えしたいと思います。
規約云々や解析手法の是非などは別スレ/別BBSへ誘導のこと。
水面下に落ちるまではsage縛りで。
-
>>118
テレポなどでのキャラ出現->消滅エフェクト、オーラエフェクトを消す、露店を消す
とか微妙な機能の実装ができそうだ。
-
オリジナルのIATのアドレス算出は…楽な方法あるんでしょうか。
それっぽいのを探していくしかないもんなんかな…
-
>>120
つ[リダイレクションブリッジを使って検索]
つ[APIAddress使って総当りで検索]
-
>>119
>オーラエフェクトを消す、露店を消す
ぽかーん
とか言いながら
>オーラエフェクトを消す
実装したが数週間後やめた
>露店を消す
看板消しはやった(チャット消しも)
ここで話す内容ではない
>>120
packされたままの状態でできないかな?(ASProtectの解析になってしまう・・・)
-
>>120
IAT群そのものは、(Ragexeにかけられている現状のASProtectでは)
比較的簡単に計算可能です(もちろん、packされた状態です)。
ただ、そのIAT群自体はAPIのアドレスが羅列されたタダの配列の群れですので、
1.どのモジュールの
2.どのAPIのアドレス
であるかがそのままでは分からないです。
1については、色々計算できそうな目処があるのですが、問題は2で、
目的のAPIのアドレスを見つけるには、実際に自分で取得した(させた)
APIのアドレスと比較するしか、ミジンコな私には思いつきません(汗。
このままでは皆さんが考えるとおり、既に他のツールに置き換えられて
いる場合、オリジナルのAPIアドレスと比較しても見つからないわけです。
リダイレクションブリッジは……すません、勉強してきます_no
-
http://yokohama.cool.ne.jp/monooki2001/are.html
ここにあるパケットフィルタ使えばRTXでいろいろ検証できますよ
-
http://kazumi.jdyn.cc:9801/uploader/stored/up1677.zip
-
要不要は置いておきましてボスが使う非攻撃系スキルIDを知ってる範囲で
skillid: 0x160 val: -1 取り巻き呼び戻し(ボスの周辺にテレポートさせる)
skillid: 0x15d val: -1 爆裂波動の効果音が発生し、Atkが3倍程度の状態になる
-
skillid: 0x09e〜skillid: 0x0d1 亀島実装時のモンスター専用スキル
skillid: 0x14b 不明、未確認。
skillid: 0x14c 不明、未確認。
skillid: 0x14d 不明、未確認。
# skillid: 0x14e〜skillid: 0x150 結婚スキル。Unknownskillではない。
skillid: 0x151 不明、未確認。
skillid: 0x152 不明、未確認。エフェクトはホーリークロスのもの。
skillid: 0x153 闇属性グランドクロス
skillid: 0x154 闇属性SS
skillid: 0x155 闇属性JT
skillid: 0x156 行動不能化。ドリアードやバースリーが使用
skillid: 0x157 不明。タートルジェネラルが使用。支援タイプ(011aパケットで確認)。
skillid: 0x158 鎧破壊攻撃
skillid: 0x159 兜破壊攻撃
skillid: 0x15a 盾破壊攻撃
skillid: 0x15b 不死属性攻撃
skillid: 0x15c 鎧を不死属性にする攻撃。LODやドラキュラが使用
skillid: 0x15d ATKが3倍くらいになる支援スキル。赤い爆裂波動のようなエフェクト。
skillid: 0x15e 速度増加のような支援スキル。移動速度が2倍になり、Fleeが上昇。盗蟲、一部ボスが使用。
skillid: 0x15f 不明、未確認
skillid: 0x160 取り巻き呼び戻し(ボスの周辺にテレポートさせる)
skillid: 0x161 クローキングのような支援スキル。クローキングとの違いは、範囲攻撃スキル無効。
skillid: 0x162 不明。天邪仙人が使用。支援タイプ(011aパケットで確認)。
以降未確認
Unknownskillはこんな感じなのですが、不明部分が分かる方いませんか?
-
RTXのようにカメラ回転に同期させた描画をやろうと勉強中の者です
(1)DrawPrimitive()の引数を解析して敵位置の画面座標矩形とかは出せるようになりましたが
敵のID(敵種別のIDじゃなくてキャラでいうアカウントIDのほう)に結びつけられません
RTXではどうやってるんでしょうか
(2)MPADとかは敵がいなくても出せるわけで、RTXは(1)の方法じゃなくても自由にゲーム内
座標とスクリーン座標を(しかもリアルタイムに)変換できてると思うんですが、アフィン変換
の要素らしきものはメモリで見つけたんですが、奥行き補正がどうしてもできません
決定的にパラメータが足りないように思われるんですが、どうやってるんでしょうか
聞いてばっかりですがどうか御教授ください(;´Д`)人
-
RTXの3D計算には新型、旧型の2種類の方法があり、用途に応じ使い分けています。
まず新型から。
ROでは地面に配置されたり除去されたりするオブジェクトが大きく分けて3種類ありまして
・キャラクタオブジェクト (PC、NPC、敵)
・スキルオブジェクト (範囲魔法で敷設されるやつ)
・アイテムオブジェクト (ドロップアイテム)
まず基底となるオブジェクトクラスがあり、ここでゲーム内座標、スクリーン描画座標、通しID
(キャラでいうアカウントID)、種別ID(キャラでいう職業ID)、スプライトナンバーなどが定義されています。
ここからキャラクタ、スキル、アイテムの各オブジェクトクラスが派生しており、例えばキャラクタオブジェクトなら
さらに、移動速度や直前の立ち位置、状態変化、髪型、詠唱バークラスへのポインタ、などなど
をメンバとして持っています。
基底クラスにはコンストラクタ/デストラクタしか無いようですが、キャラオブジェクトには移動や詠唱開始などの
メンバ関数もたくさんあります(呼ぶとアクションがみられる)。
プレイ中は、画面上に表示されているオブジェクトの数だけこれらクラスのインスタンスが生成されて
おり、そのすべてがキャラ/スキル/アイテムの3つのコンテナ(std::list)で管理されています。
RTXはこれらコンテナをダイレクトに読みに行くことで、パケットとは無関係に、任意の瞬間に画面上の
全てのオブジェクトの情報へアクセスすることを可能にしています。
これには、その瞬間におけるオブジェクトの(計算済み)描画座標も含まれており、したがって
このクラスさえ解析できれば、キャラや敵の動きに完璧に同期した描画をするのは容易です。
支援スレではVer6の4T4lYjSM氏がかなり真実に迫られています。氏の呼ばれるところの
CoordInfo なる構造体は、実はROの座標管理クラスにほかならず、例えば現パッチなら、
CoordInfo+12から前述のコンテナが置かれているのです。
(ちなみにCoordInfo+4は親ポインタ(to MapInfo)、CoordInfo+0はメンバ関数のベクタテーブル)
余談ですがPvPではこのコンテナの一部が無効化されます(=PvPで色々動かない理由)。
-
さて、一方で、御指摘の通りRTXはオブジェクトが存在しなくても3D描画を可能としています。
こちらは任意に指定したゲーム内座標を、地道に行列変換して出しています。
オブジェクトクラスの解析に成功するまでのRTXでは、すべての3D描画がこの方法でした(=旧型)。
今では、M2Eなど地面もののみに使われています。
順番としてはアフィン変換→射影変換で、3Dで使うごく基本的なやり方しか用いていません。
アフィン行列はメモリのどこかにあります。探してみてください。
Z値(≒地形情報)はgatをメモリから読むか、自前でdata.grfから取ってください。
やっかいなのは射影変換で、問題は視錐台の適用と、アスペクト補正です。
褒められた方法ではありませんが、私はカメラの倍率制限をメモリエディタでいったん外し、
正常に描画される上限と下限の倍率を繰り返し調べ、平均値を取って測定誤差を切り落とす
ことで視錐台の前後を推定しました。
アスペクト比に関しては、ROがどんなスクリーンサイズでも上下方向のマス数は不変であるという事実を
押さえておくと、画面の横サイズから計算することができます。
このふたつがクリアできれば射影変換行列が決定されます。
適切に変換されると、Z値も正しく生成されますので、ポリゴンを描くと勝手に格好よく
陰面処理までかかります。
がんがってください。
-
>>129-130
詳しい解説ありがとうございます!
新型はちょっと手に余りそうなので、旧型の方から挑戦してみます!
-
rxv用のパケログ変換機を作ろうと思います。
パケログの最初にあるR0063はrtxが作成したタイムスタンプだと思いますが、
詳細はどうなっているのでしょうか。
-
>>132
タイムスタンプと、パケログの正規性チェック(MD5のさらにダイジェスト)の双方を兼ねています。
性質上詳細は公開されていませんが、別になくとも動きますので御安心ください(´・ω・`)
-
>>133
どうもありがとうございます。無しでやってみようと思います。
-
recvフックのことで質問があります
いまさらながら19系の解析やってるんですが
ragexeのrecv書き換え→外されたらIAT書き換え→外されたら次回から(?)エクスポートT書き換え
の最低三段重ねまでは間違いないと思うんですが
逆ったの元に自分でコード起こすとですね、IATまでは再現できるんです
でもOSがMeだとエクスポートTだけが書き換わらない
もっとゆうとDLLがシステム領域で保護かかってて書き換えられない
でもRTXではちゃんと書き換わってるんですよね
どこがまずいんでしょう ヒントでもいいから教えてほしいです
-
>>135
DLLのExport Table書き換えの話ですね。
Windows 9x系ではシステムDLLが2G-3G(共有領域)にあり、書き込み可能属性にするのに
VirtualProtect() を投げても、レジストされてしまいます。
とはいっても相手は 9x ですから迂回策は色々あるわけで。ring-0 入ったりとかね。
RTX では VxD Service Call (VMM_PageModifyPermissions) を呼ぶことで
保護属性を強制的に書き換えています。
インラインアセンブラを使っているので、逆汗では解りづらかったかもしれません。
-
自分のツールにちゅぺるぶれいかーを付けたいのですが
キスはどうやって出してるんでしょうか?
-
エモーション受信OP <R00C0> を捏造して自分に喰わせてます。
OPの諸元と受信OPの喰わせ方は調べてみてください。
よりスマートな方法としてはキャラクタオブジェクトのメンバ関数として直接エモ関数をコールする、という
のがあります(現exeならvPtrの22つ目かな?)。
テーブル上の関数位置が頻繁に変わるので、自動解析必須です。
-
>>議論スレ4-895
背景画像はRTX-FAQのColor Simulatorから拝借してもいいかな…と思いつつ。
「指定SSに重ねる」というのは、人によって異なるようなウィンドウサイズ・
チャット窓の大きさ・各種ウィンドウの位置・状態アイコンやミニMAP(これは固定か)
との兼ね合いを見れるようにという意味だったんだ。
考えてみれば、コンパスは(位置確認のため)ここに重ねなければならないし、
M2Eはマウスドラッグできる四角い枠をここに用意すればいいとも思った。
M2Eスキル毎のチェックボックス用意して、チェックしたスキルの色の枠を
表示させるっていうのが自分のイメージ。そうすれば重なりもチェックできるし。
大きさは、小さすぎなければ適当で。
コンパスサイズはズーム率と連動して大きさ変わるから、適当でよさそう。
透過処理は…GDI+ならそのままできたと思う。
VB6はさっぱりわからん…。Winアプリ自体ニガテだけど。
ttp://www.vbaccelerator.com/home/VB/Type_Libraries/GDIPlus_Type_Library/article.asp
あと細かいところ。
>ALL_REDEMO
「赤エモタイマー」
>M2E設定
スキル名をゲーム内表記に。
>ビデオ録画設定
>有効/無効
「RoVideo再生設定」「再生中タイマー表示」
-
>>139
スキル オオスギ カイハツ マンドクセ('A`)
現状の最新版はこちらから
ttp://jbbs.livedoor.jp/bbs/read.cgi/computer/6346/1093533016/898
最優先で修正・実装して欲しいモノってなぁに?
現状報告
FixedTimer・MinSec・BitFlag・対人M2E部分のスキル定義中
FixedTimerのスキル単位設定に取り掛かる。しかしスキル定義がまだ終わってない罠
モウダメポ lliorz=3
需要がある限り、作らねばと思っている
(`・ω・´)がんばるよ!
しかし・・・Now仕事中(・3・)
-
質問です
FixedTimer・MinSec・M2E・BitFlag・対人M2E
それぞれに反映されるスキルって何でしょう?
いらないスキルを省いていきたいので・・・orz
例:
ノービス:基本スキル>いらない
マジシャン:FW>FixedTimer・M2E・(MinSec)
・・・てな具合に、誰か列挙きぼんぬ (;´Д`)人オナガイシマス
|
|
掲示板管理者へ連絡
無料レンタル掲示板