メモ(とりかさんのスロットスクリプト)
投稿者: 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() end
3rd
#初期値割り当て 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 ####実行サンプルここまで
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。