2020年8月頃から、LINE友だちの名前がツムツムのゲーム内でも自分で設定した表示になりました。それにより、友だちの名前に特定のマークを付けて、「そのマークがあったら送信を飛ばす」という事が可能になりました。以前からの方法(リア友を非表示削除する・ゼロスコアのリア友をランキング送信から飛ばす)よりも確実で使いやすくなったと思います。
この【マーク飛ばし=Skip】のプログラムを作成しましたのでご紹介します。こちらはランキングからハートを送信するプログラムです。関数にしてお使いください。
■プログラム【Skipハート送信】(こちらの記事です)
■プログラム【Skip高速ハート送信】
■プログラム【Skip回復待ちハート送信】…coming soon
【Skipハート送信】は【Skip高速ハート送信】からなるべく変数を取り除いたプログラムです。送信時間は若干長くなりますが、【Skip高速ハート送信】よりも簡単になっていると思います。
【Skip回復待ちハート送信】はskipと回復待ちを組み合わせたプログラムです。
いずれのプログラムも初心者レベルではありませんので、詳細な説明は省略して解説します。ある程度は知識が必要な為うまく動かない場合はご自身で修正出来る方にお勧めします。こちらを読んでご自分なりのプログラムに作り替えてご使用ください。
概要
準備として、ツムツムのランキングに載っているがハートを送信したくない友だちに、LINEで名前の先頭にマーク飛ばし用のマークを付けておきます。お勧めは画像認識がやりやすい【□】(白い四角)です。
プログラムを実行すると、マークを付けた友だちをスキップしてハートを送信しません。このプログラムはハートが回復していない(青)場合はそのままスルーしてランキング送信を続けます。
Skipする為には、ハートとSkipマークを確実に画像認識する必要があります。スワイプにズレがあると同じ段でのハートとSkip両方の画像認識ができません。その為、スワイプは1人ずつとしました。4人スワイプで変数を使用して4段分を分ける事も可能ですが、プログラムがより複雑になる事、裏画像認識を使用すれば速度は落ちない事により1人スワイプを採用しました。
(1)ズレ無し。ハートとSkip両方見える
(2)この程度のズレならば両方見える
(3)ハートは見えるがSkipマークが見えない
(1)と(2)は良いが(3)ではSkipプログラムが正確に動かない。つまり(3)にならない様にズレ補正スワイプが必須。
ズレ補正スワイプについてはこちらをご覧ください。
送信の様子
※音量にご注意ください
こちらの動画はプログラム【Skip高速ハート送信】(スクショにBMP使用)です。
送信の様子は当プログラムと同じですが、送信時間が変わります。
■【Skipハート送信】BMP :H291+S16+T4=合計311件で18分5秒
■【Skipハート送信】API :H291+S16+T1=合計308件で16分33秒
■【Skip高速ハート送信】BMP:H292+S16+T1=合計309件で14分2秒
■【Skip高速ハート送信】API:H294+S16+T1=合計311件で14分4秒
送信時間は端末により違いますので参考程度にお考えください。
変数
このプログラムで使用した変数です。
変数 | 値 | 内容 |
end | 91 | ランキング最下段送信 |
100 | ランキング2位~最下段2番目 | |
101 | 1位 | |
Hposi | ハートの位置 |
ログ作成有りの場合はこれ以外に各種カウント用の変数などがあります。
座標
このプログラムで使用する座標です。端末ごとに座標は変わりますので自分の端末に当てはめて考えてください。
このプログラムではランキング4人分を1~4段目として考える
※解像度:720×1280の端末使用の場合:画像認識の作り方とスクショの位置によって座標は変わる
■2段目ハートの画像認識位置→y:557
■ランキング枠2段目の画像認識位置→y:532
■ランキング枠と2段目の差:557-532=25
■自分2段目画像認識の位置→y:569
ハートが無くてランキング枠や自分画像認識をした際には差分を足すことでスワイプ判定に使える。つまり、ランキング枠2段目+25=2段目ハート位置となる。
自分画像認識では-37すれば2段目ハート位置となるが、1度スワイプが逆になる程度は問題ない。プログラム簡略化の為に自分判定では調整無し=必ず短めスワイプとした。
ログ作成なしのプログラム
移動元 | No. | プログラム | 概要 | 判定 | 移動先 | 補足 |
1 | 変数 | end=91 | ↓ | |||
42 | 2 | 区分 | 【91】最下段ハート送信 | |||
3 | 待機 | ↓ | ||||
4 | 画像認識 | ハート画像認識 | 成功 | 5 | 3段目 | |
失敗 | 6 | |||||
4 | 5 | 画像認識 | skip画像認識 | 成功 | 11 | 3段目 |
失敗 | 8 | |||||
4 | 6 | 画像認識 | ランキング[枠]画像認識 | 成功 | 11 | 3段目 |
失敗 | 7 | |||||
6 | 7 | 画像認識 | 自分画像認識 | 成功 | 11 | 3段目 |
失敗 | 40 | 失敗はエラー処理へ | ||||
5 | 8 | タッチ操作 | ハートタップ | ↓ | 画像認識の結果をタップ | |
9 | タッチ操作 | OKタップ | ↓ | |||
10 | タッチ操作 | ミッションタップ | ↓ | |||
5,6,7 | 11 | 変数 | end=100 | 13 | スワイプなし | |
12 | 区分 | 【91】最下段ハート送信 | — | |||
11,42 | 13 | 区分 | 1人ハート送信 | ↓ | ||
27,28 | 14 | 待機 | ↓ | |||
15 | 画像認識 | ハート画像認識 | 成功 | 16 | 2段目 | |
失敗 | 18 | |||||
15 | 16 | 変数 | Hposi=num:@lastmatch.y | 17 | ハートy値 | |
16 | 17 | 画像認識 | skip画像認識 | 成功 | 25 | 2段目 |
失敗 | 21 | |||||
15 | 18 | 画像認識 | ランキング[枠]画像認識 | 成功 | 20 | 2段目 |
失敗 | 19 | |||||
18 | 19 | 画像認識 | 自分画像認識 | 成功 | 20 | 2段目 |
失敗 | 40 | |||||
18,19 | 20 | 変数 | Hposi+25 | 25 | ||
17 | 21 | タッチ操作 | ハートタップ | ↓ | 横600,縦Hposi位置 | |
22 | タッチ操作 | OKタップ | ↓ | |||
23 | 画像認識 | 1位画像認識 | 成功 | 30 | 1段目 ・ 裏画像認識(スクショ無し) | |
失敗 | ↓ | |||||
24 | タッチ操作 | ミッションタップ | 26 | |||
17,20 | 25 | 画像認識 | 1位画像認識 | 成功 | 30 | 1段目 |
失敗 | 26 | |||||
24,25 | 26 | IF | 長短スクロールどちら? | >545 | 27 | ハート位置・枠位置から決定 |
≦545 | 28 | ジャストは557だがスワイプ精度により長めを | ||||
26 | 27 | 記録 | 1人分短めスクロール | 14 | ||
26 | 28 | 記録 | 1人分長めスクロール | 14 | ||
29 | 区分 | 1人ハート送信 | — | |||
23,25 | 30 | 変数 | 終了フラグ end=101 | ↓ | ||
46 | 31 | ループ | 1位送信 | ↓ | ||
32 | タッチ操作 | ミッションタップ | ↓ | |||
42 | 33 | 待機 | ↓ | |||
34 | 画像認識 | ランキング画像認識 | 成功 | ↓ | 枠ではない | |
失敗 | 40 | |||||
35 | 画像認識 | skip画像認識 | 成功 | 49 | 1段目 | |
失敗 | 36 | |||||
35 | 36 | 画像認識 | ハート画像認識 | 成功 | 37 | 1段目 タップ有 |
失敗 | 49 | |||||
36 | 37 | タッチ操作 | OKタップ | ↓ | ||
38 | ループ | 1位送信 | 31,↓ | |||
39 | スクショ | スクリーンショット | 48 | 15回ループしても復帰出来なければ諦める | ||
7,19,34 | 40 | ループ | エラー処理ループ | ↓ | ||
41 | 画像認識 | ランキング画像認識 | 成功 | 42 | 枠ではない | |
失敗 | 43 | |||||
41 | 42 | SW | 復帰先を選択 | end=100 | 13 | 1人ハート送信へ ※1 |
end=91 | 2 | 最下段ハート送信へ | ||||
end=101 | 33 | 1位送信へ | ||||
41 | 43 | 画像認識 | OKリトライ画像認識 | 成功 | 45 | |
失敗 | ↓ | |||||
44 | 画像認識 | とじる画像認識 | 成功 | 45 | ||
失敗 | ↓ | |||||
43,44 | 45 | タッチ操作 | ミッションタップ | ↓ | ||
46 | ループ | エラー処理ループ | 40,↓ | |||
47 | スクリーンショット | ↓ | 10回ループしても復帰出来なければ諦める | |||
39 | 48 | 待機 | 中断 | |||
35,36 | 49 | 待機 | 完了 |
ログ作成有りのプログラム
Skipした回数とハートをスルー(自分&ハートが回復していない)した回数もカウントします。但しスルーとSkip両方が該当する場合にはスルーのみをカウントし、1位がスルーの場合はカウント無しです。また、エラーがあった際は重複してカウントする場合もあります。
移動元 | No. | プログラム | 概要 | 判定 | 移動先 | 補足 |
1 | 変数 | 最初に0設定 | ↓ | ※1 | ||
51 | 2 | 区分 | 【91】最下段ハート送信 | |||
3 | 待機 | ↓ | ||||
4 | 画像認識 | ハート画像認識 | 成功 | 5 | 3段目 | |
失敗 | 7 | |||||
4 | 5 | 画像認識 | skip画像認識 | 成功 | 6 | 3段目 |
失敗 | 10 | |||||
5 | 6 | 変数 | Scnt+1 | 14 | ||
4 | 7 | 画像認識 | ランキング[枠]画像認識 | 成功 | 9 | 3段目 |
失敗 | 8 | |||||
7 | 8 | 画像認識 | 自分画像認識 | 成功 | 9 | 3段目 |
失敗 | 48 | 失敗はエラー処理へ | ||||
7,8 | 9 | 変数 | Tcnt+1 | 14 | ||
5 | 10 | タッチ操作 | ハートタップ | ↓ | 画像認識の結果をタップ | |
11 | 変数 | Hcnt+1 | ↓ | |||
12 | タッチ操作 | OKタップ | ↓ | |||
13 | タッチ操作 | ミッションタップ | ↓ | |||
6,9 | 14 | 変数 | end=100 | 16 | スワイプなし | |
15 | 区分 | 【91】最下段ハート送信 | — | |||
14,51 | 16 | 区分 | 1人ハート送信 | ↓ | ||
32,33 | 17 | 待機 | ↓ | |||
18 | 画像認識 | ハート画像認識 | 成功 | 19 | 2段目 | |
失敗 | 22 | |||||
18 | 19 | 変数 | Hposi=num:@lastmatch.y | 20 | ハートy値 | |
19 | 20 | 画像認識 | skip画像認識 | 成功 | 21 | 2段目 |
失敗 | 25 | |||||
20 | 21 | 変数 | Scnt+1 | 30 | ||
18 | 22 | 画像認識 | ランキング[枠]画像認識 | 成功 | 24 | 2段目 |
失敗 | 23 | 失敗はエラー処理へ | ||||
22 | 23 | 画像認識 | 自分画像認識 | 成功 | 24 | 2段目 |
失敗 | 48 | |||||
22,23 | 24 | 変数 | Tcnt+1 , Hposi+25 | 30 | ※2 | |
20 | 25 | タッチ操作 | ハートタップ | ↓ | 横600,縦Hposi位置 | |
26 | 変数 | Hcnt+1 | ↓ | |||
27 | タッチ操作 | OKタップ | ↓ | |||
28 | 画像認識 | 1位画像認識 | 成功 | 35 | 1段目 ・ 裏画像認識(スクショ無し) | |
失敗 | ↓ | |||||
29 | タッチ操作 | ミッションタップ | 31 | |||
21,24 | 30 | 画像認識 | 1位画像認識 | 成功 | 35 | 1段目 |
失敗 | 31 | |||||
29,30 | 31 | IF | 長短スクロールどちら? | >545 | 32 | ハート位置・枠位置から決定 |
≦545 | 33 | ジャストは557だがスワイプ精度により長めを多くした | ||||
31 | 32 | 記録 | 1人分短めスクロール | 17 | ||
31 | 33 | 記録 | 1人分長めスクロール | 17 | ||
34 | 区分 | 1人ハート送信 | — | |||
28,30 | 35 | 変数 | 終了フラグ end=101 | ↓ | ||
46 | 36 | ループ | 1位送信 | ↓ | ||
37 | タッチ操作 | ミッションタップ | ↓ | |||
51 | 38 | 待機 | ↓ | |||
39 | 画像認識 | ランキング画像認識 | 成功 | ↓ | 枠ではない | |
失敗 | 48 | |||||
40 | 画像認識 | skip画像認識 | 成功 | 41 | 1段目 | |
失敗 | 42 | |||||
40 | 41 | 変数 | Scnt+1 | 58 | ||
40 | 42 | 画像認識 | ハート画像認識 | 成功 | 44 | 1段目 |
失敗 | 43 | |||||
42 | 43 | 変数 | Tcnt+1 | 58 | これ削除してもいいかも? | |
42 | 44 | 変数 | Hcnt+1 | ↓ | ||
45 | タッチ操作 | OKタップ | ↓ | |||
46 | ループ | 1位送信 | 36,↓ | |||
47 | スクショ | スクリーンショット | 58 | 15回ループしても復帰出来なければ諦める | ||
8,23,39 | 48 | ループ | エラー処理ループ | ↓ | ||
49 | 変数 | Ecnt+1 | ↓ | |||
50 | 画像認識 | ランキング画像認識 | 成功 | 51 | 枠ではない | |
失敗 | 52 | |||||
50 | 51 | SW | 復帰先を選択 | end=100 | 16 | 1人ハート送信へ ※3 |
end=91 | 2 | 最下段ハート送信へ | ||||
end=101 | 38 | 1位送信へ | ||||
50 | 52 | 画像認識 | OKリトライ画像認識 | 成功 | 54 | |
失敗 | ↓ | |||||
53 | 画像認識 | とじる画像認識 | 成功 | 54 | ||
失敗 | ↓ | |||||
52,53 | 54 | タッチ操作 | ミッションタップ | ↓ | ||
55 | ループ | エラー処理ループ | 48,↓ | |||
56 | スクリーンショット | ↓ | 10回ループしても復帰出来なければ諦める | |||
57 | 変数 | err=2 | ↓ | エラー有、途中で終了 | ||
41,43,47 | 58 | 区分 | 送信完了 ログ作成 | ↓ | ||
59 | 変数 | 送信前待機の時間を記録 | ↓ | ※4 | ||
60 | 変数 | 送信ログ作成 | ↓ | ※5 | ||
61 | IF | 送信前待機が190秒以上はエラー | delay<190 | 62 | 通常180秒 | |
delay≧190 | 63 | |||||
61 | 62 | 変数 | 遅延ゼロにする delay=0 | 64 | ||
61 | 63 | 変数 | 遅延秒数設定 エラー文字列設定 | 64 | ※6 | |
62,63 | 64 | クリップボード | 完了 | |||
65 | 区分 | 送信完了 ログ作成 | 完了 |
※1
ログ作成とエラー制御が不要の場合は【end=91】のみでも可能
※2
Tcnt+1 , Hposi=lastmatch.y+25:スワイプ判定用に+25して、ランキング枠のy値→2段目ハート位置に
※4(プログラムスクショは59)
ログ作成でstmの値が変わる前に送信前待機の時間を記録
※5(プログラムスクショは60)
送信ログ作成
※6(プログラムスクショは63)
遅延があったなら[err=3]をセットし(フルオートプログラムで使用)、送信ログに遅延秒数を追加
まとめと修正情報
とりあえずBasic版も作成しました!
半分は自分自身の忘備録となっております。間違い・記入漏れ・説明不足等ありましたらご指摘ください。
コメント
マーク飛ばしが使えないのでどうやったらリア友を飛ばせますか?
*リア友を非表示削除して、ランキングに表示しない様にする
*(リア友がスコア0の場合)ランキングのゼロスコアの人に送信しないプログラムを作る
*自分が親型になって、ランキングからハート送信しない
私が思いつくのは、こんな感じです。
そうなんですね(>_<)