UWSC初心者用スレ

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

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

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

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

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

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

117デフォルトの名無しさん2018/10/23(火) 07:56:13.12ID:poTZwO/U
>>115
>>61-66をよく読め

118デフォルトの名無しさん2018/10/24(水) 03:06:06.77ID:JPOPYXjO
>>115

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

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

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

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

PROCEDER test_proc()
 test_proc()
FEND

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

131デフォルトの名無しさん2018/11/04(日) 17:29:09.86ID:4dOMj00Y
>>130
自分で試用期間を過ぎたって連呼してて何言ってんだ…

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

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

134デフォルトの名無しさん2018/11/19(月) 12:00:31.20ID:Bnz7GW+k
>>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

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


画像が見つかればスルー

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

よろしくお願いします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

147デフォルトの名無しさん2018/11/19(月) 20:19:06.74ID:Bnz7GW+k
>>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ちゃんねるには感謝しています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

164デフォルトの名無しさん2018/12/03(月) 13:56:00.28ID:w4MaeKI9
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

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

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

新着レスの表示
レスを投稿する