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

【Helper】プログラマスレ【ACE】

462名無しのWindower使い:2010/04/28(水) 14:40:39 ID:TckoVT7M
2垢2台PCのRCMユーザーです。
RCMのソースにあるw2定義は同じPC内部のプロセスから引っ張ったものですので、別PCのComThread2内部にw2は使えません。
サーバーでもw1、クライアントでもw1になります。
そのため お互いの魔法、アビ、ジョブなどを拾うことができないため現状では
相手が使える魔法をチェックボックスなどで指定させています。
 → ヘイスト、イレース、リフレッシュなどを要求することができるか?という意味で自動はほぼ不可能です。

ふと今思いついたのですが サーバクライアント間で共有ファイルを作成しその内部に
ジョブレベル、アビ、魔法テーブルを記述したテキストやBINデータでお互いの有効なアビ、魔法を持たせあう方法でいけるかもしれないなっと
リキャストは無理だな・・・書き出しがめんどくさいし・・・
メモリのデータをまるごと、そのままファイルに書き込めばいいのか・・・(´・ω・`)
ファイル更新されるまでリキャストはかなりのディレイが発生しそうだけど

463名無しのWindower使い:2010/04/28(水) 19:02:18 ID:DuTXj9oA
>>459 >>460さんへ
IDは>>438の構造体の ID でよろしいかと。
間違っていたら、ごめんなさい。

464名無しのWindower使い:2010/06/16(水) 04:03:09 ID:JuA2fyds
まんまアーガスに利用できてしまうが
>ターゲット系はアーガス的なコードが必要そうですねぇ。IDで敵をタゲるみたいな。
これを実現する方法はどうすりゃいいんだろ。
2アカにタゲらすのに/asを使わせたくないので四苦八苦してる。
TAB版を作る事は出来たが実用はちょっと厳しい、視界にいないとお手上げ。

ターゲット中のオブジェクトアドレスを書き換えるだけじゃタゲりもしなかった。
ターゲットは別のアドレスで管理してるんだろなぁ。

465460:2010/06/16(水) 22:21:09 ID:ar99Tuao
>>464
>>21にヒントはあるんですが、何をメモリに書けばいいのやら、
も一つ分からんでした。

>>453で、適当にFollowさせて、Follow解除してるって書きましたが、
ようやくターゲットの位置やら取得出来るようになったので、こちらで
公開してみようかと。

http://www1.axfc.net/uploader/Sc/so/124484.zip
パスは、このゲームの通称アルファベット小文字で4文字です。
テストは適当なんで、参考程度にして下さい。ここの人なら
なんてことはないと思いますが。

おおよそやりたいことは出来つつあるので、Dobonさんところの
チャットプログラムを改造した、二垢用ツールも出来たら、上げようかなと
思っとります。

NPC関連調べてて、欲しいんだけど見つからなかったのが、敵の
Buffer状態なんですよねぇ。誰か、ご存じないでしょうか。これが
あればログから、パラとかディアとか切れたログを取ってきて、
かけ直しするなんつうことをしなくて済むんですけどねぇ。

466名無しのWindower使い:2010/06/23(水) 04:02:18 ID:fmje4Tsc
>>465
敵の状態ってクライアント側で持ってますかね?
サーバー側で管理してて弱体が入ったり切れたりした時だけその情報が流れてくる
だけじゃないかと勝手に予想してました。
現状敵への弱体管理は私もログ見てしてますが確かに面倒ではありますね。

そういえば空蝉のBufferの値変わりましたかね。
蝉4枚が446、3枚が445ぽい?1枚は443になるのかな?(10進で)
まだ詳しく見てないのですが・・。

467466:2010/06/25(金) 01:38:40 ID:fmje4Tsc
本体のスレッドに出てた。蝉1枚のときは前の番号と一緒なのね。

468名無しのWindower使い:2010/07/05(月) 13:26:10 ID:VNVAGfIM
6月のバージョンアップも終えて
オフセットの解析祭りもXiaceLiteさんのおかげで無事終了

xiaceのオフセットスキャンを自分の改造しまくったXiaceに導入したいが
断念中でしたので助かりました。 !(´▽`)


2垢の自動戦闘用にwsリストメニューを調べてるんです。
全ws名称が乗ってるメモリは見つかったんですが
使えるWSかどうか?ってメニューに乗ってるやつを探していたんですが
wsのIDから数字が並んでるところなかなか みつからず・・・

手打ちでテキストボックスにws名をいれるのもかっこ悪いので
リストボックスにws名称を全種類乗せるしかないのかな
と思ってるという愚痴・・・

469名無しのWindower使い:2010/08/03(火) 13:59:42 ID:DuTXj9oA
おひさしぶりです。
すごく賑わっていると思ったら1か月までした。>.<
早速、xiaceliteをダウンロードさせていただきました。
でも、パラメータ表示するのですが、その情報をマクロに活用する
方法が思いつきません。
先輩方、ご指導の程お願い申し上げます。m__m

470名無しのWindower使い:2010/08/04(水) 13:53:00 ID:.6Mererg
>>469
その気になれば、あの程度のものでも、それなりのものなら作れますよ。
ログ関連は取りこぼし前提ですが、今、二垢用のツールでやらせてる事は

・自動ケアル
・自動抜刀/自動ヒーリング
・ログ見て自動ディスペル
・別垢からの指示で状態回復
など。
アイテム管理系のツールも自作したし。

釣り関連のステータスも取れてますから、あんなツールやこんなツールも。
次の質問として、入力を送る方法が分かりません(>_<)だと思われますが、
テキスト送信のサンプルは、WindowerHelperを使ったものと、FFFuncを
使ったものを入れております。前者はもちろんWindower遣いの人向け、
後者は、改ざんやら公式窓遣いの人向け。FFFuncの方はキー送信に
難があるかも知れませんが、Sendkeyでも使えば(裏に回せませんが)
キーを送る事も可能です。

と、マクロと言うてはりますんで、FFの標準マクロの事をおっしゃってたら、
そりゃ話が変わってくるけども。その辺は、SpellcastやAutoexecの話じゃ
ないかと思います。どちらも使ってませんけどもね。

471名無しのWindower使い:2010/08/05(木) 07:07:53 ID:DuTXj9oA
>>470さんへ
早速のお返事ありがとうございます。
すばらしいですね。^_^
リドミーとかに掲載されている例題がないと、初見のプログラムの応用アイデアが浮かばなくて
情けない限りです。
カキコを参考にいろいろ触ってみます。
ありがとうございました。m__m

472名無しのWindower使い:2010/09/11(土) 11:11:46 ID:KPJcvrDg
今回のVUでログ関連のデータ構造が大きく変わったりしてるのかな・・・
今までのメモリ検索方法だとログのポインタのテーブルらしき場所が特定出来なかった
XiACEの自動スキャンは部分的に組み込めたけどまだ不完全な感じ
頑張らねば

473472:2010/09/14(火) 18:10:14 ID:KPJcvrDg
結局調査の結果、ログ関連のデータ構造は変わってませんでした
あとXiACEの自動スキャンのターゲット情報はどうやらシグネイチャパターンが
まだ不完全ぽい
その他はスキャンが上手く行ってる模様

474名無しのWindower使い:2010/11/04(木) 11:39:00 ID:J0Y5ATd.
rcmをWin7で、動かしている方います?
単純にチェックアウトして、ビルドしたら、ビルドはできるんだけど、
実行すると型宣言あたりから引っかかってエラーはいて落ちる。

win7で動作させてる方いたら、修正のアドバイスをいただけないかな。

475474:2010/11/05(金) 17:24:59 ID:J0Y5ATd.
とりあえず・・・
当面、Dualsendで運用開始。
ソース直すの時間かかりそうなので。

476名無しのWindower使い:2010/11/08(月) 21:18:43 ID:2pXW/CVg
出回ってるTargetinfoのオフセを利用して、
ターゲットのHP残量を見てWSしたりするアプリを作ったんだが、
サブタゲを出すと「サブタゲのターゲット先」のHPを見てしまうため、誤作動する事がある。

この問題をを解決したいんだけど、「サブタゲを出しているか否か」もしくは
「現在抜刀中の敵」を特定できるアドレスをご存知の方はいらっしゃいませんか?

477名無しのWindower使い:2010/11/08(月) 21:55:49 ID:ytJF.3Ao
>>476
Targetinfoが指してるアドレス+8byte目にターゲット先が入ってると思いますが、
サブタゲを出してるときはサブタゲがそこに入ります。そのときのメインタゲのアドレスは
Targetfinfo + 28byte目に待避されます。そこが0ならサブタゲを出していないと判断できると思います

478名無しのWindower使い:2010/11/08(月) 23:42:18 ID:ytJF.3Ao
で、私も質問なのですが
アビセアPTの編成補助用ツールを作りたいと思っています。
そのためにメンバー詳細ででてくる一覧表の情報(名前/ジョブ/Lv)を取得したいです。
(ptinfoの構造体にはジョブ/レベルは入ってないですよね?)

うさみみでPTメンバーの名前等色々サーチしても見つけられませんでした。
どこにどんな構造で格納されているかご存じの方いましたら教えて頂けませんか?

479名無しのWindower使い:2010/11/09(火) 12:55:00 ID:vsR1QRGE
>>477
ありがとう。
さっくり解決できました。

480名無しのWindower使い:2010/11/12(金) 19:23:15 ID:MuYepBlM
/sit エモで座る→起き上がりで移動に硬直ができるけど、
それを起きたままとかで移動硬直をなくしたい。どうすればいいですか?
ウマーは使えますが自力ではわかりません。windowerでオススメアドオンあれば教えて下さい

481名無しのWindower使い:2010/11/15(月) 14:09:28 ID:W.nTC/js
>>478
メンバー詳細で出てくる情報は、サーチした時の情報と同じアドレスに入るらしく、
サーチ画面やメンバー詳細画面を表示している時しか取得できなかったです。
分かった範囲では、
private byte iconID;//(0x00) 7f:noIcon 43:HydeIcon
private byte _unk_01;//(0x01) 不明
private short hyde; //(0x02) 30 00 = hyde, 31 00 = visible
private fixed byte Name[16];//(0x04)名前
private short AriaID; //(0x14)エリアID
private short Nation; //(0x16)所属国 0:サンド、1:バス、2:ウィン
private short MainJob; //(0x18)メインジョブ
private short SubJob; //(0x1a)サポジョブ
private short MainJobLV; //(0x1c)メインジョブLV
private short SubJobLV; //(0x1e)サポジョブLV
private short Kind; //(0x20)種族 1:HumM 2:HumF 3:ElvM 4:ElvF 5:TarM 6:TarF 7:Mit 8:Gar
private fixed byte[7] _unk_34; //(0x22)不明
private byte Rank; //(0x29)ミッションランク
private fixed byte[22] _unk_42; //(0x2a)不明
こんな感じの構造になってました。

482478:2010/11/30(火) 19:55:26 ID:ytJF.3Ao
>>481
ありがとうございます。教えて頂いた構造でメモリに格納されているのを確認できました。
ただ、リストを取得>全員分が配列に格納 では無いようですね。
一人分のデータを表示する度に同一のメモリが次々と更新されている感じでした。
とりあえずは該当メモリを監視して更新があったら一人分を出力のループでトライしてみます。
監視周期どれくらいにしようか悩ましいところですね。

483478:2010/11/30(火) 21:41:29 ID:ytJF.3Ao
嘘ついてました。
オフセット調べようとしたところ配列になってるところを見つけました。これで楽にいけそうです
ただサーチ毎にアドレスが変わるのでオフセットからワンクッション以上踏まないとだめですね

484名無しのWindower使い:2010/12/03(金) 10:26:12 ID:VNVAGfIM
ちょっと話を・・・

public bool move()
{
temppos[]にx,y,z座標代入
Thread.Sleep(200) 200msec(ここは適当な時間とめる)
 temppos[]と現在のx,y,zを比較して
一つでも値が違えば return true
 全部値が同じならば return Fslse
}

魔法を詠唱するにあたって、自キャラが動いてないか?をチェックしてから
魔法を唱える処理に入ったほうがいいか?
while(!move())
{
damege[x]にPTメンバーのダメを格納処理

if ((damege[1] >=500))
{
  w1.sendtext("/ma ケアルV <p1>");
} // PTのHPチェック〜魔法詠唱

}

魔法を唱える必要になったところで自キャラが動いてないかを都度調べるほうが良いか?
while(true)
{
damege[x]にPTメンバーのダメを格納処理

if ((damege[1] >=500) && !move())
{
  w1.sendtext("/ma ケアルV <p1>");
} // PTのHPチェック〜魔法詠唱

}

なんか 気分でソース作ってるので move()があちっこちに使われだして
重くなってるかなぁって思い始めて、綺麗に作るには?どうしたらいいだろうって、
アドバイスがほしくなってしまったさびしい 2垢使い・・・

485名無しのWindower使い:2010/12/03(金) 11:53:59 ID:XraRs2tQ
move()を別スレッドにして、結果を主スレッドからリードオンリーの
変数にセットして、主スレッドから参照すればいいと思うのだけど。
処理が多くて重いというより、move()内のSleepが累積して主スレッド
のレスポンスが悪いって話みたいだから。

486名無しのWindower使い:2010/12/03(金) 12:08:01 ID:XraRs2tQ
ちょっと私も質問。
一ヶ月ほど前からWindowerを導入し、RCMの存在を知って
SVNからソースをダウンロードしたものの2Windower間のコマンド
通信に問題はないけど、PlayerStatusあたりの参照が様子。
このスレを知って、ざっと読んでソースが更新されていないことを
理解して、自力でReadProcessMemory()を呼び出して、各構造体が
マップされてるアドレスの特定を行って、なんとなく全体がおぼろげに
見えてきた状態です。

で知りたいのは、HPmaxMPmaxの取得なのですけど、装備変更画面
(CTRL+E)を呼び出して、HP+、MP+装備の変更を行うと、メモリ上の
HPmax、MPmaxの値も変更されるのですが、コマンドラインから/equip
などを使って、HP+MP+装備を変更してもメモリ上の値に反映されないので
困っています。
参照している構造体は以下のもので、オフセットは0x3F41D8を見ています

[StructLayout(LayoutKind.Sequential)]
internal struct Max
{
internal int HP ; // 0:最大HP
internal int MP ; // 4:最大MP
}
何かヒントでも結構ですので、よろしくご教示の方、お願いします

487名無しのWindower使い:2010/12/04(土) 11:33:40 ID:5x25E0aM
>>484
それ重くなってるわけじゃなく
move呼ぶたびに200ms寝てるだけじゃね?
俺も2アカBOT使ってるけど>485さんのように状態チェックは各変数に結果入れて、それ見てる。

488名無しのWindower使い:2010/12/04(土) 11:34:50 ID:5x25E0aM
追記、状態監視は専用のスレッドにしてる

489名無しのWindower使い:2010/12/05(日) 21:28:11 ID:Zyyr3rOw
484です
沢山の返事ありがとうございました。
移動を別スレッドで監視する!
この方法でより確実に移動が監視できるようになりました!

状態監視も別スレッドにするって方法もあるんですねぇ
勉強になりました。

490名無しのWindower使い:2010/12/09(木) 10:54:53 ID:VNVAGfIM
>>486
これはRCMの問題でなくてFFXIの仕様じゃないでしょうか?
実際自分もMP最大値が変わる装備をコマンドラインからの着替えを実行するとメモリ上のMP最大値が変化しません。
最大HP/MPのメモリへのデータ作成書込みタイミングが
装備メニューを開いているときしか実行されていないためと思われます。

常に表示しているHPMPゲージの%データしか変更してないんじゃないでしょうか?
HP現在値が0以上ならゲームプレイ上問題ないわけですし、最大値なんてすぐ反映する必要ないでしょう?
的な仕様になっている・・・??
どうしてもというなら最大値の値を現在のHPと%状態から計算し続けるしかないと思います。

491名無しのWindower使い:2010/12/10(金) 00:07:11 ID:pGcg.BFo
XIACEのオフセ自動検索版うごかなくなってたな。。

492名無しのWindower使い:2010/12/10(金) 00:09:41 ID:6YyCFPtY
OFFSET.BUFFS_INFOのとこコメントすればとりあえず動くな

493486:2010/12/10(金) 17:48:58 ID:XraRs2tQ
>>490
理解しました。確かに実用上必須というわけではないですね。
ご教示ありがとうございました。

494名無しのWindower使い:2010/12/10(金) 20:39:41 ID:NnObAZg.
自動検索版更新してくれないかな・・・

495名無しのWindower使い:2010/12/11(土) 08:23:08 ID:MnCOdQQ6
おひさしぶりです。
BUFFS_INFOのOFFSETの件でみなさんお困りのようですね。
もし、参考になればと思いカキコします。
rcmでは、BUFFS_INFO = 0x8ceda で、正常にうごいています。
すべての、状態をチェックしたわけではありませんが。
それでは、また。
(XIACELITEを利用した、キャラクタ制御を具体的におしえて〜 ;_;)

496名無しのWindower使い:2010/12/13(月) 09:33:47 ID:MnCOdQQ6
>>495です。
BUFFS_INFOのOFFSETの件ですが、BUFFS_INFO = 0x8cedaでは不完全です。
カキコして時は正常に動作していましたが、FF11を再起動したのちは
rcmで動作していません。何かの要因でOFFSET値が変わったみたいです。
引き続き調べたいと思います。
それでは、失礼します。

497名無しのWindower使い:2010/12/13(月) 10:23:57 ID:v0gh1jD.
BUFFS_INFO = &H80AD4ではダメですかい?

498名無しのWindower使い:2010/12/13(月) 20:01:33 ID:orT/zuAw
&Hってなんだ?っておもったがVBAだと16進ってそう書くのか・・・

499名無しのWindower使い:2010/12/14(火) 09:07:55 ID:VNVAGfIM
Buffsのオフセットはダイレクトアクセス方式にしてますわ、オフセットの値から間接参照はあきらめてます。

BUFFS_INFO = 0x3f5368

MemoryProvider.ReadProcessMemory(pol.Handle, (IntPtr)((int)pol.BaseAddress + OFFSET.BUFFS_INFO), b, 64, null);

こっちで直読みしてます。

500名無しのWindower使い:2010/12/16(木) 18:56:11 ID:v0gh1jD.
>>495
「作るスレ」見てるかどうか、知らんけど。

ttp://ux.getuploader.com/XiAceLite/
パスは全部ff11。ソース丸ごと。全部vb.net。

クラサバ型のチャットプログラムを元に作ってしまって
残念度の高いソースだけども。添付のreadmeやら、
元のチャットプログラムの解説を元に見てみて。

これぐらいの事は出来るよと言うサンプル。

501名無しのWindower使い:2010/12/18(土) 22:48:12 ID:MnCOdQQ6
>>497さま、ありがとうございます。
おかげさまで、rcmのステータスは正常に取得できるようになりました。
>>500さま、感謝です。
さっそく、DLしてきます。
やっぱり、ここの板が私にとっては一番です。^_^
ありがとうございます。

502名無しのWindower使い:2011/01/01(土) 15:16:08 ID:290.em5E
>>342
private static extern void CTHSetFont(int helper, string name, byte[] font, short height);
こう定義して、
byte[] font = Encoding.Default.GetBytes("Times New Roman");
CTHSetFont(mTextHelper, name, font, 24);
こうすればフォント変更できます。しかし
日本語フォントは指定できなさそう・・・

503名無しのWindower使い:2011/01/14(金) 09:35:36 ID:VNVAGfIM
>>502さま
おかげさまでフォント変更とサイズ変更が出来るようになりました。
ありがとうございました。

レスポンスが遅くなったのはprivateとpublicの罠にかかっていました・・・orz

504名無しのWindower使い:2011/01/19(水) 14:11:47 ID:zLr8IbU.
XIACEでパーティのHPの値を取って自動で回復するプログラムを作ろうと思ったのですが、
パーティ情報の取り方がわかりません。
XiAceLiteのほうから値を取ってXIACEに実装するというのは可能でしょうか?
可能であるならば、やり方をご教授願いたいです。

505名無しのWindower使い:2011/01/20(木) 08:06:25 ID:hgRtwr8w
>>504
>> XiAceLiteのほうから値を取ってXIACEに実装するというのは可能でしょうか?
可能。

>> 可能であるならば、やり方をご教授願いたいです。
XiAceLiteはご丁寧にソースコードがついているので、パーティ情報を読み出しているコード部分を
XIACEにコピペすればいい。
VB.NET→C#へのコード変換はあるが、C#が分かってるならその部分を特定するのは簡単だろう。

506名無しのWindower使い:2011/01/20(木) 08:52:08 ID:zLr8IbU.
>>ありがとうございます。早速やってみます。

507名無しのWindower使い:2011/01/20(木) 11:03:11 ID:yGaHWWFU
>>506
なんかすごく不安になるけどどうにかがんばれ

508名無しのWindower使い:2011/02/15(火) 16:35:33 ID:VNVAGfIM
オフセ +0x80 でいいぽいですかね
自分のXIACEはそれで一通り認識できたようです。

509名無しのWindower使い:2011/05/10(火) 23:39:24 ID:rmhFdIFA
rcmで2垢操作してたけど、今のところこれは動かなくなっているのかな?
//rcmがコマンド読み取れないっポイけど何か対策出来るだろうか?

510名無しのWindower使い:2011/05/11(水) 01:02:43 ID:dFaNhZBQ
>>509
Windowerスレで話題になってるけど、//rcm 行を変更すればいい。
 旧)//rcm /ma ケアル <p1>
 新)/console rcm /ma ケアル <p1>

って感じになる。

511名無しのWindower使い:2011/05/11(水) 01:21:41 ID:tl7jz0Zc
>>510
ありがとう(^-^)/

512名無しのWindower使い:2011/05/11(水) 01:58:46 ID:rmhFdIFA
なるほど、これも同じだったのですね
//execと//rcmを/console に置き換える作業が始まるおw

513名無しのWindower使い:2011/05/14(土) 18:35:32 ID:bVmLoKDg
//rcmnopで コマンドリセットしてると思ったので
/console rcmnop にしてみたんだが
なんか サーバ側からのコマンドが最後のコマンド繰り返してるんだ・・・

/console rcm nop ?になるのかな
いまさらながら メイン部分を理解できていなかった orz

514名無しのWindower使い:2011/05/14(土) 19:05:37 ID:37Vf2M6w
rcmnopは、RCMのWindowerコンソール監視スレッドが、
rcmキーワードではじまる字句をチェックし、これを読み取ったときに
当該スレッドがWindowerコンソールに対して書き込むようになっている。

上記処理は、Windowerコンソール監視スレッドが1度入力されたコマンドを
永久に読み続けることがないように考えて実装されていると理解している。
# 本当は、これでも完全ではなくHelperがリングバッファを持って、入力文字を
# プールする仕組みがあればいいことなのだけどね。

だからrcmユーザ側でrcmnopを記述する必要は全くないと思っていたのだけど
違うのかな?
ユーザ側で考慮すべきことは、rcmに読み取って欲しい複数のコマンド列に
適度のwaitを入れて調整することだと思っていたのだが、詳しい人よろしくです。
自分は、rcmを参考にして、いろいろと作り替えたもを使っているので
rcmを使い込んでいないのです。

515名無しのWindower使い:2011/05/14(土) 22:23:38 ID:bVmLoKDg
513です。
戻したら正常に動いた・・・ まだまだ勉強しないと・・・
//rcmnop 計り知れない強さです。

516名無しのWindower使い:2011/05/29(日) 19:02:23 ID:1cngLzBk
Windows7に変えたらRCMがHRESULTからのエラーを吐いて落ちるのでDualsendを使おうと思ったんですがローカルに送るコマンドの書式がわかりません
pokotanという名前のキャラにtestのエコーを送りたいときのコマンドはこれでいいんでしょうか
/console send 192.168.0.3 pokotan /echo test

517名無しのWindower使い:2011/05/30(月) 08:04:14 ID:ytb/mevA
>>516
DualSend.iniの network_enabled が1なら
/console send ローカルPCのIP キャラ名 コマンド
network_enabled が0なら
/console send キャラ名 コマンド

network_enabledはLAN上の別のPCにコマンドを送る為に有効にするオプション
1=有効
0=無効
つまり1PCで多重起動する時にはこれを0にして
/console send キャラ名 コマンド
でいい

518名無しのWindower使い:2011/07/02(土) 22:57:40 ID:AME.V/Wg
昔使ってたRCM。
主な機能はメイン垢のサブターゲットを使ってサブ垢にアクションさせること。
このままだと動かないです。中見てわかる人むけ。
ttp://ux.getuploader.com/WindowerUploader/download/25/RCM.zip

泥でやってる、IDで敵をタゲる機能を入れたかったなあ。

519名無しのWindower使い:2011/07/02(土) 23:02:51 ID:AME.V/Wg
↑パスはおすすめ
ゴミもたくさんはいってますが気にしないでください。
おすすめは引退しているので、質問には答えられません・・・。それでもいい方どうぞ。

520名無しのWindower使い:2011/08/17(水) 02:26:33 ID:jBDp0H2.
すいません、「おすすめ」がなにかわからないのでおしえてもらえないでしょうか?

521名無しのWindower使い:2012/01/02(月) 13:23:02 ID:UW2ynK7I
そのまま

522名無しのWindower使い:2012/01/12(木) 12:12:47 ID:lS.V1w96
rcm導入した新参者です!

ファントムロールがきれたと同時に、その切れたロールが自動的に発動するには
にはどのように改造すれば良いでしょうか?

皆様、力を貸して下さい!

523名無しのWindower使い:2012/01/13(金) 15:30:41 ID:VNVAGfIM
1、XIACE側のenums.cs のebuffに必要なbuff番号を登録する
  310〜がロールのbuff番号になるはず、これはWindowerのプラグインフォルダにある
  status.xmlファイルから調べて追加して
2、定期的に自分のBuffを調べる処理にisbuffでロールがなくなったか調べる
 if (!w1.player.isbuff(ebuff.xxx_roll)) ←enms.csに登録した名前ね
{
w1.sendtext("/ja xxxロール <me>");
w1.sendtext("//rcmnop");
}

以上の内容では、buff情報が更新されるまで同じコマンドをはき続けるため適度なWait処理がいる。
また、ファントムロールのリキャストチェックをしていないため、ほかのロールを実行したばかりでもコマンドをはき続ける。

おじさんが教えられるのはこれくらいだ、後はがんばれ!

524522:2012/01/13(金) 21:57:37 ID:aLMa/6no
>>523

最高です!
ありがとうございます!

525名無しのWindower使い:2012/04/04(水) 00:01:00 ID:aLMa/6no
RCM開始した途端にアクセス拒否なるのですが、どの部分のソースいじればよろしいのでしょうか?
日本のFFだと大丈夫なんですが、NAのFFだとうまくいきません。

凄い人教えてください!

526名無しのWindower使い:2012/04/04(水) 01:46:33 ID:CemKIR1g
アクセス拒否というのがわからんですが
NAだとだめってのは、Windower側の設定が
JPクライアントで設定されていないとだめなのかな?
RCMオリジナルを作られたときにいた人ならわかるのかもしれませんが
残念ながら自分も導入している程度の立場で、根本の部分はブラックボックス状態
orz

527526:2012/04/05(木) 11:58:07 ID:lS.V1w96
〉〉525
詳細が鮮明じゃなくてすみません。
もう少し詳しく後で報告させていただきます。

528名無しのWindower使い:2012/04/17(火) 10:12:11 ID:bO4wfPvw
素の状態のRCMをビルドしてrcm.exeを起動してスタートを押すと以下のエラーが発生するのですが、対処方法を教えてください。
WindowerHelper.dllはRCM/bin/Debug配下に配置しています。

************** 例外テキスト **************
System.BadImageFormatException: 間違ったフォーマットのプログラムを読み込もうとしました。 (HRESULT からの例外: 0x8007000B)
場所 FFXI.WindowerHelper.CreateConsoleHelper(String name)
場所 FFXI.Windower..ctor(Int32 pid)
場所 RCM.RCM.RunP2()
場所 RCM.RCM.button1_Click(Object sender, EventArgs e)
場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
場所 System.Windows.Forms.Button.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

529名無しのWindower使い:2012/04/17(火) 10:12:11 ID:bO4wfPvw
素の状態のRCMをビルドしてrcm.exeを起動してスタートを押すと以下のエラーが発生するのですが、対処方法を教えてください。
WindowerHelper.dllはRCM/bin/Debug配下に配置しています。

************** 例外テキスト **************
System.BadImageFormatException: 間違ったフォーマットのプログラムを読み込もうとしました。 (HRESULT からの例外: 0x8007000B)
場所 FFXI.WindowerHelper.CreateConsoleHelper(String name)
場所 FFXI.Windower..ctor(Int32 pid)
場所 RCM.RCM.RunP2()
場所 RCM.RCM.button1_Click(Object sender, EventArgs e)
場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
場所 System.Windows.Forms.Button.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

530名無しのWindower使い:2012/04/17(火) 10:15:24 ID:bO4wfPvw
すいません。2重投稿になってしまいました・・

531名無しのWindower使い:2012/04/17(火) 16:49:58 ID:DP02msVA
OSが64bitでプラットフォームタイプがAnyCPUになってない?
WindowerHelper.dllが32bitだからexeも32bitでコンパイルしないと上手い事動かないかと思われます
x86でコンパイルしてみてはいかがでしょうか

532名無しのWindower使い:2012/04/21(土) 10:20:29 ID:aLMa/6no
すみません。アディストのステータスIDわかる方いらっしゃいますでしょうか?

533名無しのWindower使い:2012/05/09(水) 17:05:10 ID:VNVAGfIM
魔法の意味はADD−STRだとおもうんだが?
アディストってステータスはないと思うので
Str Boost ってステータスがでてないかね

534名無しのWindower使い:2012/05/15(火) 18:47:28 ID:kBZ1h.5M
板違いの質問かもしれませんが、ここならいい答えが頂けるかと質問させてもらっています。

現在、スクウェアエニックスIDをひとつ持っています(トークン取得済み、モグサッチェル使用中)
そちらにサブキャラ(POLIDとプレイオンラインPassのみ取得済み)
のIDを移行した場合は
同時起動は可能なのでしょうか。1〜2年振りに復活しようとしたら本当に
浦島状態で・・・よろしくお願いします。

535名無しのWindower使い:2012/05/15(火) 19:22:22 ID:kBZ1h.5M
534です。自己解決致しました、ありがとうございました。

536名無しのWindower使い:2012/05/16(水) 01:47:21 ID:UHag00So
>>535
解決したらちゃんと結果をかけよボケ!

537名無しのWindower使い:2012/05/17(木) 20:28:03 ID:F6l2B9Z2
>>536
解決したって結果を書いてるじゃないかボケ!
解決方法聞きたいならお願いしますだろ

ボケ言われて答えると思うか?

538名無しのWindower使い:2012/05/18(金) 04:03:49 ID:UHag00So
>>537
ごめんゆとりだったか。

539名無しのWindower使い:2012/05/23(水) 16:57:14 ID:VNVAGfIM
プログラマー素人でちょっと疑問に思ったんですが
プロジェクトのアセンブリバージョンについて教えてほしいです。

0.0.0.0 って四桁分ドットで区切られてるけど
1.9.15.5とか途中の数字が2桁とかもありですか?

メジャー、マイナー、ビルド、レビジョンってあるんですが
XIACE.DLLでたとえて
メジャーって  クライアントのバージョンアップ対応?
マイナーって  機能追加?
ビルドって   不具合修正?
レビジョンって ???
な 感じでいいのかな?

クライアントのバージョンアップ対応はオフセット修正程度なのでマイナーバージョンアップで
メジャーバージョンアップはクラス追加してメニュー、コマンドヘルプを読めるようにしたとかのほうがいいですかね

540名無しのWindower使い:2012/05/24(木) 00:25:25 ID:2juXmA/A
>>539
2桁でも3桁でもあり。
ポリシーに関しては、開発者(若しくはアセンブリを提供する会社)が自由に決めてよいのだけど、
MSDNにガイドラインがあるので、それを参考にしてもいいと思う。

541名無しのWindower使い:2012/05/24(木) 12:41:21 ID:VNVAGfIM
>>540
ありがとうございます
ガイドライン見てきました。
メジャー、マイナーを決めて、ビルドが日付、レビジョンでその時の不具合修正って感じで説明がありましたね。

XIACE,DLLもあれこれ追加したら、メジャーバージョンをあげる
クライアントバージョンアップはマイナーバージョン
クライアントの2次修正などが発生したりしたらビルドバージョン
自分の打ち込みミスとか修正をレビジョン変更って感じで良さそうでした

今後の高解像度クライアント向けUIがどう変わるかで
XIACEも大きく変わりそうで、メンテできるか心配です。

542名無しのWindower使い:2012/05/26(土) 20:11:36 ID:xjDe62Jo
>>538
ゆとり?って事はテメーおやじだなw
いつまでもゲームやってんじゃねーよ
このスレ来てる段階で、ツーラーでモラルも守れねおやじが説教すんなや

543名無しのWindower使い:2012/05/27(日) 00:33:50 ID:UHag00So
>>542
ゆとりおつ(笑)

544名無しのWindower使い:2012/05/27(日) 04:26:43 ID:kpBtHh4U
ゆとり教育が実施されてた期間ってかなり短いだろ
下手するとそいつらより下の世代からゆとり呼ばわりされてる可能性もあるな

545名無しのWindower使い:2012/06/24(日) 09:44:49 ID:uloKb91I
いつも、たのしく読まさせていただいております。

rcmについて教えてください。
獣使いでプレイする時に、ペットの
アクション状態(非戦闘中、戦闘中),HPP,TPなど
ペットに関するデータを取得したいのですが、どのようにすればよいのかわかりません
よろしく、お願いします。

今の状況を説明いたしますと
PC,TARGET,PCMAPからのそれぞれの情報はとれています。
ペットに関しては、HPPはわかるのですが、それ以外を見つけることができないでいます。

546名無しのWindower使い:2012/06/24(日) 11:12:49 ID:uloKb91I
545です。
勘違いがありましたので、訂正します。
TARTGETのTP情報は取得できていませんでした。
それから、ペットのTPはログから拾うしかないのかもしれませんね。
ヒットする度に 8.3% ? を加算させていく方法しかないのかもしれませんね。
どうか、お知恵をおかしください。

547E:2012/06/29(金) 22:06:39 ID:GxfSopio
Aceとかなにも使っていないけど複数窓利用している方に便利かもしれないので
こっちにも張っておきます。

ttp://yakiyaki.mad.buttobi.net/upload/src/file1.zip

548名無しのWindower使い:2012/09/18(火) 09:02:13 ID:PyTCs4.o
>>546
3か月放置とはwww

こっちの方がまだ人いるからこっちおいで
(過疎ってはいるが)

便利なツール・ソフトを作るスレ Ver.16
ttp://yy10.kakiko.com/test/read.cgi/ff11/1324457713/

549名無しのWindower使い:2012/11/09(金) 19:59:52 ID:GRWVwwH2
XIACEというよりはC#そのもの?の質問になってしまうかもしれないんだけど
XIACEのInventoryItem GetInventoryItem(short index)というのは具体的にどう使えばいいんだろうか・・・?
GetInventoryCount()とかは

Inventory iv0 = new Inventory(procs[0].Id);
byte p0GIC = iv0.GetInventoryCount();
string p0GICSt = p0GIC.ToString();

Console.Writeline(p0GICSt);

とかで表示させられたんだけど・・・。
入門者なりにInventory.csとにらめっこしてみたりしたんだけど
short indexというのも何の値なのかよく分からないorz
誰か助けてくれorz

550名無しのWindower使い:2012/11/09(金) 21:33:53 ID:VZG0AJ/.
>>549
アイテム情報が並んでるメモリエリアを、うさみみなりで覗いたことがあるか?

ttp://www20.atwiki.jp/ff11windower2/pages/62.html
ここは見たか?

InventoryItem GetInventoryItem(short index)
と書いてあるよな?

戻り値って分かるか?引数って分かるか?

GetInventoryItem(short index)ってメソッドは、
引数はShort型で定義時の名前はIndexで、InventoryItem型の戻り値と持つって意味だ。
それぐらいは分かるよな?

じゃ、InventoryItem ってなんやねんと疑問は持ったか?
それはWikiページの「定義済み構造体」に書いてあるわな。
構造体で値を返してくれるんだよ。C#云々と言うより開発言語の話だわな。

で、Indexなんだが、鞄なり金庫なり最大値は取得できるやろ?別のメソッドで。
0〜その最大値-1までForループでぶん回せ。で、そいつをIndexにぶち込んで、
コンソールにでも吐き出せ。VB遣いなんで、さらっとVB式に書くと(定義は省略。
何となく読み取れ。)

For i = 0 to MaxCount -1
 itemID=iv.GetInventoryItem(i).Id
 itemCount=iv.GetInventoryItem(i).count
 debug.print(itemID.ToString)
 debug.print(itemCount.ToString)
next i

551549:2012/11/09(金) 23:50:24 ID:GRWVwwH2
>>550
THX!
一覧に出来たよ!

552名無しのWindower使い:2012/11/12(月) 19:04:01 ID:GRWVwwH2
色々試しつつなんとかコンボボックスからプロセスを選択して
コマンドを各窓に送ったり各プロセスの情報を表示したり出来るようにはなった。
今度は色々自動化してみたいと思ったんだけど、
FFXIの操作自体はWindowerクラスから出来るんだけど、
メニューとか鞄を開いた時に今カーソルがどこにあるかはどう判定すればいいんだろうか?
XIACEの各クラスを見てみたんだけどそれらしい物があるのか良く分からないorz

553名無しのWindower使い:2012/11/14(水) 16:04:04 ID:GRWVwwH2
という物はなくて、メモリから値を取って自分で色々作って使うんだと何となく分かったので
取り合えずメニューのカーソルの位置がどこにあるのか見よう見まねでやってみたら
ベースアドレス+0B25295Fから最大7文字14バイト?に
今メニューのカーソルが指してる文字列が入ってる所まで何となく分かった。
新たにenum.csにMEUN_POS = 0B25295F,を追加してみて
新たにmenu.csにmenuクラスを作ってそこから値を返せるように作ってみようと思って書き始めた。
取り合えずプロセス関係のお約束らしきものを書いて
GetMenuPosとしてInventoryにあるクラスをそれっぽく書き換えてみた。

unsafe public int GetMenuPos()
{
  string name;
  int off = (int)OFFSET.MENU_POS + 14;
  MemoryProvider.ReadProcessMemory(pol.Handle, (IntPtr)((int)pol.BaseAddress + off), &, , null);
  
  *nameで色々*
  
  return (数字);
}

そもそも全体的に良く分かってないけど
特にReadProcessMemory(IntPtr handle, IntPtr address, void* buffer, uint nBufferSize, int* len); が分からない。
メモリーから文字列を取って *nameで色々* で文字列が何かで数字を割り当てて
その数字をメニューのカーソル位置として返すものにしたかったんだけど、ちょっともう良く分からなくなってきた・・・orz
た、たすけてええええええ

554名無しのWindower使い:2012/11/14(水) 22:49:29 ID:xzNxqp/Y
>>553
>>548にある、作るスレ16には行ってみたかい?

メニューアイテムなんつうのは、とうの昔にXiAceLiteにだけど
実装されてるのよね。

作者のおっちゃんがVBに変換したのでC#遣いの人は敬遠して
っかも知れないけども、VB→C#のコンバータも世の中には
あるので、ざっくりコンバートして必要な分だけ移植でも
すればいいんじゃないかなと思う。

555名無しのWindower使い:2012/11/22(木) 09:59:32 ID:rFB4rM/k
>>553
> 特にReadProcessMemory(IntPtr handle, IntPtr address, void* buffer, uint nBufferSize, int* len); が分からない。

address から len バイトを読み取って、あらかじめお前が用意した buffer にコピーするOSの機能(カーネル関数)
です

メモリつったって、馬鹿でかい上、OSやらお前の立ち上げたエロ動画ソフトやらいろいろあるから、それを handle
という整数ナンバーで管理している

ただ、RCM(XIACE)なら、PolProcess というクラスがそれを知っているから(そろと552で「コンボボックスから
プロセスを取り出すとこまで理解してる、とのことだから、そこから説明)

   p = (System.Diagnostics.Process)WindowerPids[comboBox1.SelectedItem];
   PolProcess pol1 = new PolProcess(p);

そすりゃ、 pol1.Handle がお前の選択したFF11プロセスのハンドル

556名無しのWindower使い:2012/11/22(木) 10:01:22 ID:rFB4rM/k
微妙に間違った

× address から len バイトを読み取って
    ↓訂正
○ address から nBufferSize バイトを読み取って

len は戻り値で「実際に読めたバイト数」
ほとんど使う機会はないから、null を渡しておけば返ってこない

557名無しのWindower使い:2012/11/22(木) 10:04:53 ID:rFB4rM/k
でもって、実際のとこ、ほとんどの場合、nBufferSize は2とか4に決まってるから、あらかじめ
PolProcessを拡張して(メンバ関数を書き足して)

    public unsafe int getIntOffset(int offset)
    { 
      int dwAddress = (int)_BaseAddress + offset;
      int retint;
      ReadProcessMemory(Handle, dwAddress, &retint, 4, null);
      return retint;
    }

こういうの作っておけば、オフセットから1ワードだけ読む、とか簡単にできる

558名無しのWindower使い:2012/12/03(月) 13:13:07 ID:.RA7VI2s
RCM用に追加した menu.cs ほしいならアプローダ上げとくけど
もういらないかな?

554>> にあるようにXaceliteからべたに俺流で移植したもの
ソース汚い、C#の初心者な移植版

559名無しのWindower使い:2012/12/04(火) 03:20:27 ID:GRWVwwH2
是非くれ

560名無しのWindower使い:2012/12/04(火) 10:22:52 ID:VNVAGfIM
アップしておいた
パスはいつもの

Xaceliteさま 
勝手に流用しておいてアップするとか
ゆるさね〜とか言われたらあれなので先に謝っときます

ごめんなさい  orz

561名無しのWindower使い:2017/02/26(日) 18:39:33 ID:WtsF9pzc
久々に復帰して昔のソースひっぱり出して遊ぼうと思ったら、Helper関連がエラーは出ないけどさっぱり動作しないんだけど、どなたかWindowerHelper.dllをDelphiで利用出来てる方いますか?

公開されてる他の方のツールは動くから、Windowerの設定関連は大丈夫と考えていいのかな


新着レスの表示


名前: E-mail(省略可)

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

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

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

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