コメント
このコメントは、『スクリプト 汎用関数』 ゲーム起動から...へのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
alnyan(投稿日:2014/04/12 04:04/12/14)
回答ありがとうございます!わたしの知識不足で
書いてあることを理解するのに3日も掛かってしまいました。orz
なんとなく形にはなりましたが、おかしいところがあるかもしれません…(下記参照)
わたしの作っているゲームでは、累計プレイ時間はカスタムメニューに表示させています。
セーブする際にのみ時間の処理を行っているので、
ここのページにあるスクリプトのようにリアルタイムでのプレイ時間を
カスタムメニューに表示させるのは難しいでしょうか。
また、この方法を使うとセーブ後も続けて遊ぶ際に起動してからの秒数が増え続けてしまいますよね?
セーブ処理時に起動時間をリセットする方法ってあるのでしょうか…?
書いてあることを理解するのに3日も掛かってしまいました。orz
なんとなく形にはなりましたが、おかしいところがあるかもしれません…(下記参照)
わたしの作っているゲームでは、累計プレイ時間はカスタムメニューに表示させています。
セーブする際にのみ時間の処理を行っているので、
ここのページにあるスクリプトのようにリアルタイムでのプレイ時間を
カスタムメニューに表示させるのは難しいでしょうか。
また、この方法を使うとセーブ後も続けて遊ぶ際に起動してからの秒数が増え続けてしまいますよね?
セーブ処理時に起動時間をリセットする方法ってあるのでしょうか…?
# 開始スクリプト # ----- 0埋め ----- def addZero(n, b) l = 0; c = n; r = ""; b = b - 1 while c > 9 c = floor(c / 10); l = l + 1 end while l < b r = r + "0"; l = l + 1 end r = r + n return r end # ----- 時間測定 ----- #うるう年の判定 def getUruuflg(y) return (y % 4) == 0 && (y % 100) != 0 || (y % 400) == 0 end #経過時間の計算 def deffTimeS(t) mi = 0 d_li = createArray() d_li = splitString("0,31,59,90,120,151,181,212,243,273,304,334,365",",") i = 0 while i < getArrayLength(d_li) d_li[i] = toNumber(d_li[i]) i = i + 1 end j = t[0] - 1 while j > 1999 if getUruuflg(j) mi = mi + 527040 else mi = mi + 525600 end j = j - 1 end if getUruuflg(t[0]) && (t[1] > 2) mi = mi + 1440 end mi = mi + ((d_li[(t[1] - 1)] + (t[2] - 1)) * 1440) mi = mi + (t[3] - 1) * 60 + t[4] mi = mi * 60 + t[5] return mi end # セーブ時の処理 def save() t1 = getServerCurrentDate() t2 = getServerGameStartDate() df = deffTimeS(t1) - deffTimeS(t2) setVariable("セーブまでのプレイ秒数", df ) a = "セーブまでのプレイ秒数:" + getVariable("セーブまでのプレイ秒数") speak(a) b = getVariable("セーブまでのプレイ秒数") b = floor(b / (60 * 60)) + ":" + addZero(floor((b % (60 * 60)) / 60),2) + "'" + addZero((b % 60),2) setVariable("セーブまでのプレイ時間", b) c = "セーブまでのプレイ時間:" + b speak(c) setVariable("累計プレイ秒数" , getVariable("累計プレイ秒数") + getVariable("セーブまでのプレイ秒数")) y = getVariable("累計プレイ秒数") y = floor(y / (60 * 60)) + ":" + addZero(floor((y % (60 * 60)) / 60),2) + "'" + addZero((y % 60),2) setVariable("累計プレイ時間", y) x = "累計プレイ時間:" + y speak(x) savePlayDataCustom("セーブしますか?", "はい", "いいえ") end # 初回一度きりの処理 setVariable("セーブまでのプレイ秒数", 0) setVariable("累計プレイ秒数", 0) setVariable("累計プレイ時間", "0:00'00")
書いてあることを理解するのに3日も掛かってしまいました。orz
なんとなく形にはなりましたが、おかしいところがあるかもしれません…(下記参照)
わたしの作っているゲームでは、累計プレイ時間はカスタムメニューに表示させています。
セーブする際にのみ時間の処理を行っているので、
ここのページにあるスクリプトのようにリアルタイムでのプレイ時間を
カスタムメニューに表示させるのは難しいでしょうか。
また、この方法を使うとセーブ後も続けて遊ぶ際に起動してからの秒数が増え続けてしまいますよね?
セーブ処理時に起動時間をリセットする方法ってあるのでしょうか…?