どういったものに需要があるかなど
スクリプト製作の参考にしたいので,
いいね!と思ったスクリプトにクリックお願いします.
スクリプトに丸ごと貼り付けていただければ使用できます.
まずは詳細設定にて暦の設定を行って下さい.
ランクの設定を行います.
ランクとは秒,分,時,,などのような時間の単位を表します.
ランクは上から順にランク0,ランク1と呼び,あるランクの値が上限を超えると一つ上のランクに繰り上げされます.
各ランクは以下の様に設定します.
ランク名 => 値の範囲
例
上記の例ではランクの低い順に秒,分,時,日,月,年を設定しています.
また,それぞれ取り得る値の範囲も指定しています.
(一月30日で年は便宜上9999年を上限としています)
例えばdayが25のときに7加算され32になると,結果としてdayは2になり,monは1加算されます.
このようにして基本となる暦を作成します.
この部分を任意に変えることで自由な暦を設定できます.
ランク以外の特別な暦情報を設定します.
例えば曜日や季節,時間帯などを設定することができます.
設定の仕方は以下のフォーマットにしたがってください.
%special%に設定する名前を指定し,対応する任意の式を記述します.
このときcalにより暦オブジェクトが参照できます.
例・時間帯の設定
表示変換の設定を行います.
暦を文字列として表現する際,整数以外の形式で表示したい場合に使用します.
また,全く新しい独自の表示形式を指定することも可能です.
例・月の文字列表記
ゲーム開始時の暦を設定します.
設定したいランクと対応する値を指定します.
指定されなかったランクの初期値は値の範囲のうち最小のものになります.
例
この例では2011年12月15日0時0分0秒が初期値となります.
マップで暦ウインドウを表示するかを設定します.
この設定はゲーム中以下のスクリプトにて切り替え可能です.
マップでの暦ウインドウをフェードするか設定します.
trueのとき一定時間表示したあとフェードアウトします.
falseのとき暦ウインドウを常に表示します.
マップで暦ウインドウを常に表示するとき,ウインドウを一時的に消去できるか設定します.
この設定はゲーム中以下のスクリプトにて切り替え可能です.
マップで暦ウインドウを一時的に消去するボタンです.
もう一度押すと再び表示します.
また,次のスクリプトをマップ上で実行するとイベント側から暦ウインドウの一時消去および再表示を行うことができます.
マップでの暦ウインドウの表示内容を設定します.
配列でフォーマットを指定します.一つの要素につき一行となります.< br/>
フォーマットについては後述のメソッドstrftimeを参照してください.
メニューで暦ウインドウを表示するかを設定します.
メニューでの暦ウインドウの表示内容を設定します.
設定の仕方はMAP_WINDOW_FORMATと同様です.
暦による画面の色調の自動変更を設定します.
trueの時時間によって画面の色調が自動で変更されます.
また,イベントコマンドによる画面の色調変更は機能しなくなります.
ただし,後述する色調固定マップでは機能します.
この設定はゲーム中以下のスクリプトにて切り替え可能です.
デフォルトの色調変更時間の設定です.
色調変更の条件で色調変更時間が指定されない場合はこの値が適用されます.
色調変更の条件を設定します.
色調を変更する条件となる時間とそれに対応する色調(Tone)を指定します.
上にある条件ほど優先的にマッチします.
条件の指定方法は条件に設定したいrankをキーにして対応する値を直接指定するか値の範囲で指定します.
22..4(22...24かつ0..4)のような指定も可能です.
範囲に関しては(0...3)の場合0から2まで,0...3の場合0から3までを表します.
また,対応する色調は以下で指定します.
Tone.new(赤(-255~255),緑(-255~255),青(-255~255),グレー(0~255))
例・時間帯によって色調を変える
バトル画面では画面の色調を変更しない設定にできます.
trueの場合マップで色調が自動変更されている場合でも画面の色調はデフォルト(0,0,0,0)になります.
また,色調固定マップの場合でもデフォルトの色調になります.
時間が自動経過するかを設定します.
この設定はゲーム中以下のスクリプトによって切り替え可能です.
時間の自動経過間隔を設定します.
指定したフレームが経過するごとにTIME_PASSINGで指定した分の時間が経過します.
時間の自動経過量を設定します.
加算したいランクと対応する加算量を指定してください.
例・1分30秒ずつ加算する
イベント中は時間の自動経過を停止するか設定します.
この設定はゲーム中以下のスクリプトによって切り替え可能です.
バトル中は時間の自動経過を停止するか設定します.
この設定はゲーム中以下のスクリプトによって切り替え可能です.
場所移動による時間経過を設定します.
「場所移動」が行われる度に時間を経過させることができます.
加算したいランクと対応する加算量を指定してください.
場所移動により加算したくない場合は空のハッシュを指定してください.
戦闘開始による時間経過を設定します.
戦闘開始時に時間を経過させることができます.
加算したいランクと対応する加算量を指定してください.
加算したくない場合は空のハッシュを指定してください.
戦闘終了による時間経過を設定します.
戦闘終了時に時間を経過させることができます.
加算したいランクと対応する加算量を指定してください.
加算したくない場合は空のハッシュを指定してください.
ゲーム中は基本的にスクリプトコマンドから$game_koyomiにアクセスすることで暦を操作できます.
以下は$game_koyomiからできる主な操作一覧です.
時間による画面色調の自動変更をするかどうか設定できます.
これを設定した次の画面色調自動変更時のみ指定した時間で色調が変化します.
イベント等で時間を進めた際早く色調を切り替えたいときなどに利用します.
これを指定した次の場所移動時のみ指定した分だけ時間が経過します.
これを指定した次の戦闘開始時のみ指定した分だけ時間が経過します.
これを指定した次の戦闘終了時時のみ指定した分だけ時間が経過します.
自動で時間を経過させるか設定できます.
自動で時間が経過するとき,イベント中は時間経過を停止するか設定できます.
自動で時間が経過するとき,バトル中は時間経過を停止するか設定できます.
設定した各ランクの値を取得できます.
例・現在の月を取得
設定した各ランクの値を変更できます.
例・現在の月を3に設定
例・3時間進める
設定した各特殊表現の値を取得できます.
例・現在の時間帯を取得
暦をセットします.
initは各ランクと対応する値のハッシュか,後述する起算時からのランク0からみた経過時間を指定します.
例・ハッシュで暦をセット
例・ある暦から得た起算時からの経過時間で暦をセット
amountに各ランクと対応する値のハッシュを指定して,その分だけ時間を経過させます.
例・1月と3時間だけ時間をすすめる
起算時からのランク0からみた経過時間を取得します.
この結果を変数などに保存することで容易に暦を復元できます.
例・暦を整数にして保存・復元する
formatに変換文字列を指定して現在の暦を文字列にします.
format中には以下の二つの特別な文字列を記述することで暦の値を置き換えることができます.
<<表示桁#rank>>
表示桁は先頭に - または 0 を付けた数字と置き換えます.
rankは設定したランクのいずれかと置き換えます.
ランクの値が指定した数字の桁分の幅の文字列と置換されます.
先頭に 0 をつけると余った桁0で埋められます.
先頭に - をつけると右寄せとなります.
<<label>>
labelはTRANSFORMで指定した変換ラベルと置き換えます.
TRANSFORMで設定した内容に従って文字列に置換されます.
例・2011年12月15日4時00分00秒の暦のとき
マップのメモ欄に以下を記述することでマップごとに設定を行うことができます.
マップで暦ウインドウを表示する場合でもこの記述があるマップは暦ウインドウを表示しません.
自動で時間が経過する場合でもこの記述があるマップは自動で時間が経過しません.
自動で画面色調が変更される場合でもこの記述があるマップは指定した色調になります.
屋内マップなどで利用します.
薄暗い洞窟等も表現可能です.
r,g,b,grayはそれぞれ色調(トーン)を指定する値です.
例・時間にかかわらず薄暗い洞窟
このスクリプトでは「RPG::Map」「Game_Map」「Scene_Menu」「Scene_Map」「Game_Screen」「Game_Troop」「Scene_Battle」のメソッドを改変しています.