HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0122
す²スロットについて3解決


す²

リンク

2022/1/22(Sat) 14:22:04|NO.95147

https://hsp.tv/play/pforum.php?mode=all&num=95070
でいただいたスクリプトを改造したもの↓
で○をすべてそろえてもdialogが出ないのと

こんな感じに表示したいです↓(わかりやすいように変数が同じときを例に出しています)

× × ×
 7 7 7
★ ★ ★

※ わかりやすいようにwait を1500にしてます

// 柄の個数 #define MAXPATTERN 7 randomize // 柄を文字列型配列変数にとっておく sdim pattern, 64, MAXPATTERN pattern(0) = "7" pattern(1) = "★" pattern(2) = "〇" pattern(3) = "×" pattern(4) = "○" pattern(5) = "★" pattern(6) = "×" dim btnID, 3 dim isStop, 3 dim btnNum, 3 // 最初はランダム repeat 3 btnNum(cnt) = rnd(MAXPATTERN) loop objsize 100, 30 pos 70, 200 button gosub "止める", *stopbtn btnID(0) = stat pos 270, 200 button gosub "止める", *stopbtn btnID(1) = stat pos 470, 200 button gosub "止める", *stopbtn btnID(2) = stat pos (ginfo_winx - 100) / 2, 300 button gosub "スタート", *startbtn btnStart = stat // 開始時の処理 gosub *startbtn // メインループ *main // redraw 0 color 255, 255, 255 boxf color 0, 0, 0 font MSgothic, 30, 1 // スロットの数だけ repeat 3 // 順番に無限ループするには、+1してから最大数で割った余りで求められます // この場合は +1した数が MAXPATTERN = 6 になると 6÷6…0 で余りが0になって最初に戻ります if (isStop(cnt) == 0) : btnNum(cnt) = (btnNum(cnt) + 1) \ MAXPATTERN pos 110 + (cnt * 200), 30 mes pattern(btnNum(cnt)) loop //redraw 1 await 1500 goto *main stop // ------------------------------ // 各停止ボタン // ------------------------------ *stopbtn // buttonからのジャンプはstatにボタンIDが入る // statの値は命令を実行するごとに変わるので、初めに保存しておくのが好ましい id = stat repeat 3 if (id == btnID(cnt)) { isStop(cnt) = 1 objenable btnID(cnt), 0 // 押せないようにする break //←looplevが下がらないのでreturnはダメ } loop if (isStop(0) == 1 && isStop(1) == 1 && isStop(2) == 1) : gosub *allstopped return // ------------------------------ // 全部止まったとき // ------------------------------ *allstopped if pattern(btnNum(0)) ="7" { if pattern(btnNum(1)) ="7" { if pattern(btnNum(2)) ="7" { dialog "777" prokane =prokane+ (100*77) } } } if pattern(btnNum(0)) ="〇" { if pattern(btnNum(1)) ="〇" { if pattern(btnNum(2)) ="〇" { dialog "000" prokane =prokane+ (100*77) } } } objenable btnStart, 1 return // ------------------------------ // スタートボタン // ------------------------------ *startbtn // 停止フラグリセット repeat 3 isStop(cnt) = 0 objenable btnID(cnt), 1 loop objenable btnStart, 0 return



この記事に返信する


ねんねこ5787

リンク

2022/1/22(Sat) 15:35:24|NO.95154

ボタンを押したらスロットの加速が遅くなる ver.

oldhayasa=16 oldkakeru=2 //速さ hayasa=oldhayasa //hayasa*kakeru kakeru=oldkakeru // 柄の個数 #define MAXPATTERN 7 randomize // 柄を文字列型配列変数にとっておく sdim pattern, 64, MAXPATTERN pattern(0) = "7" pattern(1) = "★" pattern(2) = "〇" pattern(3) = "×" pattern(4) = "○" pattern(5) = "★" pattern(6) = "×" dim btnID, 3 dim isStop, 3 dim btnNum, 3 // 最初はランダム repeat 3 btnNum(cnt) = rnd(MAXPATTERN) loop objsize 100, 30 pos 70, 200 button gosub "止める", *stopbtn btnID(0) = stat pos 270, 200 button gosub "止める", *stopbtn btnID(1) = stat pos 470, 200 button gosub "止める", *stopbtn btnID(2) = stat pos (ginfo_winx - 100) / 2, 300 button gosub "スタート", *startbtn btnStart = stat // 開始時の処理 gosub *startbtn // メインループ *main redraw 0 color 255, 255, 255 boxf color 0, 0, 0 font MSgothic, 30, 1 // スロットの数だけ repeat 3 // 順番に無限ループするには、+1してから最大数で割った余りで求められます // この場合は +1した数が MAXPATTERN = 6 になると 6÷6…0 で余りが0になって最初に戻ります if (isStop(cnt) == 0) : btnNum(cnt) = (btnNum(cnt) + 1) \ MAXPATTERN pos 110 + (cnt * 200), 20 ;絵柄(手間がかかるけどこれで良し) if btnNum(cnt)=0:mes pattern(6) if btnNum(cnt)=1:mes pattern(0) if btnNum(cnt)=2:mes pattern(1) if btnNum(cnt)=3:mes pattern(2) if btnNum(cnt)=4:mes pattern(3) if btnNum(cnt)=5:mes pattern(4) if btnNum(cnt)=6:mes pattern(5) pos 110 + (cnt * 200), 50 mes pattern(btnNum(cnt)) pos 110 + (cnt * 200), 80 if btnNum(cnt)=0:mes pattern(1) if btnNum(cnt)=1:mes pattern(2) if btnNum(cnt)=2:mes pattern(3) if btnNum(cnt)=3:mes pattern(4) if btnNum(cnt)=4:mes pattern(5) if btnNum(cnt)=5:mes pattern(6) if btnNum(cnt)=6:mes pattern(0) loop redraw 1 await hayasa goto *main stop // ------------------------------ // 各停止ボタン // ------------------------------ *stopbtn // buttonからのジャンプはstatにボタンIDが入る // statの値は命令を実行するごとに変わるので、初めに保存しておくのが好ましい id = stat repeat 3 if (id == btnID(cnt)) { isStop(cnt) = 1 objenable btnID(cnt), 0 // 押せないようにする hayasa=hayasa*kakeru break //←looplevが下がらないのでreturnはダメ } loop if (isStop(0) == 1 && isStop(1) == 1 && isStop(2) == 1) : gosub *allstopped return // ------------------------------ // 全部止まったとき // ------------------------------ *allstopped if pattern(btnNum(0)) ="7" { if pattern(btnNum(1)) ="7" { if pattern(btnNum(2)) ="7" { dialog "777" prokane =prokane+ (100*77) } } } if pattern(btnNum(0)) ="〇" { if pattern(btnNum(1)) ="〇" { if pattern(btnNum(2)) ="〇" { dialog "000" prokane =prokane+ (100*77) } } } objenable btnStart, 1 return // ------------------------------ // スタートボタン // ------------------------------ *startbtn // 停止フラグリセット //速さ hayasa=oldhayasa //hayasa*kakeru kakeru=oldkakeru repeat 3 isStop(cnt) = 0 objenable btnID(cnt), 1 loop objenable btnStart, 0 return



ねんねこ5787

リンク

2022/1/22(Sat) 15:36:40|NO.95155

先ほどスクリプトを間違えていたので、修正です。

// 柄の個数 #define MAXPATTERN 7 randomize // 柄を文字列型配列変数にとっておく sdim pattern, 64, MAXPATTERN pattern(0) = "7" pattern(1) = "★" pattern(2) = "〇" pattern(3) = "×" pattern(4) = "○" pattern(5) = "★" pattern(6) = "×" dim btnID, 3 dim isStop, 3 dim btnNum, 3 // 最初はランダム repeat 3 btnNum(cnt) = rnd(MAXPATTERN) loop objsize 100, 30 pos 70, 200 button gosub "止める", *stopbtn btnID(0) = stat pos 270, 200 button gosub "止める", *stopbtn btnID(1) = stat pos 470, 200 button gosub "止める", *stopbtn btnID(2) = stat pos (ginfo_winx - 100) / 2, 300 button gosub "スタート", *startbtn btnStart = stat // 開始時の処理 gosub *startbtn // メインループ *main redraw 0 color 255, 255, 255 boxf color 0, 0, 0 font MSgothic, 30, 1 // スロットの数だけ repeat 3 // 順番に無限ループするには、+1してから最大数で割った余りで求められます // この場合は +1した数が MAXPATTERN = 6 になると 6÷6…0 で余りが0になって最初に戻ります if (isStop(cnt) == 0) : btnNum(cnt) = (btnNum(cnt) + 1) \ MAXPATTERN pos 110 + (cnt * 200), 20 ;絵柄(手間がかかるけどこれで良し) if btnNum(cnt)=0:mes pattern(6) if btnNum(cnt)=1:mes pattern(0) if btnNum(cnt)=2:mes pattern(1) if btnNum(cnt)=3:mes pattern(2) if btnNum(cnt)=4:mes pattern(3) if btnNum(cnt)=5:mes pattern(4) if btnNum(cnt)=6:mes pattern(5) pos 110 + (cnt * 200), 50 mes pattern(btnNum(cnt)) pos 110 + (cnt * 200), 80 if btnNum(cnt)=0:mes pattern(1) if btnNum(cnt)=1:mes pattern(2) if btnNum(cnt)=2:mes pattern(3) if btnNum(cnt)=3:mes pattern(4) if btnNum(cnt)=4:mes pattern(5) if btnNum(cnt)=5:mes pattern(6) if btnNum(cnt)=6:mes pattern(0) loop redraw 1 await 1500 goto *main stop // ------------------------------ // 各停止ボタン // ------------------------------ *stopbtn // buttonからのジャンプはstatにボタンIDが入る // statの値は命令を実行するごとに変わるので、初めに保存しておくのが好ましい id = stat repeat 3 if (id == btnID(cnt)) { isStop(cnt) = 1 objenable btnID(cnt), 0 // 押せないようにする break //←looplevが下がらないのでreturnはダメ } loop if (isStop(0) == 1 && isStop(1) == 1 && isStop(2) == 1) : gosub *allstopped return // ------------------------------ // 全部止まったとき // ------------------------------ *allstopped if pattern(btnNum(0)) ="7" { if pattern(btnNum(1)) ="7" { if pattern(btnNum(2)) ="7" { dialog "777" prokane =prokane+ (100*77) } } } if pattern(btnNum(0)) ="〇" { if pattern(btnNum(1)) ="〇" { if pattern(btnNum(2)) ="〇" { dialog "000" prokane =prokane+ (100*77) } } } objenable btnStart, 1 return // ------------------------------ // スタートボタン // ------------------------------ *startbtn // 停止フラグリセット repeat 3 isStop(cnt) = 0 objenable btnID(cnt), 1 loop objenable btnStart, 0 return



す²

リンク

2022/1/22(Sat) 15:49:03|NO.95156

おかげで解決しました。ありがとうございます。
あと○の件は○が〇だったり○だったりばらばらで、統一したらないりました



ONION software Copyright 1997-2023(c) All rights reserved.