[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/15 14:03 / Filesize : 331 KB / Number-of Response : 1064
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

UWSC初心者用スレ



1 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:13:49.92 ID:an35jPjo.net]
UWSC初心者用スレです

わかってる人はこっち
自動化ツールUWSC使いよ集まれ21
egg.5ch.net/test/read.cgi/software/1533818531/

降臨される神々においては相手を人と思わず猿と思し召されるよう
何卒お願い申し上げます

96 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 02:24:04.66 ID:ktdTMJw1.net]
>>93
ま、口でいうだけじゃ分からんこともあるだろうということで今回は特別にインデントを入れてあげよう
https://paiza.io/projects/1R9_xdNXduPIL2T-pXM42Q

これを見ておかしいところが分からない? それはちょっと困る展開だが…どう?

97 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 02:44:54.75 ID:ktdTMJw1.net]
>>91
さてここまでやってしまったからについでに言うと
>カウント0の時、Aの画像を認識するまでループ、認識できたら1の行動(カウント+1)でループを抜け出して次の処理へ
>カウント1の時、Aの画像を認識するまでループ、認識できたら2の行動(カウント+1)でループを抜け出して次の処理へ
>カウント2の時、Aの画像を認識するまでループ、認識できたら3の行動(カウント+1)でループを抜け出して次の処理へ

まぁこの辺は経験とかないとこうなっちゃうのかなと思うが、簡単にすると以下だよね
>カウントが0からnまで繰り返し、Aの画像を認識した時、カウント別の処理実行後、カウントを+1して次へ

これをプログラムしやすく整形すると…
>カウントが0からnまで繰り返し
> Aの画像を認識した時、
>  カウント別の処理実行後、
>  カウントを+1

書くべきコードのイメージも大分違ってくるでしょう

98 名前:デフォルトの名無しさん [2018/10/22(月) 03:37:01.47 ID:rGA5crV5.net]
>>94-95
ありがとうございます

にっちもさっちもいかず、ぐちゃぐちゃにしてしまったファイルをアップしたせいで、
より大きな誤解を招いてしまったところがあると思います…

ttps://22.gigafile.nu/1029-d56268c68a387a2a9e4db0865ff3cf87f
いま試行錯誤していたファイルをアップしてみました
ちょうど>>95あたり?に近かったのではないかと思われますが…
ターン1→2→3→3→1という風に書いてあるにも関わらず、
ターン1→3→2、1→3→1、1→2→3など行動が飛ばされる時があります
戦闘開始.bmpを画像認識しなければ次へ進まないはずだと思うのですが、
異なる制御文でも入れてしまっているのでしょうか…

99 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 04:28:57.69 ID:ktdTMJw1.net]
>>96
肝心のカウントを判定してないんだから順番通りになるわけもない
そもそも…
> カウントが0からnまで繰り返し
> Aの画像を認識した時、
>  カウント別の処理実行後、
>  カウントを+1
↑に近づけたつもりならwhileと画像認識はひとつ
カウントのif文で分岐を書けばいいだけ

同じ判定がいくつも出てくるのは構造がおかしいと指摘したはずだよね

てかこれだけ言ってもインデント無視する限りもうアドバイスしないのでそのつもりで

100 名前:デフォルトの名無しさん [2018/10/22(月) 04:36:33.96 ID:rGA5crV5.net]
>>97
勘違いなさってるようなので訂正させていただきますが、
>>96のファイルは>>94-95を拝見する前に自力で作成していたものです

101 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 04:48:50.98 ID:iCVScRLH.net]
まず状況整理のためにインデントをいれろというアドバイスがあったのに
インデント入れてみてくれはさすがに乱暴だろ
インデントについて調べて理解したの?
IF文におかしいところがないか確認したの?

102 名前:デフォルトの名無しさん [2018/10/22(月) 05:00:05.30 ID:rGA5crV5.net]
>>99
>>94を見ても一瞬で理解できない猿で申し訳ないとしか言えません
>>39を見て、どんなものかと始めたばかりなのでプログラムの記述式等に学が浅く、
言われてることを理解するのにも四苦八苦ですし、周りからすれば幼子に6+6の計算させたら指が足りないからわからないって言ってるようなものなのは申し訳ないです

103 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 05:35:05.90 ID:anSnU/H2.net]
ID違うけど>>99です
>>100
>>99に対して思いもよらないレスが返ってきたので2つ確認させてください
1.あなたは日本人ですか?
2.日本語苦手ですか?
煽りとかじゃなくてマジで中国人とかが日本のゲームやってbot使ってたりするので確認です

104 名前:デフォルトの名無しさん [2018/10/22(月) 16:04:47.06 ID:qAlmLxF7.net]
初心者用スレで何言ってんだこいつ



105 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 17:38:03.95 ID:8Ffx9AaH.net]
インデントを入れるとどこで処理が区切られているか、どこで処理がループされているかがはっきりするのでインデントを入れましょうって話だろ

初心者相手に

106 名前:「インデントを入れればわかる」で投げっぱなしはそらキツいっしょ
インデントの入れ方の規則だってわからんだろうし
[]
[ここ壊れてます]

107 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 18:08:33.49 ID:X1R8clvb.net]
ここはuwscの初心者スレであってプログラミングの初心者スレではないからな

108 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 18:13:22.50 ID:FNc64wsF.net]
ゲームマクロなら画像認識とマウスキーボード自動化あればいいんだから言語なんてなんでもいいんだけどね。
開発環境しっかりしてるVBとかのほうがいいような気もする。

109 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 19:00:12.21 ID:QPF2Uwab.net]
>>104
了解。次スレで検討する。
「プログラミング初心者のためのUWSCスレ」
で、よろしいか?

110 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 19:36:21.25 ID:ofo6/h19.net]
>>100
多くの人にとってはインデントがあったほうが見やすいでしょうから
今インデントをしていないのは、単にインデントするのが面倒なのではないかと思います

多くのエディタでは
複数行を選んだ状態でTABを押すとインデントが深くなり
インデントのある行を複数行を選んでSHIFT+TABでインデントが浅くなるという機能があります
(※エディタによってはキー割り当てが違うこともあります)

今これというエディタを使っていないのであれば
Mery (テキストエディタ)
https://www.haijin-boys.com/wiki/
を使ってみてください。

このエディタは最初から 表示→表示モード に最初からUWSCが含まれています。
なので、UWSファイルを読み込んだだけで自動的に見やすいカラー表示をしてくれます。

ツール→オプションで最初にここだけ設定しておくと見やすいだろうという箇所は
「基本」タブで
 「タブの桁数」で1タブでなん文字分字下げするか設定できます。
 タブより空白がよければ「タブの代わりに空白を挿入」にチェック
  タブの代わりに空白でのTAB/SHIFT+TABによるインデントの増減が効きます
「基本」タブで
 見やすいテーマを選択

「記号」タブで
 タブ表示、半角空白表示、全角空白表示 にチェックを入れる

なお、自分が常用しているのは秀丸ですので、
このMeryエディタを広めたいとかいう意図ではありません。

111 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 19:41:11.57 ID:ofo6/h19.net]
>>107
×「基本」タブで
  見やすいテーマを選択

○「表示」タブで
  見やすいテーマを選択

112 名前:デフォルトの名無しさん [2018/10/23(火) 00:50:11.50 ID:UxSE6/em.net]
自分のせいでいろいろと申し訳ありません
インデントについては普通にメモ帳でやってるのもあり、
一部HPではインデントをつけてないところもありコピペしてたので動作してから直そうと思ってました

ttps://11.gigafile.nu/1030-dd4e47c88d4952d781d2d600256473315
再度修正してみました
「悩み中.uws」は目的の動作をしてくれるようになりましたので「ボス戦開始.uws」に名称を変更しました

一応動作はしてくれているのですが、正しい解決策がわからない部分もあります
行動が飛ばされてた原因がおそらく戦闘開始.bmpの画像を認識するスピードが速すぎて、
行動が終わる前に画像を再度認識してカウントをプラスしていたようで、
このやり方は違うとは思いつつもSLEEPで強制的に認識を止めてます

次にカウントで「戦闘開始.uws」についても修正してみました
こちらも自分の思ったとおりの動作はしてくれているのですが、
1ターン目は完璧ですが、その後に戦闘終了の処理に移行してしまうので、
当然ながら2ターン目は動作しないということに…
「戦闘終了.uws」はメインで画像認識させた方が良いですかね…

>>107
Mery調べてみます

113 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 01:54:05.77 ID:A3TfahIO.net]
>>109
気づいたところをまず指摘しておきます
ボス戦開始がどういうタイミングでどこから
よばれるか今回アップされた中からは判断できませんが
当然メインからたどって何かのタイミングで呼ばれるかたちになるのだろうと思います。
ということ

114 名前:ヘそこから メイン.uws をCALLしてしまうと
らどんどん深いネストに入って無限ループに陥ってしまいます
EXITEXITに達することはないはずです
[]
[ここ壊れてます]



115 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 01:57:20.66 ID:A3TfahIO.net]
単純化すると次のような状態です
破線内をCALL_TEST1_MAIN.UWS,CALL_TEST2.UWSとして保存し
CALL_TEST1_MAIN.UWSを実行してみてください
−−−−−−−−−−−−−−−−−−−−−−−−
//CALL_TEST1_MAIN.UWS
STOPFORM( TRUE, G_SCREEN_W-400, 0)
LOGPRINT( TRUE, G_SCREEN_W-400, 60, 400, 400)
PRINT "CALL_TEST1_MAIN.UWS ファイル先頭"
CALL CALL_TEST1.UWS
SLEEP(2)
PRINT "CALL_TEST1_MAIN.UWS CALL FUNC_MAIN1"
FUNC_MAIN1();
PRINT "CALL_TEST1_MAIN.UWS ファイル末尾"
−−−−−−−−−−−−−−−−−−−−−−−−
//CALL_TEST2.UWS
PRINT "CALL_TEST2.UWS TOP"
FUNCTION FUNC_MAIN1()
 RESULT = 0
 SLEEP(2)
 CALL CALL_TEST1_MAIN.UWS
 PRINT "FUNC_MAIN1 END"
 EXITEXIT
FEND
PRINT "CALL_TEST1.UWS ファイル末尾"
−−−−−−−−−−−−−−−−−−−−−−−

116 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 02:00:25.52 ID:A3TfahIO.net]
訂正

単純化すると次のような状態です
破線内をCALL_TEST1_MAIN.UWS,CALL_TEST1.UWSとして保存し
CALL_TEST1_MAIN.UWSを実行してみてください
−−−−−−−−−−−−−−−−−−−−−−−−
//CALL_TEST1_MAIN.UWS
STOPFORM( TRUE, G_SCREEN_W-400, 0)
LOGPRINT( TRUE, G_SCREEN_W-400, 60, 400, 400)
PRINT "CALL_TEST1_MAIN.UWS ファイル先頭"
CALL CALL_TEST1.UWS
SLEEP(2)
PRINT "CALL_TEST1_MAIN.UWS CALL FUNC_MAIN1"
FUNC_MAIN1();
PRINT "CALL_TEST1_MAIN.UWS ファイル末尾"
−−−−−−−−−−−−−−−−−−−−−−−−
//CALL_TEST1.UWS
PRINT "CALL_TEST1.UWS TOP"
FUNCTION FUNC_MAIN1()
 RESULT = 0
 SLEEP(2)
 CALL CALL_TEST1_MAIN.UWS
 PRINT "FUNC_MAIN1() 終了"
 EXITEXIT
FEND
PRINT "CALL_TEST1.UWS ファイル末尾"
−−−−−−−−−−−−−−−−−−−−−−−

117 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 02:07:54.16 ID:mm3zor/C.net]
次のようなかたちになるべきかと思います
CALL_TEST2_MAIN.UWS,CALL_TEST2.UWS を保存し、CALL_TEST2_MAIN.UWSを実行してみてください
−−−−−−−−−−−−−−−−−−−−−−−
//CALL_TEST2_MAIN.UWS
PRINT "CALL_TEST2_MAIN.UWS ファイル先頭"
STOPFORM( TRUE, G_SCREEN_W-400, 0)
LOGPRINT( TRUE, G_SCREEN_W-400, 60, 400, 400)
CALL CALL_TEST2.UWS
WHILE 1
 SLEEP(1)
 PRINT "CALL_TEST2_MAIN.UWS FUNC_MAIN1() 実行"
 FUNC_MAIN1();
 IFB BTN_NO = MSGBOX( "もう一度実行しますか", BTN_YES OR BTN_NO) THEN
  MSGBOX( "OK後20秒で終了します")
  // EXEIEXIT してもいいが抜ければ自然に終了する
  BREAK
 ENDIF
WEND
PRINT "CALL_TEST2_MAIN.UWS ファイル末尾"
SLEEP(20)
−−−−−−−−−−−−−−−−−−−−−−−−
//CALL_TEST2.UWS
PRINT "CALL_TEST2.UWS ファイル先"
FUNCTION FUNC_MAIN1()
 PRINT "FUNC_MAIN1() 関数先頭"
 RESULT = 0
 SLEEP(1)
 PRINT "RETURN TO MAIN"
 PRINT "FUNC_MAIN1() 関数末尾"
FEND
PRINT "CALL_TEST2.UWS ファイル末尾"
−−−−−−−−−−−−−−−−−−−−−−−−

118 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 02:27:59.59 ID:poTZwO/U.net]
>>109
…二文字か四文字半角スペースにしてくれ
書いてて見にくくない?

適宜sleep入れるのは普通のこと
何も指定しなかったら常に最速でプログラムは回っちゃうから、ボタンの反応や画面切り替えを想定したウェイトを入れるべし

従って後者もwhileの最後にターンとやらの切り替わる猶予を待たせたるか、ボタンが押せる状態か判定を入れてもいい
(もちろん組み合わせてもいい、二重操作防止のsleepと操作受付判定いれれば完璧)

119 名前:デフォルトの名無しさん [2018/10/23(火) 03:09:10.20 ID:UxSE6/em.net]
Mery使いやすいですね

>>112
ttp://kobuji.me/tips/call/
>他のマクロを呼び出し現在のマクロを終了する
ここの部分を参考にしてみて、一応動作はしているのですが、
なんとなくそうだろうとは思っていたものの、やはり問題ありますよね

メイン→ダンジョン選択→ダンジョン1→ボス戦開始(→戦闘が終わったらメインに戻る)
>>72の書き込みから意識して深い階層に行くようにして、
流れはこのように考えているのですが、再度ドツボにハマってきました

今のところの自分が考えている問題点は以下です
・「ボス戦開始」で戦闘が終了した時に「メイン」に戻る
・「ダンジョン選択」でダンジョンを選ばなかった時に「メイン」に戻る
・「戦闘開始」の2ターン目以降とをどうするか

>>114
普通のことだったんですね、それなら「ボス戦開始」のカウント処理は問題なさそうです
あとは2ターン目以降の問題ですが、どう判定させるか考えてみます

120 名前:デフォルトの名無しさん [2018/10/23(火) 06:04:39.54 ID:xet0u+mg.net]
>>115
・「ボス戦開始」で戦闘が終了した時に「メイン」に戻る
ボス戦開始の条件はボス画像を発見したら?
それとボス戦は戦闘開始.uwsを再利用できる?
戦闘開始.bmpを画像検索してるルーチンに組み込めないかな?
それができれば宝箱の判定をしたあとにExit入れればメインに戻れる

・「ダンジョン選択」でダンジョンを選ばなかった時に「メイン」に戻る
メインに戻るための条件を組み込めばできそう

・「戦闘開始」の2ターン目以降とをどうするか
どのキャラにどういう行動をさせたいのか
今の所1つのキャラに対して行動が1パターンしかないよね

121 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 07:56:13.12 ID:poTZwO/U.net]
>>115
>>61-66をよく読

122 名前: []
[ここ壊れてます]

123 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 03:06:06.77 ID:JPOPYXjO.net]
>>115

例に出したようなかたちだったら問題があるというだけで
実際に問題があるかどうかは作り方次第です。

CALL おわり.uws
EXITEXIT
だとしても
−−−−−−−−−−−−−
//おわり.uws
FUKIDASI("おわります")
SLEEP(5)
FUKIDASI()
−−−−−−−−−−−−−
だとしたら何の問題もありません。
自分が呼び出されてる元を呼んでしまうので問題がある(可能性が高くなる)わけです

戦闘が終了したら「メイン.uws」に戻る
といういいかたの通り呼び出されたところに“戻る”べきであって
メインを呼んでしまっては戻るのではなく“潜って”しまいます。

前回よりもさらに単純化していうと

PROCEDER test_proc()
 test_proc()
FEND

という状態です
再帰呼び出しといいますが
test_proc()を呼ばずに抜ける条件がなければ無限ループになります

124 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 08:38:49.61 ID:EHDjbV6E.net]
再帰呼び出しや無限ループになるならまだいいが、uwscでそれやると行き着く先はスタックオーバーフローである

前にも書いたがcallのところに内容をコピペすると考えて、一度テキストエディタ上で実際にペーストしてみて
どうなるのか確かめて見たらいいと思う
※メインを上からなぞりcallの行をcall先の中身に置き換える

というか最終的に別スクリプトに分割するのは悪いことじゃないが、そもそも質問者が期待するような
動作が早くなったり制御が楽になるなんてことはなく逆にミスの温床にしかなってないから1ファイルに戻した方がいいかも?



125 名前:デフォルトの名無しさん [2018/10/26(金) 11:32:57.00 ID:KT8sz2lK.net]
UWSCと言えば、お絵かきソフトをプロッター代わりにして
ドラゴン曲線を描いた覚えがある

126 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:14:58.57 ID:rGWXcnDl.net]
そういう使い方があったのか
目から鱗だな

127 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:35:28.21 ID:Ho1Po0zE.net]
ペイント使って最初にやったな

128 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 22:49:03.24 ID:EeaDtgcV.net]
面白いけどペイントソフトのスクリプト使った方が効率的

129 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 12:35:52.24 ID:XTWU7dAT.net]
2ヶ所クリックをctrlキー使えばいいかなーと思ってコード書いたけど、
どうしても上手くいかなくていろいろ調べたらタブで繋げばよいと知った
知らないことたくさんあるなー

130 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 12:54:19.69 ID:wR+aWlcX.net]
https://github.com/DoranekoSystems/ChkImgX_Extension

ChkImgX AutoItにも対応いたしました。

131 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 13:07:46.54 ID:QwfsTk/G.net]
なぜuwsc専用スレに他のアプリ対応を宣伝しにくるのか…ほんと頭おかしい

132 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 20:55:50.19 ID:Gkg/z3xB.net]
>>125
個人情報抜き取られたりウイルス感染したりしない?

133 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 23:58:01.63 ID:qEtCZoW0.net]
アップしてるのはただのスクリプトなので怪しいなら見てみればわかります。
外部と通信してることなど一切ないです。
ChkImgX.uwsとほぼ同じことをしてるだけですね。

134 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 09:05:29.68 ID:97yVLdc+.net]
>>127
構っちゃだめですよ



135 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 16:41:46.76 ID:4y7rUrKd.net]
pro版のデバッガも試用期間過ぎると使えなくなりますか?
あと記憶が不確かなんですが前にpro版の試用期間を過ぎたあたりの
タイミングでスクリプトが勝手にスクランブル掛かってしまったんですが
どういう条件で起きるのでしょうか
自分でスクランブル掛けてないのは間違いないです

136 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 17:29:09.86 ID:4dO ]
[ここ壊れてます]

137 名前:Mj00Y.net mailto: >>130
自分で試用期間を過ぎたって連呼してて何言ってんだ…
[]
[ここ壊れてます]

138 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 19:29:50.98 ID:WH4Iex1S.net]
「pro版のデバッガ」はそういう意味ではないかもしれない
でも普通に読むと、何言ってんだとしか言えんわなw

139 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 21:26:15.36 ID:4y7rUrKd.net]
>>131-132
試用期間過ぎたら勝手にスクランブル掛けるって
ちょっと信じ難かったので質問しました
ありがとうございました

140 名前:デフォルトの名無しさん mailto:あ [2018/11/19(月) 12:00:31.20 ID:Bnz7GW+k.net]
>>39
の見させていただいたのですが
While True //Wendまでの処理を繰り返す。
ifb chkimg("image1.bmp") //" "内に指定した画像を認識したら処理開始
btn(left,click,g_img_x,g_img_y) //画像の座標をマウスの左ボタンでクリック

elseif chkimg("image2.bmp") //1つ目の画像が見つからなかったら別の画像を検索
btn(left,click,g_img_x,g_img_y) //画像の座標をマウスの左ボタンでクリック

else //上記の条件全てに当てはまらなかった場合
print "画像が見つかりません"   //メッセージを出す。

endif

sleep(3.5) //()内の秒数待機

Wend

とありますが逆に画像が見つからなかった場合クリックする方法はありませんでしょうか?


画像が見つかればスルー

画像が見つからなかったらクリック

よろしくお願いします。

141 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 12:22:00.42 ID:FEO3fFuI.net]
質問に対してそのまま返答すると
else内でbtn使えばいいよ
ってなるんだけど
多分そういうことを聞きたいんじゃないのだと思ってる

142 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 13:23:15.10 ID:F1pQ/Nbq.net]
見つかった場合だと座標指定にchkimgのg_img_x/yが使えるけど、見つからなかった場合はどうやってということかね

あらかじめメモって数値なり変数で指定するだけだが

143 名前:デフォルトの名無しさん mailto:あ [2018/11/19(月) 13:34:46.71 ID:Bnz7GW+k.net]
ありがとうございます。
実は目的は画像が出てくるまでenterを押し続けて画像が出てきたら
enterをストップして次の行動にうつりたいのですが

While !chkimg("gazou",0,,,,,,IMG_MSK_BGR4)
KBD(VK_enter)
SLEEP(0.7)
WEND
で無限ループは可能なのですが画像がずっと見つからない場合抜け出せなくなるのですよね
どこかにbreakを入れれば抜け出せると思うのですが
理想としては10回enterを押して画像が見つからなければ次の行動にうつる
といった感じです。
前このスクリプトを聞いてかなり叩かれたのでちょっと別のスクリプトで応用しようとして聞きました。
難しいと思いますがもしよかったらお願いします。

144 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 14:20:27.92 ID:L9zCa8ZR.net]
>>137
10回押すというかそれ10回ループしたらええやん



145 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 14:45:20.37 ID:qv8H9IjA.net]
叩かれてそれから君は少しでも自分で調べようとしたの?
uwsc whileとかでググってでてくるサイトでも見りゃすぐに答え見つかるんだけど

146 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 14:54:23.56 ID:J6erJctM.net]
繰り返し回数決まっているならFor To Next文でもいいし
ヘルプ、付属サンプルみてみた?

147 名前:デフォルトの名無しさん [2018/11/19(月) 15:00:05.80 ID:lM8hlL/3.net]
叩かれたのは調べればすぐわかることを聞きっぱなしで意味もわからず使って調べようともしないからだぞ
何もわかってねーのな
ググる以前にヘルプに書いてある程度のレベルじゃん

148 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 15:18:49.89 ID:TYiI0aDU.net]
俺が難しいと思うのは137との意思疎通であって
やりたい事も実現するコードも多分 簡単だと思ってるよ

149 名前:デフォルトの名無しさん mailto:あ [2018/11/19(月) 15:35:41.43 ID:Bnz7GW+k.net]
>>140
ヘルプを結構読んでググっても付属サンプル見ても見つからないのでまたいきなり
聞くのも悪いのでしばらく経った後聞いてみました。
どうしても出てくる画像がランダムなので回数を決められないんですよね
向いてないと言われるかもしれませんがこのソフトのおかげで

150 名前:ゲームマクロでかなり生活も助かってまして
すみません また荒れると悪いのでしばらくこの辺にしておきます
[]
[ここ壊れてます]

151 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 15:47:05.45 ID:X6A/Pm1x.net]
おいおい初心者スレなのにそんなにいじめたら可愛そうだろ。
お前らは何か勘違いしているようだな。よく考えろ。

向こうのスレの>>10のこいつの書き込みから3ヶ月経ったが、whileやbreakはおろか、ifやforという基礎中の基礎すら未だ理解していない。
これはもはや自分で考えたり習得する気は微塵もなく、ただ答えを教えろ、代わりに作れと言っているだけ。

そんな奴にググれだのヘルプ見ろと言うことがそもそも無意味で間違いなんだよ。
さらに言えばそれでは向こうのスレと全く同じ流れでこのスレを建てた意味がない。
ここは初心者スレらしく、ヒントやヘルプ見ろなどと意地悪するのではなく、懇切丁寧に答えを教えてあげるべき。
ちなみに僕は初心者なのでよくわからない。

152 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 17:04:30.02 ID:+ZNV2ej4.net]
>>143
「条件を満たしたらループから抜ける」 なんてーのは基礎中の基礎以前にら自力でも考え付くだろ
わからなきゃこのワード+uwscでググれば答えが出てたぞ。まじめに調べてないだろお前

153 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 19:43:37.32 ID:XkF2k9TP.net]
正常性バイアスというか、それなりに動くものが一度出来ちゃうとそれに固執しちゃうのは初心者っぽくはある
たぶんもっと簡単に抜ける条件があるのに回数(しかも不定とかイミフ)に囚われすぎ

154 名前:デフォルトの名無しさん mailto:さs [2018/11/19(月) 20:19:06.74 ID:Bnz7GW+k.net]
>>146
回数のほかに理想としてるのは時間ですね
>>36は私なのですが
start = gettime()
While gettime() - start < 10
if chkimg("gazou",0,,,,,,IMG_MSK_BGR4)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
break
endif
WEND
>>37さんに教えてもらったこのスクリプト物凄く助かりました。
今現在も利用させてもらっています。
これは10秒の間に画像が見つからなければ次の行動に向かわせるマクロなのですが
目的のはenterを10秒間連続で押しても画像が見つからなければ
次の行動に向かうでも目的は達成できますね。
画像が見つかった場合どうしてもそれ様のスクリプトをスタートしないといけないんですよね
なので1秒ずつコレを作ってもまたenterを押してしまって
説明が下手ですみません
if 画像
見つかったときの処理
else
エンター
endif
を10個用意して試してちょっとおしいって感じだったんですけど結局途中でエンターをずっと連打
してしまうんですよね
でもこれでも別の目的のマクロでは使えてるので凄く助かっているのでuwscと
5ちゃんねるには感謝しています。



155 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 21:05:53.38 ID:+ZNV2ej4.net]
>>147
いったい何のゲームのマクロなんだ?w
有名なMMOの自動戦闘マクロなら結構作ったが、ひとつひとつ手順をつぶしていけばいつのまにか出来てるぞ

索敵してタゲった場合にゲージが出るゲームなら、それをpeekcolorでチェックしたほうが速くて確実
それと、見つかったら発見フラグを立てて、それが存在するときは「エンター動作」とやらをしなけりゃいいだけじゃないのか

156 名前:デフォルトの名無しさん mailto:さ [2018/11/19(月) 21:21:32.06 ID:Bnz7GW+k.net]
>>148
すみませんゲーム名はさすがに伏せさせてください
戦闘は一通り作れたのですがもっと手を入れたいのはいわゆる生産系と特殊な行動ですね
ある程度ゲーム内通貨を稼げる生産系マクロも作れたのですがあるものにどうしても特殊な動きが必要でさきほどの内容を聞きました

157 名前:
わからなくても特別困ってはないのですがわかればもっと便利になるといった感じです。
[]
[ここ壊れてます]

158 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 16:57:13.35 ID:Idcs0zEb.net]
見つかるまで回す処理にwhile 変数 = falseって形でフラグ使ってるけど変数増えすぎて面倒になってきた
見つかるまで繰り返す処理を実現したい

159 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 17:15:39.42 ID:A7QyS99w.net]
while !chkimg("a.bmp")とか

160 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 17:41:08.13 ID:WARGIWsC.net]
ゲームだとカウンタを使うことも多いので、結果的にフラグと同等のものが存在することが多い
ので、それで判別しちゃうとか

161 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 18:12:22.90 ID:R5CLMRXS.net]
while true
if chkimg(略) breake
見つかるまで繰り返す処理
skeep(1)
wend

超適当だけどこういうのじゃいかんの?

162 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 20:33:04.38 ID:cYYMBbSe.net]
チェックが複雑になるならメソッドで切り出すのがいいかと

while checker(...)
exec(...)
sleep(1)
wend

163 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 13:16:42.45 ID:WWSF1RwR.net]
>>151>>153のやり方が簡単に取り入れられ便利でした!ありがとうございました!

164 名前:デフォルトの名無しさん mailto:あ [2018/12/01(土) 14:30:51.62 ID:mlx9p/i1.net]
以前質問した>>137ですが

t1=GETTIME()
WHILE ((GETTIME()-t1)<3)
IF ((CHKIMG("gazou",0,,,,,,IMG_MSK_BGR4) =TRUE)) THEN BREAK
KBD(VK_enter)
SLEEP(0.7)
WEND
でついさっき解決しました
お騒がせしました
もしわからない方がいたら参考にしてください



165 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 16:43:58.50 ID:03mmxMXD.net]
=TRUEいらねーよ、ほんと何一つ身につかない奴だな…

166 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 16:55:12.78 ID:0p3QcmHs.net]
こんなゴミコードは参考にしたらあかんで

167 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 17:03:05.49 ID:GMnbtXEB.net]
こんなものに半月かかったのか…
よくこの有様で参考にしてくれとか言えるもんだな

168 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 19:53:18.31 ID:sZ8MPu8b.net]
まぁuwscの初心者スレだしいいんじゃね
普通ならpythonでChrome操作するし

169 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 19:56:00.80 ID:sZ8MPu8b.net]
Chromeの話してるの別のuwscスレだったわw

170 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 20:02:22.73 ID:jvJ8ZaHQ.net]
これはもう初心者とか言うレベルじゃねーわ
初心者でもまともな人間ならもう少しオツム使って考えるわ

171 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 21:36:21.31 ID:WGIeQzk8.net]
ソフト板から流れてきた普段プログラムなんか書かない奴のリテラシーはこんなもんじゃないの

172 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 13:56:00.28 ID:w4MaeKI9.net]
noxで以下の用にドラッグドロップを繰り返すようにしているのですが、
これをウィンドウをアクティブ化せずにバックグラウンドで行わせて手前でPCの操作を出来るようにすることは可能でしょうか?

ACW(GETID("NoxPlayer","Qt5QWindowIcon"),339,239,425,593,0)

FOR X = 1 to 5000

BTN(LEFT,DOWN,641,740,30)
MMV(641,755,11)
MMV(639,751,10)
MMV(569,653,5)
MMV(566,646,1)
BTN(LEFT,UP,565,644,3)
MMV(565,643,15)
MMV(564,600,15)
BTN(LEFT,DOWN,564,597,47)
MMV(563,597,31)
MMV(562,597,16)
MMV(518,628,16)
MMV(513,631,16)
MMV(511,633,15)
BTN(LEFT,UP,511,634,78)

NEXT

173 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 14:05:26.11 ID:AISq9KtV.net]
>>164
nox_adb使えばいいよ
本スレで話題に上がってた

174 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 14:19:38.04 ID:w4MaeKI9.net]
>>165
nox-adbでデバイスID指定して、その中の絶対座標でドラッグドロップさせればそれらすべてバックグラウンド処理できるという事でしょうか
試してみます




175 名前:ありがとうございます []
[ここ壊れてます]

176 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 19:46:55.86 ID:lZXR1qia.net]
代数の呼び出し?ってどうやるんですか?

a = "abcd"
fukidasi("a ")
SLEEP(5)

これだと aしか表示されないです。

auto hot key だと%でくくる奴です。
a := "abcd"
MsgBox, 0, , %a%
Sleep, 5000

177 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 19:51:42.50 ID:50Xsz/KL.net]
fukidasi(a)

178 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 20:05:12.07 ID:lZXR1qia.net]
>>168
サーセン

179 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 16:03:50.96 ID:lC6iyiD1.net]
デスクトップにあるaaa.txtをデスクトップのa aフォルダに移動したいのですが

a = "C:\Users\xxx\Desktop\aaa.txt"
b = "C:\Users\xxx\Desktop\a a"
DOSCMD("move " + a + " <#DBL>C:\Users\N'o'Te\Desktop\a a<#DBL>")

これだと動くのですが、下の記述だと移動してくれません。

DOSCMD("move " + a + " " + b + "")
どうすれば動のでしょうか。

180 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 16:10:54.01 ID:Lwj8mmb4.net]
>>170
まずはdoscmdの返り値で何のエラーか確認する
てかダブルクォート外しちゃったからってだけだろうけど

181 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 16:41:38.79 ID:lC6iyiD1.net]
返り値の出し方わからなかったんですけどダブルクォートつけたらうごきました。

b = "<#DBL>C:\Users\xxx\Desktop\a a<#DBL>"

これで良いぽいです。

182 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 22:25:30.23 ID:TffHzaDx.net]
DOSCMD("move <#DBL>" + a + "<#DBL> <#DBL>" + b + "<#DBL>")
とすれば "a","b" どちらのフルパス名内にスペースがあっても大丈夫

183 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 06:37:12.07 ID:/5L8Sx5/.net]
>>172
返り値てかコマンドプロンプトの標準出力だけど
doscmd自体が文字列返す関数なので変数に代入してもいいし、直接fukidasiとかに突っ込んでもおk

184 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 13:52:12.02 ID:ouJm8ahfS]
SELECTSLCTBOX関数SLCT_CHKでチェック欄が複数出る場合に、
一つだけチェック入れて「OK」アイコンをクリックした場合は
うまく行くのですが、二つ以上チェック入れて「OK」すると
DEFAULTになってしまいます。二つ以上チェック入れてそれらを
全部実行させる方法はないでしょうか?

x = 0
y = 0

SELECT SLCTBOX(SLCT_CHK,30,"test","a","b")
 CASE SLCT_1
  x = 1

 CASE SLCT_2
  y = 1

 DEFAULT
  x = 2
  y = 2
SELEND

  PRINT x
  PRINT y



185 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 18:25:52.61 ID:pINC7IeU.net]
UWSCからプログラムに初めて触れる程度の初心者です。
画像認識について質問があります
現在複数の画像を設定してクリックするというコードを書いています。
While True
ifb chking(“画像名1.bmp”)
btn()
elseif chking (“画像名2.bmp”)
btn()
....
Wend
という文章になっており無駄が多いです。
それで一度検出した画像の検出をさせないプログラムを書きたいのですがそのような事は可能なのでしょうか?その際に使用する関数などアドバイスをしていただきたいです。

186 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 18:34:28.37 ID:+1cYlkH0.net]
単純にチェック済みフラグ立てて画像認識の前にif置けばいいんでね

187 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:12:31.19 ID:pINC7IeU.net]
>>177
!!
その話詳しく聞かせて欲しいです。
While True
if chking(“画像名1.bmp”)
else
ifb chking(“画像名1.bmp”)
btn()
if chking(“画像名2.bmp”)
else
elseif chking (“画像名2.bmp”)
btn()
....
Wend
というわけではないですよね...

画像名1.bmp=0

188 名前:ネら画像認識、1なら画像認識しない
のような文を追加するのでしょうか?
[]
[ここ壊れてます]

189 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:32:53.70 ID:W2TzwIR9.net]
そういうこと
フラグの方法だと画像の枚数分フラグが必要になる

俺の提案
画像ファイル名を配列に格納してヒットしたら配列の要素にtrue格納する
当然画像検索前に要素がtrueか否かチェックする

190 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:58:12.98 ID:+1cYlkH0.net]
>>178
まあ、実装方法は色々ある
最終的には配列を引数にした関数までいくと脱初心者って感じだが自分が言ったのは

/a = true
/b = true
/略
/while true
/ if a and chkimg(“a.bmp”) then
/ btn()
/ a = false
/ endif
/ if b and chkimg(“b.bmp”) then
/略
/wend

みたいなの
行頭の/はインデントの為なので気にしないで

191 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:58:28.44 ID:pINC7IeU.net]
>>179
本当に本当にありがとうございます!!
私の考えているコードです!!
本当にC言語等学んだ事がないので助かりました。

DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp”
DIM flag[]=0,0,0

For num = 0 to length(gazou)-1
ifb flag[num]=0
ifb chking(“gazou[num]”)
btn()
num=num+1
else
num=+1
NEXT

かなり短縮することができました。
ただフラグを追加した途端文が不安になってしまいました。

192 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:03:46.42 ID:pINC7IeU.net]
>>180
あーなるほど!考えてくださりありがとうございます
a and chkingという使い方が良さそうですね
>>181の文を少し編集してみます!

193 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:08:47.81 ID:+1cYlkH0.net]
>>181
for〜nextの中で添字操作したらダメだよ
nextが勝手にやるからいらない

てかそれだと一周しかしないからwhileと組み合わせてね

194 名前:デフォルトの名無しさん [2019/01/09(水) 20:14:05.78 ID:DJbFsP/v.net]
>>183
あっー!そういえばいりませんねw
アドバイスありがとうございます
あとこれのフラグを配列化したいのですがa,b,cは定数ですよね?
配列の中に入ったままa=trueなどの情報を持てるのでしょうか?
DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp”
DIM flag[]= a,b,c

a = true
b = true
c = true

while true
for num=0 to length(gazou)-1

if a and chkimg(“gazou[num]”) then
btn()
a = false
next
wend



195 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:15:43.50 ID:pINC7IeU.net]
ごめんなさいId変わってますが同一人物です

196 名前:デフォルトの名無しさん [2019/01/09(水) 20:19:13.03 ID:DJbFsP/v.net]
ごめんなさい解決しました!
付き合ってくださった方々ありがとうございます
画像が増えるたびa=trueを追加していけば以下の文章で大丈夫そうですね
DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp”
DIM flag[]= a,b,c

a = true
b = true
c = true

while true
for num=0 to length(gazou)-1

if flag[num] and chkimg(“gazou[num]”) then
btn()
flag[num] = false
next
wend






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<331KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef