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