コメント
このコメントは、協力して岩を壊せ!長期メンテナンス開始 ...へのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
aoihikawa(投稿日:2012/08/30 23:08/30/12)
#_/_/_/_/_/ 編集時のヒント _/_/_/_/_/ #waitTimei(1000) #value=loadGameData("k")#データを読み込み、変数に置き換える。 #value=toNumber(value)#文字列を数値へ変換 #value=value+1#値を足す #value=toString(value)#数値を文字列へ変換 #waitTime(1000) #saveGameData("k", value)#データをセーブ #speak("あなたは") #speak(value,"回たたきました!")#結果を表示 #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ case speakWithSelect(2,"はい","いいえ", "岩をたたきますか?") when 0 value=loadGameData("k") #データを読み込み、変数に置き換える。 value=toNumber(value) #文字列を数値へ変換 value=value+1 #値を足す #---- 文字列に直す必要があるのはセーブする前 ---- value=toString(value) #数値を文字列へ変換 #---------- #変数「r」に「0」~「9」の中からランダムに1つの数(乱数)を取得して入れる r = rand(10) #変数「r」の内容を元に分岐する if r < 1 #変数「r」が「1」より小さい場合 playSound(86371) speak("クリティカル!!") speak("ダメージが5倍になるぞ!") #---- 「value」は文字列なので数値を足すと異常値になる可能性がある ---- value=value+4#値を足す #---------- end speak("ちょっと待ってね") waitTime(998) #---- ロードしたデータをどこにも確保していない ---- #saveGameData("k", value)#データをセーブ #---------- #---- 「value」が文字列になっているのに数値で比較している ---- if value>=7 #---------- setEventTarget("playerCharacterEvent", 7, 10) runEventMove() setEventTarget("event0", 7, 8) runEventMove() setEventTarget("event0", 8, 8) runEventMove() saveGameData("k", value)#データをセーブ speak("岩が崩れていく・・・。%Wait%うごきました・・・。") speak(value ,"回目です!(ちなみに)") speak("岩を崩したのは、") playSound(138400) waitTime(2000) #---- ここまでの間で、"gohito"がセーブされていない ---- #---- つまり、空のデータ[NaN]がここで"s"に格納される ---- setVariable("s", loadGameData("gohito")) #---------- #---- "s"がここでしか使用されていないのに、通常変数を利用するのは無駄な処理 ---- speak(getVariable("s") + "さんです!") #---------- openActivityFeedWindow("他の石が叩けるようになったみたい!・・・。") setFlag("1700回突破", true) else playSound(63622) playSound(138400) waitTime(2000) speak("あなたは") playSound(16423) speak(value,"回目にたたきました!")#結果を表示 openActivityFeedWindow(value ,"回目にたたきました!") speak("少しお待ちください") waitTime(1000) speak("ロードが終わりました。") #---- 「value」が文字列になっているのに数値で比較している ---- if value==6 #---------- #---- 丁度の値になったときしか判定に入らないため、クリティカルで超えた場合実行されない ---- setEventTarget("playerCharacterEvent", 7, 10) runEventMove() setEventTarget("event0", 7, 8) runEventMove() setEventTarget("event0", 8, 8) runEventMove() speak("1700回に達したので岩・・・?が壊れました%Wait%動きました・・・。") openActivityFeedWindow("他の石がたたけるようになったみたい!") speak("少しお待ちください") #---- もし、"gohito"に確実にプレイヤー名を入れておくなら、if文の中で実行するべきではない ---- setVariable("gohito", getValueFromCharacterParam(getPlayerParam(),getCharacterNameIndex())) #---------- #---- "gohito"がここでしか使用されていないのに、通常変数を利用するのは無駄な処理 ---- saveGameData("h", getVariable("gohito")) #---------- speak("セーブが完了しました。\nなお、ゲームのセーブではないです。") setFlag("1700回突破", true) #---------- end end when 1 speak("たたこう!") end
一旦、大まかに
何をどういった順序で実行していくか
手順をまとめてからの方が良いかも。
現状が、継ぎ接ぎ状態なので
混乱しているのではないでしょうか。
一旦、大まかに
何をどういった順序で実行していくか
手順をまとめてからの方が良いかも。
現状が、継ぎ接ぎ状態なので
混乱しているのではないでしょうか。