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

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

1Windower JP Forums:2008/10/14(火) 17:40:44 ID:???
Windower HelperやFFACEを用いたWindower用外部プログラムの話題を扱うスレです
板トップのアップローダーは自由に使ってください
プログラム単体のスレ立て申請は本スレまでお願いします

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の設定関連は大丈夫と考えていいのかな

562名無しのWindower使い:2020/08/14(金) 09:25:50 ID:d507I59E
かな
それではまた3年後


新着レスの表示


名前: E-mail(省略可)

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

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

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

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