[表示 : 全て 最新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/

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

75 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 23:37:36.28 ID:QpJkHdff.net]
>>73
>全自動でゲーム進めるってのは
>初学者にはかなり難しいテーマ
同意

単純なクリック連打じゃなくて
ゲームの内容を判断しながら分岐させるのは
ゲームのAIレベルだから難しい

76 名前:デフォルトの名無しさん [2018/10/20(土) 00:19:23.65 ID:6OPiVTnP.net]
今回も修正したuwsのファイルをアップしてみました
無事に動作はしていますが、変なところがあればご指摘いただければと思います
ttps://32.gigafile.nu/1027-bf28bd15518fed74ae750f229487ea8c8

悩み中.uwsというファイルがありますが、
同じ画像を認識したとしても処理は異なるようにするにはどうしたら良いのでしょうか
現在はSLEEPを使用して1回目の表示と2回目の表示の間隔を空けて強引に処理させてます

>>71
ある程度は整理できてるのですが、処理を開始するためにどこの画像を認識させようかの判断ができないんですよね
ダンジョンの背景とかだと使い回しで別のダンジョンと間違えられても困るし…

>>72
書き込んだあとちょうどその部分に変更を加えていました
おかげで処理は高速になったと思われます…(実感はある)

>>73
全自動というのは無理だと思っているので、移動以外は自動化できないかなって思ってます
一応今のところ8割はできてると思います

77 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 00:57:49.14 ID:69MHWzaM.net]
>>75
>同じ画像〜
させたい処理が違うなら何かが違うんでしょとしか言えないが
画面の見た目類で判断しにくく、仮に交互に繰り返すならカウンタ/フラグ変数を持って切り替えるのはどうかな?

これに限らず全てchkimgで判断させるのは無理があるはず

78 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 01:01:01.66 ID:90xm7L12.net]
>>75
ボスの画像を認識した回数をカウントして処理を分ければいいんじゃない
で、パターンを戻したくなったらカウントをリセットすればいい
行動パターンがあまりにも多かったら大変だけど

ここからは今は重要なことじゃないし
処理が早くなるわけではないからわからなかったらスルーしてくれ

1つの行動を1つの関数にするのはいいんだけどファイルを分ける必要あるかな
例えばダンジョン1宝箱3とか他のダンジョンなりスクリプトで再利用する?
それぞれのファイルで毎回全く同じCALLや変数の初期化を
何度も書くのは無駄だし間違いの元になることもある
変数のスコープやProcedureやFunctionや値渡しについて知ればもっとよくなるとおもう

79 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 01:01:35.72 ID:90xm7L12.net]
しまった、また長文書いてる間に先越されたw

80 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 03:46:56.86 ID:I8y7CiS+ ]
[ここ壊れてます]

81 名前:.net mailto: 一部のbotが非常に高度なものであるのは間違いないけど。
ここの連中が作った全自動(笑)マクロなんてゴミがほとんどじゃないの。
[]
[ここ壊れてます]

82 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 09:18:37.52 ID:q084eIUp.net]
とゴミが申しております

そういうのは本スレでやってね

83 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 10:13:45.64 ID:ac1pPfcT.net]
たかがUWSC作ったマクロしか組めない程度の人間のマクロ技術がゲーム制作やゲームAIと同じとはとても思えないわ。
まあ雑魚同士で自画自賛しあってればいいんじゃない。



84 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 10:25:26.46 ID:q084eIUp.net]
といちいち初心者スレ監視してる雑魚が申しております
自称天才意識高い系プロは本スレで暴れててね

85 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 03:47:50.14 ID:gVw834nh.net]
初心者スレでこれは草

86 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 11:27:18.44 ID:ugGKSKgn.net]
寂しがり屋さんなのかな?
本スレそれほど過疎ってるわけでもないのに
スレ分けてよかったかな今のところは

87 名前:デフォルトの名無しさん [2018/10/22(月) 00:09:48.52 ID:rGA5crV5.net]
ttps://17.gigafile.nu/1029-dbd9d6de3c7c9d32c382d1be973850e30

カウントについて調べていろいろやってみたのですが、
「ボス戦ターン1()」を繰り返したり、
「ボス戦ターン2()」まで行っても「ボス戦ターン1()」に戻ったりしてしまいます
カウントの処理について教えていただきたいです

それと、最後の部分にある「CALL」ですが
ttp://kobuji.me/tips/call/
ここを参考にしてみたのですが、このCALLの使い方はあっているのでしょうか?
(前回一番上に記載するやり方だと教えてもらいましたが…)

88 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 00:42:44.65 ID:ktdTMJw1.net]
>>85
カウント以前の問題が多すぎる
インデントを入れると自分がどれだけ変なコード組んでるかちょっと分かるかも?

89 名前:デフォルトの名無しさん [2018/10/22(月) 01:12:45.93 ID:rGA5crV5.net]
>>86
申し訳ないのですが、他のサイトを参考に組み立てたもので、そこから試行錯誤してるのですがうまくいかないのです
いまも随時修正は加えているのですが、問題の箇所を具体的に教えていただけるとありがたいです

90 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 01:15:13.19 ID:ktdTMJw1.net]
>>87
>>56-86に書いてある

その上で問題が認識しづらいのは「インデントのせいかも」というアドバイスをしたので、まずはインデントを入れてみてくれ

91 名前:デフォルトの名無しさん [2018/10/22(月) 01:17:20.48 ID:rGA5crV5.net]
>>88
どこにカウントのことが書いてあるのでしょうか?

92 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 01:38:22.25 ID:ktdTMJw1.net]
>>89
カウント以前の問題だと>>86に書いているよね
カウントの処理が変なんじゃなくて、依然として最初期から指摘してるIF/IFBの書き方に問題があるということ

まずそこを直してくれないと次のステップに進むアドバイスは自分からはできない

93 名前:デフォルトの名無しさん [2018/10/22(月) 02:06:06.56 ID:rGA5crV5.net]
教えを請う立場で申し訳ないですし、自分で問題解決まで知識を蓄えろというのはごもっともなのですが、
自分なりにできてるところはこちらで質問しておりませんし、いまも試行錯誤したうえで行き詰まってまして、
先ほどアップしたファイルはその試行錯誤の末、ぐちゃぐちゃになってるのは自分でも理解しています
ただ、自分なりにいろいろ手を尽くしても解決することができなかったので、
できれば具体的な解決策もしくは参考になるページを提示していただけると助かります

今回で言うとカウンタを利用して
カウント0の時、Aの画像を認識するまでループ、認識できたら1の行動(カウント+1)でループを抜け出して次の処理へ
カウント1の時、Aの画像を認識するまでループ、認識できたら2の行動(カウント+1)でループを抜け出して次の処理へ
カウント2の時、Aの画像を認識するまでループ、認識できたら3の行動(カウント+1)でループを抜け出して次の処理へ
という形にしたいのですが、カウントと画像認識を組み合わせた時の書き方、条件分岐の策がわからず、
検索しても目的の処理について出てこないので困ってるんです



94 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 02:12:15.48 ID:ktdTMJw1.net]
>>91
だから具体的な解決策が「インデントを入れる」なんだけど
ただ、それだけでこの数日どれだけ無駄にしてたか理解できると思うよ

95 名前:デフォルトの名無しさん [2018/10/22(月) 02:18:15.10 ID:rGA5crV5.net]
>>92
それなら参考にしたいので試しに自分がアップしたファイルで、
>>92さんのインデントを入れたものを見せていただきたいです

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 名前:ありがとうございます []
[ここ壊れてます]






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

前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