Emelaldo_blog01
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 おき場所ですー Brutal LWB Swiftness早速Getしたぞい Fumiさんに贈呈しました^^ http://blog.cnobi.jp/v1/blog/user/f98aec5c0415f9280e2682db6bfc2c21/1259325648 キーバインド変更スクリプト これは! 最近のNotePCとかでDiabloするときにとても便利かも! 某BYAKUDANさんの欲していたものでは?w Fumiさんお忙しい中、ありがとうございますです^^mm =========================== 半分寝ながらGris&Wirt巡り やった!Yatta! やっちゃった! King's Battle Axe of Haste FumiさんDesmo/Rymoさんやったよ! http://www12.atpages.jp/~emelaldo636/kbaoh/ 目覚めたw ========================== SSoHの微妙なものが..^^; http://blog.cnobi.jp/v1/blog/user/f98aec5c0415f9280e2682db6bfc2c21/1259473067 買っちゃったw ========================== であぶろ(仮) http://www16.atpages.jp/rymo/cgi-bin/sbu2_bbs/sbu2_bbs.cgi Desmo(Rymo)さんのBBS こっちのほうがScript掲載やすいです ファイル、画像も張りやすいですよ ぜひよろ~mm^^ PR
mwbdyp,chaussures louboutin prix,ieoaeo
Ronpzqvzy Kqlbnlb Whlewz Btdmvuxf Ybuabk <a href="http://www.saintmartindeschamps.com/imagesproduits/lunette-ray-ban.html">lunette ray ban femme</a> Konuajf Oexjt Cttckyrb Ogezyfhrd Spzfrk http://www.saintmartindeschamps.com/imagesproduits/lunette-ray-ban.html
無題
Hello emelaldo,
Can you to send me the script for the program that shops on diablo. My email is cfifty22@yahoo.com
無題
名前入れ忘れた(汁
【2009/11/30 16:49】のコメントは私のものです。
無題
個人的には人が使おうとあまり気にしないかな。
自分ではManaPotionまとめ買いマクロは使うかもしれない。 ほかのマクロはたぶん使わないと思う。 GrisやWirtへの移動の類はもう体が慣れてしまっているので(笑 Potion順番に飲んでくれるマクロは魅力的だけど、 日本語KeybordでのShift押しながらいくつかの Potionが飲めないバグ?を考えると自分で確実に 飲めるようにしたほうが良いかな、と。 (そこらへんはShift押しながらでも飲める Potionを一個か二個、マクロの対象からはずすなりすれば いいのかも知れないけど) とまあ、必死にKeyの位置を指に覚えさせている 毎日です(笑
無題
バックアップなんかぶっちゃけ複製だしねぇ。
潜ってる途中で回線切れたとか、再起動食らったとかの防衛策と言えば聞こえはいいけど。 DURアップの法則も、抵抗ある人は海外に多いね。 どこまで含めるか、どこで線引きするかは意見が分かれるところですな。 まーゲームの中でbot使うのは嫌われる傾向にあるのは間違いないスね。 chat botはゲームに直接関係ないからやってるんだろうけど。 ちなみに私は巡回マクロだけ使わせてもらってます。
予想はしていましたが
作る前から予想はしていましたが、この手のツールに反発を感じる方もいることでしょう。GriswoldやWirtを巡回するマクロ程度ならまだしも、これはitemの選別と購入までも自動で行ってしまいます。改良を重ねれば、BaseItemの指定や性能の指定までできるようになります。
でも、それは本当にLegitと言えるのか?CheatToolと、どのくらい違うと言うのか? 結論としては、このツールはDiabloの乱数によるItem生成に依存しているため、完全にCheatとは言えないまでも、Legitではない、グレーな領域にあると思います。 ただ、このツールを作っている間の私は、良いItemが欲しいというよりも、単純にプログラマとしての技術的な興味に突き動かされていました。スクリプトの勉強自体が楽しいのです。そして、作った以上は公開したい、皆に「すごいね」と褒めてもらいたい、そんな子供っぽい気持ちがあったことも確かです。 では、私が良いItemが欲しくなかったのか、と言われれば欲しいとしかいいようがありません。Diabloとは本当に悪魔のようなゲームです。一度はまるとより良いItemを求めてBattle.Netを彷徨い歩いてしまいます。 ただ、Diabloが発売された当時の学生だった自分と違い、今は家庭を持つ身です。Diabloのやり過ぎで嫁が怒るどころか泣き出してしまいました。GriswoldやWirtの巡回などやっていられません。でもゲームは続けたい。どうすれば良いのだろう? このツールを使う、使わないは、各人でお考え下さい。 また、このツールをEmelaldoさんのBlogに公開すること自体が不適切であると判断されたならば、削除していただいても構いません。本来ならば、自分でHPを作成してそこで公開すべきものです。今の自分は、そこまでの気力がないので、EmelaldoさんのBlogを利用させてもらっているのです。 以上、長文失礼しました。
無題
Hu whats this Eme? Don't get me wrong but this looks like a shopping bot script to me ... are you using a bot to shop your items ??
I hope that I just misunderstand something here :P
ちなみに
このItem自動購入機能は、100%確実な動作を保証しません。たまに指定していないItemを買っちゃったりします。また、確認はできていませんが、指定のItemがあっても見逃すかもしれません。
これはBMPから画像データを読み込んで、パターンマッチング処理をしているためです。背景が半透明のため、Item名のBMPとゲーム中のItem欄が一致しない場合があります。そのため、ある程度の「曖昧さ」を持たせてあるのですが、これが誤動作の原因となります。 そこはご了承下さい。
Diablo自動Item購入スクリプトをULしました
BMP切り出しが面倒だから、適当なアップローダに置いておくように、との要望がありましたので対応いたします。
下記URLからDL可能です。 http://a-draw.com/uploader/src/up4520.zip.html まだ、BMPが完璧じゃないです。 できたら皆さん協力して下さい。 特に、Strange,Whale、Mommoth、Thunder等のWirt用が全然ありません。 よろしくお願いします。
Diablo自動Item購入スクリプト バージョンアップ
Wirtへの自動購入機能を追加しました。
せっかくDesmoさんが、Wirtへ行くプログラムを書いてくれたのに、上手くマージできませんでした。ごめんなさい。 これでRuby plate of WhaleだろうがStrange Sword of Hasteだろうが、何でも来いですよ。 ちなみに、Wirtは50Gかかるので、お金は大分必要です。Wirt行きたくない場合は行かないように設定を変えて下さい。後、買い物キャラはSTR100以上にしといて下さい。(文字色が赤色になるのを防ぐため) ;*****************************************************************************/ ;/* Diablo 自動買い物スクリプト ver0.60 */ ;/* */ ;/* 概要 :DiabloⅠの買い物を自動で行います。 */ ;/* :Griswoldまで歩いて指定のItemを探し、Itemgがあれば購入、 */ ;/* :なければ次のゲームを繰り返します。購入後はスクリプトを */ ;/* :停止します。 */ ;/* */ ;/* !!!!!注意!!!!! */ ;/* 本ツールにより、いかなる損害を被った場合でも、製作者はその責任を */ ;/* 負わないものとする (データはちゃんとバックアップしてから使って下さい) */ ;/* */ ;/* 作成者 :Fumiko */ ;/* 変更履歴:2009年11月28日 新規作成 現在はGriswoldのみに対応 */ ;/* 変更履歴:2009年11月28日 ver0.60 Wirtの買い物に対応 */ ;/****************************************************************************/ ;*****************************************************************************/ ;/* ★使 用 方 法★ */ ;/* */ ;/* ① 「AutoHotkey」をDLしてインストール */ ;/* */ ;/* ② 探索Itemの設定 */ ;/* 現在は、ベースItemの性能指定や、Prefix・Suffixの数値指定はできません */ ;/* できるのはPrefix・Base・Suffixの名称指定のみです。 */ ;/* Obsidian Helm of Starsの指定方法は以下の通り。 */ ;/* */ ;/* prefix_name = obisidian ;prefixを指定 */ ;/* base_name = helm ;baseを指定 */ ;/* suffix_name = stars ;suffixを指定 */ ;/* FnSearchItemGriswold( prefix_name, base_name, suffix_name ) */ ;/* */ ;/* これをソースに追加していって下さい。 */ ;/* Wirt用は以下の関数を使用します。 */ ;/* FnSearchItemWirt( prefix_name, base_name, suffix_name ) */ ;/* */ ;/* ③ このソースをテキストに貼り付けて「なんちゃら.ahk」という名前にして保存*/ ;/* */ ;/* ④ Diabloを起動してDirectLinkConnectionのゲーム作成画面まで進む */ ;/* */ ;/* ⑤ ALT+TABで裏画面に戻り「なんちゃら.ahk」を実行 */ ;/* */ ;/* ⑥ マシンによって待機時間を調整する必要があるので、ウェイト時間は */ ;/* ミリ秒単位で適宜調整すること */ ;/* */ ;/****************************************************************************/ ;*****************************************************************************/ ;/* ★本ツールの仕様★ */ ;/* */ ;/* ① 「なんちゃら.ahk」と同じディレクトリに「bmp」フォルダを作成 */ ;/* */ ;/* ② 「bmp」フォルダの下に「prefix」「base」「suffix」フォルダを作成 */ ;/* */ ;/* ③ それぞれのフォルダにdiabloのスクリーンショットから切り出したItem名の */ ;/* BMPを置いておきます。 */ ;/* Obsidian Helm of Starsの場合、「prefix」にobsidian.bmp、「base」に */ ;/* helm.bmp、「suffix」にstars.bmpを置きます。各BMPは余白のないよう */ ;/* ぎりぎりに切り出します。1つあたり8×30程度の大きさです。 */ ;/* 足りないBMPは各自で追加して下さい。 */ ;/* */ ;/* ④ 本ツールではゲーム内の明るさを一番暗くします。これはお店のItem窓が */ ;/* 半透明のため、画像マッチング処理が背景の色によってうまくいかない不具合*/ ;/* を少しでも解消するためです。 */ ;/* */ ;/****************************************************************************/ ;/***********************************************/ ;/* ウェイト時間の設定 */ ;/***********************************************/ ;以下に、お店を回る際の時間設定をします。 ;時間はマシン毎に異なるため、自分のPCの性能に合わせた時間に設定して下さい。 ;単位はすべて[ms](ミリ秒)です。 GAME_CREATE_TIME = 2500 ;ゲーム作成時間 MOVING_TO_GRISWOLD_TIME_1 = 4300 ;Griswoldまで歩くためのウェイト1 MOVING_TO_GRISWOLD_TIME_2 = 2000 ;Griswoldまで歩くためのウェイト2 GAME_FINALIZE_TIME = 3500 ;ゲーム終了時間 ;/***********************************************/ ;/* Wirt買い物の設定 */ ;/***********************************************/ ;Wirtの買い物をする場合は1、しない場合は0 g_flg_shopping_wirt = 1 ;/***********************************************/ ;/* グローバル変数定義 */ ;/***********************************************/ g_flg_first = 0 ;/***********************************************/ ;/* ソフトを起動する */ ;/***********************************************/ Process,Exist,diablo.exe ;ソフトが起動しているかどうかを調べる if (ErrorLevel <> 0) ;起動していた場合(ErrorLevel変数にプロセスIDが格納される) { WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする } else { ExitApp ;終了 } ;/***********************************************/ ;/* Itemの探索 */ ;/***********************************************/ LOOP ;Itemが見つかるまで延々と繰り返し { ;/*************************************/ ;/* ゲーム作成とGriswoldまで移動 */ ;/*************************************/ ;CreateGame MouseClick, left, 432, 298 MouseClick, left, 432, 298 Sleep, 100 ;GameLevel選択 MouseClick, left, 432, 144 MouseClick, left, 432, 144 Sleep, GAME_CREATE_TIME ;Create中 ;/*************************************/ ;/* 明るさを下げる */ ;/*************************************/ if( g_flg_first = 1 ) ;初めの一回のみ処理する { MouseClick, left, 46, 465 ;Menuを出す MouseClick, left, 274, 133 ;Option MouseClick, left, 210, 225 ;下へ Loop, 10 { MouseClick, left, 288, 226 ;Gammaを下げる } MouseClick, left, 46, 465 ;Menuを消す g_flg_first = 0 } Sleep, 200 ;/*************************************/ ;/* Griswoldまで移動中 */ ;/*************************************/ MouseClick, left, 116, 0 Sleep, MOVING_TO_GRISWOLD_TIME_1 MouseClick, left, 282, 51 Sleep, MOVING_TO_GRISWOLD_TIME_2 ;/*************************************/ ;/* Griswoldの探索Itemの指定 */ ;/*************************************/ ;itemを指定します。いらない項目は空にします prefix_name = obsidian ;prefixを指定 base_name = helm ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = crown ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = helm ;baseを指定 suffix_name = harmony ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = crown ;baseを指定 suffix_name = harmony ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = bow ;baseを指定 suffix_name = heavens ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = plate ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = mail ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = armor ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) prefix_name = kings ;prefixを指定 base_name = sword ;baseを指定 suffix_name = haste ;suffixを指定 FnSearchItemGriswold( prefix_name, base_name, suffix_name ) Send, {ESC} if( g_flg_shopping_wirt = 1 ) { ;/*************************************/ ;/* Wirtまで移動中 */ ;/*************************************/ MouseClick, left, 49, 136 Sleep, 2200 MouseClick, left, 4, 73 Sleep, 3600 MouseClick, left, 20, 13 Sleep, 4100 MouseClick, left, 48, 14 Sleep, 4000 MouseClick, left, 24, 9 Sleep, 4000 MouseClick, left, 252, 10 Sleep, 4500 MouseClick, left, 319, 12 Sleep, 3300 MouseClick, left, 505, 28 Sleep, 3800 ;/*************************************/ ;/* Wirtの探索Itemの指定 */ ;/*************************************/ prefix_name = kings ;prefixを指定 base_name = sword ;baseを指定 suffix_name = haste ;suffixを指定 FnSearchItemWirt( prefix_name, base_name, suffix_name ) prefix_name = ruby ;prefixを指定 base_name = helm ;baseを指定 suffix_name = whale ;suffixを指定 FnSearchItemWirt( prefix_name, base_name, suffix_name ) ;Leave MouseClick, left, 323, 308 } ;/*************************************/ ;/* ゲーム終了 */ ;/*************************************/ ;MouseClick, left, 492, 280 MouseClick, left, 17, 463 MouseClick, left, 255, 187 Sleep, GAME_FINALIZE_TIME ;ゲーム選択画面に戻り中 } ;/***********************************************/ ;/* GriswoldのItemの探索 */ ;/***********************************************/ ;Item欄から引数に指定のItemを探索します。 ;Griswoldをクリックした後に呼び出すこと FnSearchItemGriswold(str_prefix, str_base, str_suffix) { ;/*************************************/ ;/* ローカル変数 初期化 */ ;/*************************************/ ;検出フラグを初期化 flg_det_prefix = 0 flg_det_base = 0 flg_det_suffix = 0 ;/*************************************/ ;/* PremiumItem選択 */ ;/*************************************/ MouseClick, left, 448, 207 ;/*************************************/ ;/* PremiumItem探索処理 */ ;/*************************************/ Loop 5 ;Item欄スクロール { x_pos = 50 ;X座標は固定 y_pos = 90 ;初めに探索するY座標 Loop 4 ;Item欄を全探索 { ;/*************************************/ ;/* Item欄から指定のItemがあるか検出 */ ;/*************************************/ FnDetectItemName( str_prefix ,str_base ,str_suffix ,x_pos ,y_pos ,flg_det_prefix ,flg_det_base ,flg_det_suffix ) ;/*************************************/ ;/* 欲しいItemが見つかった場合 */ ;/*************************************/ if( ( flg_det_prefix = 1 ) and ( flg_det_base = 1 ) and ( flg_det_suffix = 1 ) ) { ;Item選択 MouseClick, left, x_pos+50, y_pos+10 ;Item購入 MouseClick, left, 323, 256 ;スクリプト終了 ExitApp } ;/*************************************/ ;/* 欲しいItemが見つからなかった場合 */ ;/*************************************/ ;次のItem位置へ移動 y_pos += 49 } ;Item欄スクロール MouseClick, left, 604, 279 } ;/*************************************/ ;/* お店から抜ける */ ;/*************************************/ MouseClick, left, 372, 305 } ;/***********************************************/ ;/* WirtのItemの探索 */ ;/***********************************************/ ;Item欄から引数に指定のItemを探索します。 ;Wirtをクリックした後に呼び出すこと FnSearchItemWirt(str_prefix, str_base, str_suffix) { ;/*************************************/ ;/* ローカル変数 初期化 */ ;/*************************************/ ;検出フラグを初期化 flg_det_prefix = 0 flg_det_base = 0 flg_det_suffix = 0 ;/*************************************/ ;/* PremiumItem選択 */ ;/*************************************/ MouseClick, left, 461, 255 ;/*************************************/ ;/* PremiumItem探索処理 */ ;/*************************************/ x_pos = 50 ;X座標は固定 y_pos = 153 ;Y座標 ;/*************************************/ ;/* Item欄から指定のItemがあるか検出 */ ;/*************************************/ FnDetectItemName( str_prefix ,str_base ,str_suffix ,x_pos ,y_pos ,flg_det_prefix ,flg_det_base ,flg_det_suffix ) ;/*************************************/ ;/* 欲しいItemが見つかった場合 */ ;/*************************************/ if( ( flg_det_prefix = 1 ) and ( flg_det_base = 1 ) and ( flg_det_suffix = 1 ) ) { ;Item選択 Send, {ENTER} ;Item購入 Send, {ENTER} ;スクリプト終了 ExitApp } else { ;NOP } } ;/***********************************************/ ;/* Item欄から指定のItemがあるか検出 */ ;/***********************************************/ ;str_prefix ;[in ] prefix名 ;str_base ;[in ] base名 ;str_suffix ;[in ] suffix名 ;x_pos ;[in ] 探索開始X座標 ;y_pos ;[in ] 探索開始Y座標 ;ByRef flg_det_prefix ;[out] prifix検出フラグ 0:未検出 1:検出 ;ByRef flg_det_base ;[out] base 検出フラグ 0:未検出 1:検出 ;ByRef flg_det_suffix ;[out] suffix検出フラグ 0:未検出 1:検出 FnDetectItemName( str_prefix ,str_base ,str_suffix ,x_pos ,y_pos ,ByRef b1a_flg_det_prefix ,ByRef b1a_flg_det_base ,ByRef b1a_flg_det_suffix ) { ;/*************************************/ ;/* 引数チェック */ ;/*************************************/ ;prefixの指定があるかチェック StringLen, num, str_prefix if( num = 0 ) { flg_srch_prefix = 0 b1a_flg_det_prefix := 1 } else { flg_srch_prefix = 1 b1a_flg_det_prefix := 0 } ;baseの指定があるかチェック StringLen, num, str_base if( num = 0 ) { flg_srch_base = 0 b1a_flg_det_base := 1 } else { flg_srch_base = 1 b1a_flg_det_base := 0 } ;suffixの指定があるかチェック StringLen, num, str_suffix if( num = 0 ) { flg_srch_suffix = 0 b1a_flg_det_suffix := 1 } else { flg_srch_suffix = 1 b1a_flg_det_suffix := 0 } ;/*************************************/ ;/* prefixの探索 */ ;/*************************************/ if( flg_srch_prefix = 1 ) { ;ファイルの存在チェック IfNotExist, %A_ScriptDir%\bmp\prefix\%str_prefix%.bmp { MsgBox, 指定のPrefix %str_prefix% のBMPファイルが存在しません。 ;スクリプト終了 ExitApp } ;画像マッチング処理 ImageSearch, FoundX, FoundY, x_pos, y_pos, x_pos + 470, y_pos + 16, *120 %A_ScriptDir%\bmp\prefix\%str_prefix%.bmp ;検出フラグを立てる if ErrorLevel = 0 { b1a_flg_det_prefix := 1 } else { b1a_flg_det_prefix := 0 } } ;/*************************************/ ;/* baseの探索 */ ;/*************************************/ if( flg_srch_base = 1 ) { ;ファイルの存在チェック IfNotExist, %A_ScriptDir%\bmp\base\%str_base%.bmp { MsgBox, 指定のBase %str_base% のBMPファイルが存在しません。 ;スクリプト終了 ExitApp } ;画像マッチング処理 ImageSearch, FoundX, FoundY, x_pos, y_pos, x_pos + 470, y_pos + 16, *120 %A_ScriptDir%\bmp\base\%str_base%.bmp ;検出フラグを立てる if ErrorLevel = 0 { b1a_flg_det_base := 1 } else { b1a_flg_det_base := 0 } } ;/*************************************/ ;/* suffixの探索 */ ;/*************************************/ if( flg_srch_suffix = 1 ) { ;ファイルの存在チェック IfNotExist, %A_ScriptDir%\bmp\suffix\%str_suffix%.bmp { MsgBox, 指定のSuffix %str_suffix% のBMPファイルが存在しません。 ;スクリプト終了 ExitApp } ;画像マッチング処理 ImageSearch, FoundX, FoundY, x_pos, y_pos, x_pos + 470, y_pos + 16, *120 %A_ScriptDir%\bmp\suffix\%str_suffix%.bmp ;検出フラグを立てる if ErrorLevel = 0 { b1a_flg_det_suffix := 1 } else { b1a_flg_det_suffix := 0 } } } s::ExitApp ;sキーで買い物中断
Diablo自動Item購入スクリプト
自動でGirswoldを巡回して、指定したItemを購入するスクリプトを作成しました。試したところ、Obsdian Bow Heavensが勝手にINVに入っていました。このツールにはItem名を切り出したBMPファイルが必要なのですが、どうやってお渡ししたら良いでしょう?
>Desmoさん 改良ありがとうございます。Wirt版の改良の参考にさせていただきます。 >Sunaさん 綴り間違ってましたね。(^^;今度直しておきます。ご指摘ありがとうございます。 では以下ソースです。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ;*****************************************************************************/ ;/* Dialblo 自動買い物スクリプト ver0.50 */ ;/* */ ;/* 概要 :DiabloⅠの買い物を自動で行います。 */ ;/* :Griswoldまで歩いて指定のItemを探し、Itemgがあれば購入、 */ ;/* :なければ次のゲームを繰り返します。購入後はスクリプトを */ ;/* :停止します。 */ ;/* */ ;/* 作成者 :Fumiko */ ;/* 変更履歴:2009年11月28日 新規作成 現在はGriswoldのみに対応 */ ;/****************************************************************************/ ;*****************************************************************************/ ;/* ★使 用 方 法★ */ ;/* */ ;/* ① 「AutoHotkey」をDLしてインストール */ ;/* */ ;/* ② 探索Itemの設定 */ ;/* 現在は、ベースItemの性能指定や、Prefix・Suffixの数値指定はできません */ ;/* できるのはPrefix・Base・Suffixの名称指定のみです。 */ ;/* Obsidian Helm of Starsの指定方法は以下の通り。 */ ;/* */ ;/* prefix_name = obisidian ;prefixを指定 */ ;/* base_name = helm ;baseを指定 */ ;/* suffix_name = stars ;suffixを指定 */ ;/* FnSearchItem( prefix_name, base_name, suffix_name ) */ ;/* */ ;/* これをソースに追加していって下さい。 */ ;/* */ ;/* ③ このソースをテキストに貼り付けて「なんちゃら.ahk」という名前にして保存*/ ;/* */ ;/* ④ Diabloを起動してDirectLinkConnectionのゲーム作成画面まで進む */ ;/* */ ;/* ⑤ ALT+TABで裏画面に戻り「なんちゃら.ahk」を実行 */ ;/* */ ;/* ⑥ マシンによって待機時間を調整する必要があるので、ウェイト時間は */ ;/* ミリ秒単位で適宜調整すること */ ;/* */ ;/****************************************************************************/ ;*****************************************************************************/ ;/* ★本ツールの仕様★ */ ;/* */ ;/* ① 「なんちゃら.ahk」と同じディレクトリに「bmp」フォルダを作成 */ ;/* */ ;/* ② 「bmp」フォルダの下に「prefix」「base」「suffix」フォルダを作成 */ ;/* */ ;/* ③ それぞれのフォルダにdiabloのスクリーンショットから切り出したItem名の */ ;/* BMPを置いておきます。 */ ;/* Obsidian Helm of Starsの場合、「prefix」にobsidian.bmp、「base」に */ ;/* helm.bmp、「suffix」にstars.bmpを置きます。各BMPは余白のないよう */ ;/* ぎりぎりに切り出します。1つあたり8×30程度の大きさです。 */ ;/* 足りないBMPは各自で追加して下さい。 */ ;/* */ ;/* ④ 本ツールではゲーム内の明るさを一番暗くします。これはお店のItem窓が */ ;/* 半透明のため、画像マッチング処理が背景の色によってうまくいかない不具合*/ ;/* を少しでも解消するためです。 */ ;/* */ ;/****************************************************************************/ ;/***********************************************/ ;/* ウェイト時間の設定 */ ;/***********************************************/ ;以下に、お店を回る際の時間設定をします。 ;時間はマシン毎に異なるため、自分のPCの性能に合わせた時間に設定して下さい。 ;単位はすべて[ms](ミリ秒)です。 GAME_CREATE_TIME = 2500 ;ゲーム作成時間 MOVING_TO_GRISWOLD_TIME_1 = 4300 ;Griswoldまで歩くためのウェイト1 MOVING_TO_GRISWOLD_TIME_2 = 2000 ;Griswoldまで歩くためのウェイト2 GAME_FINALIZE_TIME = 3500 ;ゲーム終了時間 ;/***********************************************/ ;/* グローバル変数定義 */ ;/***********************************************/ g_flg_first = 1 ;/***********************************************/ ;/* ソフトを起動する */ ;/***********************************************/ Process,Exist,diablo.exe ;ソフトが起動しているかどうかを調べる if (ErrorLevel <> 0) ;起動していた場合(ErrorLevel変数にプロセスIDが格納される) { WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする } else { ExitApp ;終了 } ;/***********************************************/ ;/* Itemの探索 */ ;/***********************************************/ LOOP ;Itemが見つかるまで延々と繰り返し { ;/*************************************/ ;/* ゲーム作成とGriswoldまで移動 */ ;/*************************************/ ;CreateGame MouseClick, left, 432, 298 MouseClick, left, 432, 298 Sleep, 100 ;GameLevel選択 MouseClick, left, 432, 144 MouseClick, left, 432, 144 Sleep, GAME_CREATE_TIME ;Create中 ;/*************************************/ ;/* 明るさを下げる */ ;/*************************************/ if( g_flg_first = 1 ) ;初めの一回のみ処理する { MouseClick, left, 46, 465 ;Menuを出す MouseClick, left, 274, 133 ;Option MouseClick, left, 210, 225 ;下へ Loop, 10 { MouseClick, left, 288, 226 ;Gammaを下げる } MouseClick, left, 46, 465 ;Menuを消す g_flg_first = 0 } Sleep, 200 ;/*************************************/ ;/* Griswoldまで移動中 */ ;/*************************************/ MouseClick, left, 116, 0 Sleep, MOVING_TO_GRISWOLD_TIME_1 MouseClick, left, 282, 51 Sleep, MOVING_TO_GRISWOLD_TIME_2 ;/*************************************/ ;/* 探索Itemの指定 */ ;/*************************************/ ;itemを指定します。いらない項目は空にします prefix_name = obsidian ;prefixを指定 base_name = helm ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = crown ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = helm ;baseを指定 suffix_name = harmony ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = crown ;baseを指定 suffix_name = harmony ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = bow ;baseを指定 suffix_name = heavens ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = plate ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = mail ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = obsidian ;prefixを指定 base_name = armor ;baseを指定 suffix_name = stars ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) prefix_name = kings ;prefixを指定 base_name = sword ;baseを指定 suffix_name = haste ;suffixを指定 FnSearchItem( prefix_name, base_name, suffix_name ) ;/*************************************/ ;/* ゲーム終了 */ ;/*************************************/ MouseClick, left, 492, 280 MouseClick, left, 17, 463 MouseClick, left, 255, 187 Sleep, GAME_FINALIZE_TIME ;ゲーム選択画面に戻り中 } ;/***********************************************/ ;/* Itemの探索 */ ;/***********************************************/ ;Item欄から引数に指定のItemを探索します。 ;Griswoldをクリックした後に呼び出すこと FnSearchItem(str_prefix, str_base, str_suffix) { ;/*************************************/ ;/* ローカル変数 初期化 */ ;/*************************************/ ;検出フラグを初期化 flg_det_prefix = 0 flg_det_base = 0 flg_det_suffix = 0 ;/*************************************/ ;/* 引数チェック */ ;/*************************************/ ;prefixの指定があるかチェック StringLen, num, str_prefix if( num = 0 ) { flg_srch_prefix = 0 } else { flg_srch_prefix = 1 } ;baseの指定があるかチェック StringLen, num, str_base if( num = 0 ) { flg_srch_base = 0 } else { flg_srch_base = 1 } ;suffixの指定があるかチェック StringLen, num, str_suffix if( num = 0 ) { flg_srch_suffix = 0 } else { flg_srch_suffix = 1 } ;/*************************************/ ;/* PremiumItem選択 */ ;/*************************************/ MouseClick, left, 448, 207 ;/*************************************/ ;/* PremiumItem探索処理 */ ;/*************************************/ Loop 5 ;Item欄スクロール { y_pos = 90 ;初めに探索するY座標 Loop 4 ;Item欄を全探索 { ;/*************************************/ ;/* prefixの探索 */ ;/*************************************/ if( flg_srch_prefix = 1 ) { ;ファイルの存在チェック IfNotExist, %A_ScriptDir%\bmp\prefix\%str_prefix%.bmp { MsgBox, 指定のPrefix %str_prefix% のBMPファイルが存在しません。 ;スクリプト終了 ExitApp } ;画像マッチング処理 ImageSearch, FoundX, FoundY, 50, y_pos, 520, y_pos + 16, *120 %A_ScriptDir%\bmp\prefix\%str_prefix%.bmp ;検出フラグを立てる if ErrorLevel = 0 { flg_det_prefix = 1 } else { flg_det_prefix = 0 } } ;/*************************************/ ;/* baseの探索 */ ;/*************************************/ if( flg_srch_base = 1 ) { ;ファイルの存在チェック IfNotExist, %A_ScriptDir%\bmp\base\%str_base%.bmp { MsgBox, 指定のBase %str_base% のBMPファイルが存在しません。 ;スクリプト終了 ExitApp } ;画像マッチング処理 ImageSearch, FoundX, FoundY, 50, y_pos, 520, y_pos + 16, *120 %A_ScriptDir%\bmp\base\%str_base%.bmp ;検出フラグを立てる if ErrorLevel = 0 { flg_det_base = 1 } else { flg_det_base = 0 } } ;/*************************************/ ;/* suffixの探索 */ ;/*************************************/ if( flg_srch_suffix = 1 ) { ;ファイルの存在チェック IfNotExist, %A_ScriptDir%\bmp\suffix\%str_suffix%.bmp { MsgBox, 指定のsuffix %str_suffix% のBMPファイルが存在しません。 ;スクリプト終了 ExitApp } ;画像マッチング処理 ImageSearch, FoundX, FoundY, 50, y_pos, 520, y_pos + 16, *120 %A_ScriptDir%\bmp\suffix\%str_suffix%.bmp ;検出フラグを立てる if ErrorLevel = 0 { flg_det_suffix = 1 } else { flg_det_suffix = 0 } } ;/*************************************/ ;/* 欲しいItemが見つかった場合 */ ;/*************************************/ if( ( ( flg_srch_prefix = 0 ) or ( ( flg_srch_prefix = 1 ) and ( flg_det_prefix = 1 ) ) ) and ( ( flg_srch_base = 0 ) or ( ( flg_srch_base = 1 ) and ( flg_det_base = 1 ) ) ) and ( ( flg_srch_suffix = 0 ) or ( ( flg_srch_suffix = 1 ) and ( flg_det_suffix = 1 ) ) ) ) { ;MsgBox, 4%FoundX%x%FoundY% ;Item選択 MouseClick, left, 100, y_pos+10 ;Item購入 MouseClick, left, 323, 256 ;スクリプト終了 ExitApp } ;/*************************************/ ;/* 欲しいItemが見つからなかった場合 */ ;/*************************************/ ;次のItem位置へ移動 y_pos += 49 } ;Item欄スクロール MouseClick, left, 604, 279 } ;/*************************************/ ;/* お店から抜ける */ ;/*************************************/ MouseClick, left, 372, 305 } s::ExitApp ;sキーで買い物中断
GrisとWirt巡回
Desmoです。ついでにWirt行くように改造してみました。
さらにDirect Cable Connection ではなく、Local Area Network (IPX) バージョンです。 後半のマウスの動きがやや雑ですが、 ノンストップでGrisからWirt行ってるはずです。 Grisで最初にPremium Item開いた直後にディレイかましてあります(1500ms?) 適当にどうぞ。 Process,Exist,diablo.exe ;ソフトが起動しているかどうかを調べる if (ErrorLevel <> 0) ;起動していた場合(ErrorLevel変数にプロセスIDが格納される) { WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする } else { ExitApp ;終了 } LOOP { ;CreateGame MouseClick, left, 432, 272 MouseClick, left, 432, 272 Sleep, 200 ;GameLevel選択 MouseClick, left, 432, 144 MouseClick, left, 432, 144 Sleep, 1800 ;Create中 ;Grisまで移動中 MouseClick, left, 116, 0 Sleep, 4300 MouseClick, left, 282, 51 Sleep, 2000 ;PremiumItem選択 MouseClick, left, 448, 207 Sleep, 1500 ;Item欄スクロール MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 2500 ;Wirt移動 MouseClick, left, 372, 305 MouseClick, left, 492, 280 MouseClick, left, 0, 72 Sleep, 3000 MouseClick, left, 0, 72 Sleep, 2800 MouseClick, left, 0, 28 Sleep, 3000 MouseClick, left, 97, 0 Sleep, 3000 MouseClick, left, 0, 76 Sleep, 3000 MouseClick, left, 128, 0 Sleep, 2500 MouseClick, left, 364, 0 Sleep, 3500 MouseClick, left, 385, 0 Sleep, 2500 ;Wirtクリック MouseClick, left, 478, 74 Sleep, 2200 MouseClick, left, 451, 254 Sleep, 2800 MouseClick, left, 328, 308 ;ゲーム終了 MouseClick, left, 17, 463 MouseClick, left, 255, 187 Sleep, 3800 ;ゲーム選択画面に戻り中 } return s::ExitApp ;sキーで買い物中断
無題
>;/* Dialbloキーバインド変更スクリプト ver0.40 */
Dialboになってるのが気になって、夜も眠れません…
キーバインド実装予定項目
1.INVからBeltに、ボタン1つでPotionを補給。
2.ボタン1つでPepinから赤Full Potionをいっぱい買う 3.ホットキーの有効/無効をチャットウィンドウに連動させる(無理かも?Enterキーがチャットのみでなく、選択肢決定も行うため、単純なフック処理では実装できない) 4.魔法切り替えと同時に魔法発動 まぁ、これは簡単です。必要あるかは謎。 他に希望があったらどうぞ。
インデントが・・・
ここにソースを張ると、インデントがずれますね。機能には支障はないのですが。(^_^;
Gris自動巡回スクリプト
①AutoHotkeyをDLしてインストール
②この矢印以下のソースをテキストに貼り付けて、「なんちゃら.ahk」という名前にして保存 ③Diabloを起動してDirectConnectのゲーム作成画面まで進む ④ALT+TABで裏画面に戻り「なんちゃら.ahk」を実行 ⑤マシンによって待機時間を調整する必要があるので、Sleepの数字はミリ秒単位で適宜調整すること 質問はB.Nまで。 ちなみに今後バージョンアップして、GrisのItemを自動判別するかもしれません。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Process,Exist,diablo.exe ;ソフトが起動しているかどうかを調べる if (ErrorLevel <> 0) ;起動していた場合(ErrorLevel変数にプロセスIDが格納される) { WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする } else { ExitApp ;終了 } LOOP { ;CreateGame MouseClick, left, 432, 298 MouseClick, left, 432, 298 Sleep, 100 ;GameLevel選択 MouseClick, left, 432, 144 MouseClick, left, 432, 144 Sleep, 1800 ;Create中 ;Grisまで移動中 MouseClick, left, 116, 0 Sleep, 4300 MouseClick, left, 282, 51 Sleep, 2000 ;PremiumItem選択 MouseClick, left, 448, 207 ;Sleep, 100 ;Item欄スクロール MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 500 MouseClick, left, 604, 279 Sleep, 2000 ;ゲーム終了 MouseClick, left, 372, 305 MouseClick, left, 492, 280 MouseClick, left, 17, 463 MouseClick, left, 255, 187 Sleep, 3800 ;ゲーム選択画面に戻り中 } return s::ExitApp ;sキーで買い物中断
キーバインド使用方法
使用方法
r ;スピードスペル a ;F5魔法 s ;F6魔法 d ;F7魔法 f ;F8魔法 Space ;Shiftキー t ;荷物(インベントリー) g 自動Potion飲み機能 1-8まで順番にPotionを飲む b Potion番号を1に戻す Ctrl キーバインドの有効/無効切り替え チャット時に無効にしてね p Adriaから青FullPotionをINVいっぱいにかいます
キーバインド変更スクリプト
;************************************************************************/ ;/* Dialbloキーバインド変更スクリプト ver0.40 */ ;/* */ ;/* 作成者 :Fumiko */ ;/* 変更履歴:2009年11月27日 新規作成 */ ;/* :2009年11月27日 PキーをAdriaで使用するとItemを売り払う */ ;/* :バグを修正 PキーはAdriaの青Potion専用とする */ ;/***********************************************************************/ ;************************************************/ ;/* グローバル変数の定義 */ ;/***********************************************/ potion_number = 1 ;/* ポーション番号 */ ;/***********************************************/ ;/* ソフトを起動する */ ;/***********************************************/ Process,Exist,diablo.exe ;ソフトが起動しているかどうかを調べる if (ErrorLevel <> 0) ;起動していた場合(ErrorLevel変数にプロセスIDが格納される) { WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする } else { ExitApp ;終了 } ;/***********************************************/ ;/* 本スクリプトの待機 */ ;/***********************************************/ Process,WaitClose,diablo.exe ;diabloが終了するまで待機 ExitApp ;スクリプトを終了する ;/***********************************************/ ;/* キーバインドの変更 */ ;/***********************************************/ #IfWinActive ahk_class DIABLO ;diabloのウィンドウがアクティブの時のみ割り当てを行わせる ;キーの割り当てはここで行います r::s ;スピードスペル e::b ;スペルブック a::F5 ;F5魔法 s::F6 ;F6魔法 d::F7 ;F7魔法 f::F8 ;F8魔法 Space::Shift ;Shiftキー t::i ;荷物(インベントリー) #IfWinActive ;ウィンドウの限定を解除 ;/***********************************************/ ;/* Potionの順番飲み処理 */ ;/***********************************************/ ;gキーを押すと、ポーションを左から順番に飲んでいきます g:: +g:: Send, %potion_number% potion_number += 1 ;ポーション番号が最後までいったら1に戻す if (potion_number = 9) { potion_number = 1 } return ;/***********************************************/ ;/* Potionの順番初期化 */ ;/***********************************************/ ;bキーを押すと、ポーション番号を1番に戻します b:: +b:: potion_number = 1 return ;/***********************************************/ ;/* Hotkeyの有効/無効切り替え */ ;/***********************************************/ Ctrl::Suspend, Toggle return ;/***********************************************/ ;/* Adriaで青Potionまとめ買い */ ;/***********************************************/ p:: SetDefaultMouseSpeed, 0 MouseClick, left, 460, 205 ;Full Potion選択 Loop, 40 ;Inventoryがいっぱいになるまで繰り返し { MouseClick, left, 243, 152 ;Potionを買う MouseClick, left, 318, 253 } MouseClick, left, 328, 312 ;お店を閉じる return
キーバインド変更スクリプト
;************************************************************************/ ;/* Dialbloキーバインド変更スクリプト ver0.40 */ ;/* */ ;/* 作成者 :Fumiko */ ;/* 変更履歴:2009年11月27日 新規作成 */ ;/* :2009年11月27日 PキーをAdriaで使用するとItemを売り払う */ ;/* :バグを修正 PキーはAdriaの青Potion専用とする */ ;/***********************************************************************/ ;************************************************/ ;/* グローバル変数の定義 */ ;/***********************************************/ potion_number = 1 ;/* ポーション番号 */ ;/***********************************************/ ;/* ソフトを起動する */ ;/***********************************************/ Process,Exist,diablo.exe ;ソフトが起動しているかどうかを調べる if (ErrorLevel <> 0) ;起動していた場合(ErrorLevel変数にプロセスIDが格納される) { WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする } else { ExitApp ;終了 } ;/***********************************************/ ;/* 本スクリプトの待機 */ ;/***********************************************/ Process,WaitClose,diablo.exe ;diabloが終了するまで待機 ExitApp ;スクリプトを終了する ;/***********************************************/ ;/* キーバインドの変更 */ ;/***********************************************/ #IfWinActive ahk_class DIABLO ;diabloのウィンドウがアクティブの時のみ割り当てを行わせる ;キーの割り当てはここで行います r::s ;スピードスペル e::b ;スペルブック a::F5 ;F5魔法 s::F6 ;F6魔法 d::F7 ;F7魔法 f::F8 ;F8魔法 Space::Shift ;Shiftキー t::i ;荷物(インベントリー) #IfWinActive ;ウィンドウの限定を解除 ;/***********************************************/ ;/* Potionの順番飲み処理 */ ;/***********************************************/ ;gキーを押すと、ポーションを左から順番に飲んでいきます g:: +g:: Send, %potion_number% potion_number += 1 ;ポーション番号が最後までいったら1に戻す if (potion_number = 9) { potion_number = 1 } return ;/***********************************************/ ;/* Potionの順番初期化 */ ;/***********************************************/ ;bキーを押すと、ポーション番号を1番に戻します b:: +b:: potion_number = 1 return ;/***********************************************/ ;/* Hotkeyの有効/無効切り替え */ ;/***********************************************/ Ctrl::Suspend, Toggle return ;/***********************************************/ ;/* Adriaで青Potionまとめ買い */ ;/***********************************************/ p:: SetDefaultMouseSpeed, 0 MouseClick, left, 460, 205 ;Full Potion選択 Loop, 40 ;Inventoryがいっぱいになるまで繰り返し { MouseClick, left, 243, 152 ;Potionを買う MouseClick, left, 318, 253 } MouseClick, left, 328, 312 ;お店を閉じる return |
カレンダー
リンク
フリーエリア
最新コメント
[10/05 Gally]
[08/31 mz0yeeoo]
[05/25 Emelaldo]
[05/24 Suna]
[05/05 Emelaldo]
[05/05 mikage]
[03/14 Emelaldo]
[03/13 TIFFER]
[03/02 Emelaldo]
[03/02 Suna]
最新記事
(05/04)
(04/29)
(04/27)
(03/09)
(02/22)
(11/12)
(06/21)
(06/18)
(06/15)
(06/12)
最新トラックバック
プロフィール
HN:
Emelaldo_Ninja
性別:
非公開
ブログ内検索
アーカイブ
最古記事
(12/11)
(12/11)
(12/11)
(12/12)
(12/12)
(12/12)
(12/13)
(12/13)
(12/14)
(12/15)
P R
|