|
 |
|
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

| |
|
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

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