[過去ログ] RPGツクールMZ_15作目 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
950
(1): 1/2 [sage] 2022/06/15(水) 23:02:16.06 ID:ZAnqCX5K(1/3) AAS
>>936
Javascriptの基本的な関数で、現在の時刻を取得できるのがあるから、それを使うとできそう。
「var bufferDate = new Date(); // シンボル取得時の日時オブジェクト生成」
細部はネットで調べてくれ。

以下は突貫で考えた参考。「時」をまたぐときの処理は強引に丸めてる。
なお、new Date()関連はちゃんと時間や分を取得できることは確認してるが、
処理全体はチェックしてないのでエラーがでたらすまない。

1 シンボル取得時に以下の処理で「取得した時の分」を記録
(イベントコマンドのスクリプトで実行)

var bufferDate = new Date(); // シンボル取得時の日時オブジェクト生成
var bufferHour = bufferDate.getHours(); // シンボル取得時の「時間」取得
var bufferMinute = bufferDate.getMinutes(); // シンボル取得時の「分」取得

$gameVariables.setValue(1, bufferHour); // 変数1に「シンボル取得時の時間」を記録
$gameVariables.setValue(2, bufferMinute); // 変数2に「シンボル取得時の分」を記録

(続く)
951: 名前は開発中のものです。 [sage] 2022/06/15(水) 23:02:37.49 ID:ZAnqCX5K(2/3) AAS
(続き)
2 復活の処理は以下を並列処理で判定
(イベントコマンドのスクリプトで実行)

// 処理時の時間・分を取得
var checkDate = new Date(); // 処理の時点の日時オブジェクト生成
var checkHour = checkDate.getHours(); // 処理の時点の「時間」取得
var checkMinute = checkDate.getMinutes(); // 処理の時点の「分」取得

var bufferHour = $gameVariables.value(1); // 変数1に保存していた「シンボル取得時の時間」を取得
var bufferMinute = $gameVariables.value(2); // 変数2に保存していた「シンボル取得時の分」を取得

var cycleTime = 5; // シンボル復活までの時間(ここでは分)

if(checkHour == bufferHour){ // シンボル取得時と処理時の「時間」が同じ場合
if(checkMinute >= bufferMinute + cycleTime){
// 「処理の時点の「分」」が「シンボル取得時の分+復活までの時間」以上の場合
$gameSwitches.setValue(1, true); // フラグとしてスイッチ1をONに
}else {
$gameSwitches.setValue(1, false); // 時間が経過していない場合はフラグをOFFに
}

}else { // シンボル取得時と処理時の「時間」が違う場合
$gameSwitches.setValue(1, true); // フラグとしてスイッチ1をONに
// 処理が面倒なので「時間が変わっても復活」にしてしている。
// シンボル復活までの分を60の約数にしておけば、矛盾はない
}

以下、通常のイベントコマンドでスイッチ1がONの時に
イベント復活の処理を実行すればよい
952
(1): 名前は開発中のものです。 [sage] 2022/06/15(水) 23:07:16.42 ID:ZAnqCX5K(3/3) AAS
書き込みしてから気づいたが、
「// シンボル復活までの分を60の約数にしておけば、矛盾はない」は間違いだな。
シンボルを取得した時点の「分」が0じゃないから、「時間」をまたぐときはどうしてもずれるか。

解決するなら 「時間×60+分」にして、1日の中での累積分を計算して比較すればいいが、
その場合は「日」をまたぐ場合のズレも考える必要がある。

ここで力尽きたので後は宜しく
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s