メモ(とりかさんのスロットスクリプト)
投稿者:
cdv30200
投稿日:2014/02/12 22:40
メモ(とりかさんのスロットスクリプト)
自分用にちょっと変えたもの
1st
3rd
ペンクエ
ツイート
自分用にちょっと変えたもの
#背景画像
showImage(166958)
####スロット関数コピペここから
#配列生成関数
def myDataIni (myMoji)
resArray = createArray()
resArray = splitString(myMoji, ",")
ic = 0
while (ic < getArrayLength(resArray))
STR = toNumber(resArray[ic])
Get = resArray[ic]
if (STR == Get)
resArray[ic] = STR
end
if (Get == "true")
resArray[ic] = true
end
if (Get == "false")
resArray[ic] = false
end
ic = ic + 1
end
return resArray
end
#初期値割り当て
FD = myDataIni("散歩に行く,食事をする,テレビを見る,吐く,眠いので寝る,誰かを殴る")
SLOT = myDataIni("0,50,200")
SLOT[0] = 50;SLOT[1] = 100;SLOT[2] = 150;
#スロット回転アルファ
def SPtCTRL (SP, Num)
SP = SP + 1
if (SP >= Num)
SP = SP - Num
end
return SP
end
#スロット初期値乱数生成
def SPtIni(Num)
SPtArr = createArray()
SPt1 = rand(Num)
SPtArr[0] = SPtCTRL(SPt1, Num)
SPtArr[1] = SPtCTRL(SPt1 + 1, Num)
SPtArr[2] = SPtCTRL(SPt1 + 2, Num)
return SPtArr
end
#さいころスロット
def Rolling(FDt,SLOTt,STime,Xp,Yp)
#スロット初期変数
SPtR = SPtIni(6)
PosX = Xp
PosY = Yp
RollPt = 0
RollSPD = 18
StopFlag = 0
STimeCT = 0
SPt0 = SPtR[0]
SPt1 = SPtR[1]
SPt2 = SPtR[2]
startInput()
RolledFlag = 0
speak("今から何をしますか?")
##回転処理同時にスロットの文字色変える
setTextFontColor(0, 0, 0)
while (RolledFlag == 0)
#スロット回転処理
setTextFontSize(25 - RollPt / 2)
t0 = createText(PosX, PosY + SLOTt[0], 500, 100)
if (RollPt > 25)
setTextFontSize(50 - RollPt / 2)
else
setTextFontSize(25 + RollPt / 2)
end
t1 = createText(PosX, PosY + SLOTt[1] - RollPt, 500, 100)
setTextFontSize(RollPt / 2)
t2 = createText(PosX, PosY + SLOTt[2] - RollPt, 500, 100)
setText(t0, FDt[SPt0])
setText(t1, FDt[SPt1])
setText(t2, FDt[SPt2])
#クリック時の処理?
if (hasInput())
takeInput()
if (isMouseDown())
StopFlag = 1
end
end
if (STimeCT > STime)
#強制停止
StopFlag = 1
end
if (StopFlag == 1)
if(rand(2) == 0 && RollSPD > 1)
RollSPD = RollSPD - 1
end
end
if (RollSPD == 1 && RollPt == 25)
playSound(179851)
setTextFontSize(28)
RolledFlag = 1
else
#回転進行
waitTime(50)
STimeCT = STimeCT + 1
RollPt = RollPt + RollSPD
if (RollPt > 50)
playSound(67541)
RollPt = RollPt - 50
SPt0 = SPtCTRL (SPt0, 6)
SPt1 = SPtCTRL (SPt1, 6)
SPt2 = SPtCTRL (SPt2, 6)
end
#描画削除
deleteText(t0)
deleteText(t1)
deleteText(t2)
end
end
endInput()
return SPt1
end
#メイン
Mode = 1
while(Mode == 1)
SPt = Rolling(FD,SLOT,100,100,100)
##回転終了と同時に文字色を白に戻す
setTextFontColor(255, 255, 255)
speak(FD[SPt] + "事にしました")
if (SPt == 3)
openActivityFeedWindow(FD[SPt] + "『大丈夫ですか?』")
end
SL = speakWithSelect(2,"はい","いいえ","続けますか?")
if (SL == 1)
goEnding()
end
deleteTextAll()
end
####スロット関数コピペここまで1st
#初期値割り当て
FD = myDataIni("りんご,たまご,ぶどう,まじたい,Rmake,とりか")
SLOT = myDataIni("0,50,200")
SLOT[0] = 50;SLOT[1] = 100;SLOT[2] = 150;
#スロット回転アルファ
def SPtCTRL (SP, Num)
SP = SP + 1
if (SP >= Num)
SP = SP - Num
end
return SP
end
#スロット初期値乱数生成
def SPtIni(Num)
SPtArr = createArray()
SPt1 = rand(Num)
SPtArr[0] = SPtCTRL(SPt1, Num)
SPtArr[1] = SPtCTRL(SPt1 + 1, Num)
SPtArr[2] = SPtCTRL(SPt1 + 2, Num)
return SPtArr
end
#さいころスロット
def Rolling(FDt,SLOTt,STime,Xp,Yp)
#スロット初期変数
SPtR = SPtIni(6)
PosX = Xp
PosY = Yp
RollPt = 0
RollSPD = 18
StopFlag = 0
STimeCT = 0
SPt0 = SPtR[0]
SPt1 = SPtR[1]
SPt2 = SPtR[2]
startInput()
RolledFlag = 0
while (RolledFlag == 0)
#スロット回転処理
setTextFontSize(25 - RollPt / 2)
t0 = createText(PosX, PosY + SLOTt[0], 500, 100)
if (RollPt > 25)
setTextFontSize(50 - RollPt / 2)
else
setTextFontSize(25 + RollPt / 2)
end
t1 = createText(PosX, PosY + SLOTt[1] - RollPt, 500, 100)
setTextFontSize(RollPt / 2)
t2 = createText(PosX, PosY + SLOTt[2] - RollPt, 500, 100)
setText(t0, FDt[SPt0])
setText(t1, FDt[SPt1])
setText(t2, FDt[SPt2])
#クリック時の処理?
if (hasInput())
takeInput()
if (isMouseDown())
StopFlag = 1
end
end
if (STimeCT > STime)
#強制停止
StopFlag = 1
end
if (StopFlag == 1)
if(rand(2) == 0 && RollSPD > 1)
RollSPD = RollSPD - 1
end
end
if (RollSPD == 1 && RollPt == 25)
playSound(179851)
setTextFontSize(28)
RolledFlag = 1
else
#回転進行
waitTime(50)
STimeCT = STimeCT + 1
RollPt = RollPt + RollSPD
if (RollPt > 50)
playSound(67541)
RollPt = RollPt - 50
SPt0 = SPtCTRL (SPt0, 6)
SPt1 = SPtCTRL (SPt1, 6)
SPt2 = SPtCTRL (SPt2, 6)
end
#描画削除
deleteText(t0)
deleteText(t1)
deleteText(t2)
end
end
endInput()
return SPt1
end
#メイン
Mode = 1
while(Mode == 1)
SPt = Rolling(FD,SLOT,100,100,100)
speak(FD[SPt] + "が出ました")
if (SPt == 3)
openActivityFeedWindow(FD[SPt] + "『全国的ではないかと思う』")
end
SL = speakWithSelect(2,"はい","いいえ","続けますか?")
if (SL == 1)
goEnding()
end
deleteTextAll()
end3rd
#初期値割り当て
FD1 = myDataIni("りんご,あいうえおかきくけこ,閃光斬滅剣,まじたい,Rmake,とりか")
FD2 = myDataIni("あか,あお,きいろ,ホワイト,ブラック,レインボー")
SLOT = myDataIni("50,100,150")
#効果音再生
def SoundMe(Num)
if (Num == 1)
playSound(179851)
end
if (Num == 2)
playSound(67541)
end
end
#文字表示位置補正
def CTMe(X,Y,XSize,YSize)
XOffset = XSize / 2
YOffset = YSize / 2
return createText(X - XOffset, Y - YOffset, XSize, YSize)
end
#配列式画面テキスト削除
def DTSLOT(SALL,tArr)
size = getArrayLength(tArr)
ic = SALL
while (ic < size)
deleteText(tArr[ic])
ic = ic + 1
end
end
#文字列長さの取得
def LengthSTR(STR)
STRArr = splitString(STR, "")
STRL = getArrayLength(STRArr)
return STRL
end
#スロット回転アルファ
def SPtCTRL (SP, Num)
SP = SP + 1
if (SP >= Num)
SP = SP - Num
end
return SP
end
#スロット初期値乱数生成
def SPtIni(Num)
SPtArr = createArray()
SPt1 = rand(Num)
SPtArr[0] = SPtCTRL(SPt1, Num)
SPtArr[1] = SPtCTRL(SPt1 + 1, Num)
SPtArr[2] = SPtCTRL(SPt1 + 2, Num)
return SPtArr
end
#さいころスロット
def Rolling(SALL,SP_List,FDt,SLOTt,RollSpeed)
#スロット初期変数
SPtR = createArray()
PosX = createArray()
PosY = createArray()
RollPt = createArray()
RollSPD = createArray()
StopFlag = createArray()
SPt0 = createArray()
SPt1 = createArray()
SPt2 = createArray()
SPtL0 = createArray()
SPtL1 = createArray()
SPtL2 = createArray()
RFlag = createArray()
t0 = createArray()
t1 = createArray()
t2 = createArray()
#スロット変数初期化
ic = 0
while (ic < SALL)
SPtR[ic] = SPtIni(6)
PosX[ic] = SP_List[ic][0]
PosY[ic] = SP_List[ic][1]
RollPt[ic] = 0
RollSPD[ic] = RollSpeed + rand(RollSpeed)
StopFlag[ic] = 0
SPt0[ic] = SPtR[ic][0]
SPt1[ic] = SPtR[ic][1]
SPt2[ic] = SPtR[ic][2]
SPtL0[ic] = LengthSTR(FDt[ic][SPt0[ic]])
SPtL1[ic] = LengthSTR(FDt[ic][SPt1[ic]])
SPtL2[ic] = LengthSTR(FDt[ic][SPt2[ic]])
RFlag[ic] = 0
t0[ic] = 0
t1[ic] = 0
t2[ic] = 0
ic = ic + 1
end
#回転定期処理
RFlagALL = 0
while (RFlagALL < SALL)
ic = 0
while (ic < SALL)
#スロット回転処理
if (0 == rand(10))
#強制停止
StopFlag[ic] = 1
end
if (StopFlag[ic] == 1)
if(rand(3) > 0 && RollSPD[ic] > 3)
RollSPD[ic] = RollSPD[ic] - 1
end
end
if (RollSPD[ic] <= 3 && 24 <= RollPt[ic] && RollPt[ic] <= 26)
if (RFlag[ic] == 0)
SoundMe(1)
RFlag[ic] = 1
end
else
#回転進行
RollPt[ic] = RollPt[ic] + RollSPD[ic]
if (RollPt[ic] > 50)
SoundMe(2)
RollPt[ic] = RollPt[ic] - 50
SPt0[ic] = SPtCTRL (SPt0[ic], 6)
SPt1[ic] = SPtCTRL (SPt1[ic], 6)
SPt2[ic] = SPtCTRL (SPt2[ic], 6)
SPtL0[ic] = LengthSTR(FDt[ic][SPt0[ic]])
SPtL1[ic] = LengthSTR(FDt[ic][SPt1[ic]])
SPtL2[ic] = LengthSTR(FDt[ic][SPt2[ic]])
end
end
ic = ic + 1
end
#終了フラグチェック
RFlagALL = 0
ic = 0
while (ic < SALL)
RFlagALL = RFlagALL + RFlag[ic]
ic = ic + 1
end
#描画更新
ic = 0
while (ic < SALL)
if (RFlag[ic] == 0)
deleteText(t0[ic])
deleteText(t1[ic])
deleteText(t2[ic])
FS = 25 - RollPt[ic] / 2
setTextFontSize(FS)
TWidth = (FS + 1) * SPtL0[ic] + 5
t0[ic] = CTMe(PosX[ic], PosY[ic] + SLOTt[0], TWidth, 100)
if (RollPt[ic] > 25)
FS = 50 - RollPt[ic] / 2
else
FS = 25 + RollPt[ic] / 2
end
setTextFontSize(FS)
TWidth = (FS + 1) * SPtL1[ic] + 5
t1[ic] = CTMe(PosX[ic], PosY[ic] + SLOTt[1] - RollPt[ic], TWidth, 100)
FS = RollPt[ic] / 2
setTextFontSize(FS)
TWidth = (FS + 1) * SPtL2[ic] + 5
t2[ic] = CTMe(PosX[ic], PosY[ic] + SLOTt[2] - RollPt[ic], TWidth, 100)
setText(t0[ic], FDt[ic][SPt0[ic]])
setText(t1[ic], FDt[ic][SPt1[ic]])
setText(t2[ic], FDt[ic][SPt2[ic]])
end
ic = ic + 1
end
waitTime(20)
end
tArr = myDataIni(t0 + "," + t1 + "," + t2)
SPtRes = createArray()
ic = 0
while (ic < SALL)
SPtRes[ic] = SPt1[ic]
ic = ic + 1
end
ResArr = myDataIni(SPtRes + "," + tArr)
setTextFontSize(28)
return ResArr
end
#メイン
Mode = 1
while(Mode == 1)
#スロット内容設定
SD_List = createArray()
SD_List[0] = FD1
SD_List[1] = FD2
SD_List[2] = FD1
SD_List[3] = FD1
SD_List[4] = FD2
SD_List[5] = FD2
#スロット表示位置配列生成
SLOTPOS_List = createArray()
ic = 0
while (ic < 2)
jc = 0
while (jc < 3)
Pointer = ic * 3 + jc
SLOTPOS_List[Pointer] = myDataIni((250 + 300 * ic) + "," + (20 + 150 * jc))
jc = jc + 1
end
ic = ic + 1
end
#スロット呼出
SPt1 = Rolling(6,SLOTPOS_List,SD_List,SLOT,15)
#結果
Str1 = ""
ic = 0
while (ic < 6)
Str1 = Str1 + "DATA" + ic + " : " + SD_List[ic][SPt1[ic]] + "\n"
ic = ic + 1
end
speak(Str1)
#アクティビティ
ic = 0
ACTFlag = 0
while (ic < 6)
if (SD_List[ic][SPt1[ic]] == "まじたい")
ACTFlag = 1
end
ic = ic + 1
end
if (ACTFlag == 1)
openActivityFeedWindow(FD1[3] + "『全国的ではないかと思う』")
end
SL = speakWithSelect(2,"はい","いいえ","続けますか?")
if (SL == 1)
goEnding()
end
DTSLOT(6,SPt1)
endペンクエ
####スロット関数コピペここから
#配列生成関数
def myDataIni (myMoji)
resArray = createArray()
resArray = splitString(myMoji, ",")
ic = 0
while (ic < getArrayLength(resArray))
STR = toNumber(resArray[ic])
Get = resArray[ic]
if (STR == Get)
resArray[ic] = STR
end
if (Get == "true")
resArray[ic] = true
end
if (Get == "false")
resArray[ic] = false
end
ic = ic + 1
end
return resArray
end
#効果音再生
def SoundMe(Num)
##スロット停止音
if (Num == 1)
playSound(179851)
end
##スロット回転音
if (Num == 2)
playSound(67541)
end
end
#文字表示位置補正
def CTMe(X,Y,XSize,YSize)
XOffset = XSize / 2
YOffset = YSize / 2
return createText(X - XOffset, Y - YOffset, XSize, YSize)
end
#配列式画面テキスト削除
def DTSLOT(SALL,tArr)
size = getArrayLength(tArr)
ic = SALL
while (ic < size)
deleteText(tArr[ic])
ic = ic + 1
end
end
#文字列長さの取得
def LengthSTR(STR)
STR = toString(STR)
STRArr = splitString(STR, "")
STRL = getArrayLength(STRArr)
return STRL
end
#スロット回転アルファ
def SPtCTRL (SP, Num)
SP = SP + 1
if (SP >= Num)
SP = SP - Num
end
return SP
end
#スロット初期値乱数生成
def SPtIni(Num)
SPtArr = createArray()
SPt1 = rand(Num)
SPtArr[0] = SPtCTRL(SPt1, Num)
SPtArr[1] = SPtCTRL(SPt1 + 1, Num)
SPtArr[2] = SPtCTRL(SPt1 + 2, Num)
return SPtArr
end
#さいころスロット
def Rolling(SALL,SP_List,FDt,SLOTt,RollSpeed)
#スロット初期変数
SPtR = createArray()
PosX = createArray()
PosY = createArray()
RollPt = createArray()
RollSPD = createArray()
StopFlag = createArray()
SPt0 = createArray()
SPt1 = createArray()
SPt2 = createArray()
SPtL0 = createArray()
SPtL1 = createArray()
SPtL2 = createArray()
RFlag = createArray()
t0 = createArray()
t1 = createArray()
t2 = createArray()
#スロット変数初期化
ic = 0
while (ic < SALL)
SPtR[ic] = SPtIni(6)
PosX[ic] = SP_List[ic][0]
PosY[ic] = SP_List[ic][1]
RollPt[ic] = 0
RollSPD[ic] = RollSpeed + rand(RollSpeed)
StopFlag[ic] = 0
SPt0[ic] = SPtR[ic][0]
SPt1[ic] = SPtR[ic][1]
SPt2[ic] = SPtR[ic][2]
SPtL0[ic] = LengthSTR(FDt[ic][SPt0[ic]])
SPtL1[ic] = LengthSTR(FDt[ic][SPt1[ic]])
SPtL2[ic] = LengthSTR(FDt[ic][SPt2[ic]])
RFlag[ic] = 0
t0[ic] = 0
t1[ic] = 0
t2[ic] = 0
ic = ic + 1
end
#回転定期処理
RFlagALL = 0
while (RFlagALL < SALL)
ic = 0
while (ic < SALL)
if (getArrayLength(FDt[ic]) < 3 && RFlag[ic] == 0)
RFlag[ic] = 1
end
#スロット回転処理
if (0 == rand(10))
#強制停止
StopFlag[ic] = 1
end
if (StopFlag[ic] == 1)
if(rand(3) > 0 && RollSPD[ic] > 3)
RollSPD[ic] = RollSPD[ic] - 1
end
end
if (RollSPD[ic] <= 3 && 24 <= RollPt[ic] && RollPt[ic] <= 26)
if (RFlag[ic] == 0)
SoundMe(1)
RFlag[ic] = 1
end
else
#回転進行
RollPt[ic] = RollPt[ic] + RollSPD[ic]
if (RollPt[ic] > 50)
SoundMe(2)
RollPt[ic] = RollPt[ic] - 50
SPt0[ic] = SPtCTRL (SPt0[ic], 6)
SPt1[ic] = SPtCTRL (SPt1[ic], 6)
SPt2[ic] = SPtCTRL (SPt2[ic], 6)
SPtL0[ic] = LengthSTR(FDt[ic][SPt0[ic]])
SPtL1[ic] = LengthSTR(FDt[ic][SPt1[ic]])
SPtL2[ic] = LengthSTR(FDt[ic][SPt2[ic]])
end
end
ic = ic + 1
end
#終了フラグチェック
RFlagALL = 0
ic = 0
while (ic < SALL)
RFlagALL = RFlagALL + RFlag[ic]
ic = ic + 1
end
#描画更新
ic = 0
while (ic < SALL)
if (RFlag[ic] == 0)
deleteText(t0[ic])
deleteText(t1[ic])
deleteText(t2[ic])
FS = 25 - RollPt[ic] / 2
setTextFontSize(FS)
TWidth = (FS + 1) * SPtL0[ic] + 5
t0[ic] = CTMe(PosX[ic], PosY[ic] + SLOTt[0], TWidth, 100)
if (RollPt[ic] > 25)
FS = 50 - RollPt[ic] / 2
else
FS = 25 + RollPt[ic] / 2
end
setTextFontSize(FS)
TWidth = (FS + 1) * SPtL1[ic] + 5
t1[ic] = CTMe(PosX[ic], PosY[ic] + SLOTt[1] - RollPt[ic], TWidth, 100)
FS = RollPt[ic] / 2
setTextFontSize(FS)
TWidth = (FS + 1) * SPtL2[ic] + 5
t2[ic] = CTMe(PosX[ic], PosY[ic] + SLOTt[2] - RollPt[ic], TWidth, 100)
setText(t0[ic], FDt[ic][SPt0[ic]])
setText(t1[ic], FDt[ic][SPt1[ic]])
setText(t2[ic], FDt[ic][SPt2[ic]])
end
ic = ic + 1
end
waitTime(20)
end
tArr = myDataIni(t0 + "," + t1 + "," + t2)
SPtRes = createArray()
ic = 0
while (ic < SALL)
SPtRes[ic] = SPt1[ic]
ic = ic + 1
end
ResArr = myDataIni(SPtRes + "," + tArr)
setTextFontSize(28)
return ResArr
end
#スロット呼出関数
def SLOT_PQ(SL0,SL1,SL2,SL3,SL4,SL5)
#スロット内容設定
SD_List = createArray()
SD_List[0] = SL0
SD_List[1] = SL1
SD_List[2] = SL2
SD_List[3] = SL3
SD_List[4] = SL4
SD_List[5] = SL5
#スロット表示位置配列生成
SLOTPOS_List = createArray()
ic = 0
while (ic < 2)
jc = 0
while (jc < 3)
Pointer = ic * 3 + jc
SLOTPOS_List[Pointer] = myDataIni((550 - 300 * ic) + "," + (20 + 150 * jc))
jc = jc + 1
end
ic = ic + 1
end
SLOT = myDataIni("50,100,150")
#スロット呼出
SPt1 = Rolling(6,SLOTPOS_List,SD_List,SLOT,15)
return SPt1
end
####スロット関数コピペここまで
####実行サンプルここから
FD0 = myDataIni("スラッシュ,スラッシュⅡ,アタック,ダブルアタック,フォース,フォース+")
FD1 = myDataIni("魔神剣,大魔神剣,雷神剣,轟雷剣,疾風剣,閃光剣")
FD2 = myDataIni("ストライク,ボルテクス,スマッシュ,スライス,ヒール,キュアー")
#空データ FD3 = myDataIni("噛みつく,噛み砕く,引っ掻く,引き裂く,呻る,吼える")
#↓空データの例、これでエラー出るならmyDataIni(",,,,,")で代用するといいかも
FD3 = createArray()
FD4 = myDataIni("噛みつく,噛み砕く,引っ掻く,引き裂く,呻る,吼える")
FD5 = myDataIni("ダークネス,ダークネスⅡ,インパクト,インパクトⅡ,スパイク,カオススパイク")
Mode = 1
while(Mode == 1)
#スロット内容設定
SD_List = createArray()
SL0 = FD0
SL1 = FD1
SL2 = FD2
SL3 = FD3
SL4 = FD4
SL5 = FD5
#スロット呼出
#データを入れた場合:固定の位置にスロットを表示して回す、結果がスロットの配列番号で返ってくる
#データを入れていない場合:スロットを表示しないし回転もしない、結果もnullが返る、行動不能キャラのデータを入れないことでそのキャラのスロットを回さない処理が作れる
SPT = SLOT_PQ(SL0,SL1,SL2,SL3,SL4,SL5)
#結果集計
#SPT[*A*]=スロット回転時の結果番号
#*A* 012:味方キャラ 345:敵キャラ 6~:アクセス禁止
Str1 = ""
Str1 = Str1 + "DATA" + "0" + " : " + SL0[SPT[0]] + "\n"
Str1 = Str1 + "DATA" + "1" + " : " + SL1[SPT[1]] + "\n"
Str1 = Str1 + "DATA" + "2" + " : " + SL2[SPT[2]] + "\n"
Str1 = Str1 + "DATA" + "3" + " : " + SL3[SPT[3]] + "\n"
Str1 = Str1 + "DATA" + "4" + " : " + SL4[SPT[4]] + "\n"
Str1 = Str1 + "DATA" + "5" + " : " + SL5[SPT[5]] + "\n"
#結果表示
speak(Str1)
##続けるかどうかの選択肢
SL = speakWithSelect(2,"はい","いいえ","続けますか?")
if (SL == 1)
goEnding()
end
##スロット表示の削除
DTSLOT(6,SPT)
end
####実行サンプルここまでコメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。