[掲示板へもどる]
一括表示

記事No: 21637 [関連記事]
タイトルセーブ画面にプレイ時間を表示させたい
投稿日: 2024/07/11 01:53
投稿者花火大会 [LdriWFg644(海外)]

[やりたいこと]
セーブデータの枠内にプレイ時間を入れたい。
[やってみたこと]
データの有無で表示を変える。データがある場合プレイ時間を計算したコマンドを作成してその場所に表示させる。
[やってみた結果、どううまくいかないか]
表示だけならできるのですが、セーブした時の時間が表示されるのではなく、リアルタイムのプレイ時間がずっと表示されてしまいます。セーブ時にプレイ時間を読み込むやり方が間違っているのか、コマンドを入れる場所などいろいろ変えてみましたが、うまくいきませんでした。
以下がコマンド文です。

■ループ開始
|■変数操作: CSelf15 下限= 0 + 1
|■変数操作: CSelf15 上限= 0 + 5
|■変数操作: CSelf11 = 13000 + 0
|■変数操作: CSelf12 = 70 + 0
|■変数操作: CSelf13 = 0 + 1
|■回数付きループ [ 5 ]回
| |■ピクチャ表示:CSelf11 [中心]ウィンドウ「SystemFile/WindowBase.png」サイズ[120,20] X:160 Y:CSelf12 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |■DB読込(可変): CSelf14 = 可変DB[ 2 : 0 : CSelf13 ] (セーブ欄 : : -)
| |■条件分岐(変数): 【1】 CSelf13 が CSelf15 と同じ
| |-◇分岐: 【1】 [ CSelf13 が CSelf15 と同じ ]の場合↓
| | |■ピクチャエフェクト:CSelf11 [点滅A(明滅)] R200/G200/B200 明滅間隔(50)フレーム
| | |■
| |-◇上記以外
| | |■ピクチャエフェクト:CSelf11 [点滅A(明滅)] R100/G100/B100 明滅間隔(0)フレーム
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf11 += 0 + 1
| |▼ ファイルNo
| |■ピクチャ表示:CSelf11 [中心]文字列[File:\cself[14]] X:120 Y:CSelf12 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |▼ セーブ中身
| |■変数操作: CSelf11 += 0 + 1
| |■セーブデータの内容読込: CSelf17 = セーブデータ[CSelf14]の Sys24:[読]セーブデータ読込判定(1=成功 0=失敗)
| |■条件分岐(変数): 【1】 CSelf17 が 1 と同じ 【2】 CSelf17 が 0 と同じ
| |-◇分岐: 【1】 [ CSelf17 が 1 と同じ ]の場合↓
| | |▼
| | |■セーブデータの内容読込: CSelf20 = セーブデータ[CSelf16]の Sys29:プレイ時間(1秒単位)
| | |■変数操作: CSelf20 = Sys29:プレイ時間(1秒単位) + 0
| | |■変数操作: CSelf21 = CSelf20 / 3600
| | |■変数操作: CSelf22 = CSelf20 % 3600
| | |■変数操作: CSelf23 = CSelf22 / 60
| | |■変数操作: CSelf24 = CSelf22 % 60
| | |■条件分岐(変数): 【1】 CSelf21 が 9 以下
| | |-◇分岐: 【1】 [ CSelf21 が 9 以下 ]の場合↓
| | | |■文字列操作:CSelf5 = "0"
| | | |■
| | |-◇上記以外
| | | |■文字列操作:CSelf5 = ""
| | | |■
| | |◇分岐終了◇
| | |■条件分岐(変数): 【1】 CSelf23 が 9 以下
| | |-◇分岐: 【1】 [ CSelf23 が 9 以下 ]の場合↓
| | | |■文字列操作:CSelf6 = "0"
| | | |■
| | |-◇上記以外
| | | |■文字列操作:CSelf6 = ""
| | | |■
| | |◇分岐終了◇
| | |■条件分岐(変数): 【1】 CSelf24 が 9 以下
| | |-◇分岐: 【1】 [ CSelf24 が 9 以下 ]の場合↓
| | | |■文字列操作:CSelf7 = "0"
| | | |■
| | |-◇上記以外
| | | |■文字列操作:CSelf7 = ""
| | | |■
| | |◇分岐終了◇
| | |▼
| | |▼
| | |■ピクチャ表示:CSelf11 [中心]文字列[\cself[5]\cself[] X:160 Y:CSelf12 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | |■
| |-◇分岐: 【2】 [ CSelf17 が 0 と同じ ]の場合↓
| | |■ピクチャ表示:CSelf11 [中心]文字列[No Data] X:170 Y:CSelf12 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf11 += 0 + 1
| |■変数操作: CSelf12 += 20 + 0
| |■変数操作: CSelf13 += 0 + 1
| |■
|◇ループここまで◇◇
|■キー入力:CSelf10[キー入力][入力待ち] 上下(8,2) 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 8 と同じ 【2】 CSelf10[キー入力] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 8 と同じ ]の場合↓
| |■変数操作: CSelf15 -= 0 + 1
| |■
|-◇分岐: 【2】 [ CSelf10[キー入力] が 2 と同じ ]の場合↓
| |■変数操作: CSelf15 += 0 + 1
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 10 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 10 と同じ ]の場合↓
| |■DB読込(可変): CSelf16 = 可変DB[ 2 : 0 : CSelf15 ] (セーブ欄 : : -)
| |■条件分岐(変数): 【1】 CSelf0 が 1 と同じ 【2】 CSelf0 が 0 と同じ
| |-◇分岐: 【1】 [ CSelf0 が 1 と同じ ]の場合↓
| | |■データのロード: CSelf16
| | |■
| |-◇分岐: 【2】 [ CSelf0 が 0 と同じ ]の場合↓
| | |■ピクチャ消去:13000 〜 13050 / 0(0)フレーム
| | |■セーブデータの内容読込: CSelf20 = セーブデータ[CSelf16]の Sys29:プレイ時間(1秒単位)
| | |■データのセーブ: CSelf16
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 11 と同じ ]の場合↓
| |■ピクチャ消去:13000 〜 13050 / 0(0)フレーム
| |■イベント処理中断
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇

よろしくお願いします。


記事No: 21638 [関連記事]
タイトルRe: セーブ画面にプレイ時間を表示させたい
投稿日: 2024/07/11 05:59
投稿者Masaqq [reFLiW308(海外)]


下記の★部分でCSelf20を上書きしているので
ここが原因かなと思います。

あと、読込位置がおかしい気がします。
CSelf14の読込判定をしたあとに
CSelf16のプレイ時間を読み込もうとしている?

> | |■セーブデータの内容読込: CSelf17 = セーブデータ[CSelf14]の Sys24:[読]セーブデータ読込判定(1=成功 0=失敗)
> | |■条件分岐(変数): 【1】 CSelf17 が 1 と同じ 【2】 CSelf17 が 0 と同じ
> | |-◇分岐: 【1】 [ CSelf17 が 1 と同じ ]の場合↓
> | | |▼
> | | |■セーブデータの内容読込: CSelf20 = セーブデータ[CSelf16]の Sys29:プレイ時間(1秒単位)
> | | |■変数操作: CSelf20 = Sys29:プレイ時間(1秒単位) + 0 ←★原因
> | | |■変数操作: CSelf21 = CSelf20 / 3600
> | | |■変数操作: CSelf22 = CSelf20 % 3600
> | | |■変数操作: CSelf23 = CSelf22 / 60
> | | |■変数操作: CSelf24 = CSelf22 % 60

ちなみに、この件とは直接関係ない話ですが
現在の年月日時分秒(Sys77〜82)など
一部で読み込みできないものもあります。
その場合は、例えば最後にセーブした時間として
文字列変数に書き込んでおいて、それを読み込む必要があると思います。

以上です。


記事No: 21639 [関連記事]
タイトルRe: セーブ画面にプレイ時間を表示させたい
投稿日: 2024/07/11 15:55
投稿者花火大会 [LdriWd907(海外)]

Masaqqさんへ

以下のように変更したら表示されました。挙動も特に問題なく10分以上の表示も問題ありませんでした。
文字列変数のあたりは基本データの内容を見て作成しました。

教えていただきありがとうございました。

| |■条件分岐(変数): 【1】 CSelf17 が 1 と同じ 【2】 CSelf17 が 0 と同じ
| |-◇分岐: 【1】 [ CSelf17 が 1 と同じ ]の場合↓
| | |▼


※変更↓↓
| | |■セーブデータの内容読込: CSelf60 = セーブデータ[CSelf14]の Sys29:プレイ時間(1秒単位) 
| | |■変数操作: CSelf20 = CSelf60 / 3600
| | |■変数操作: CSelf21 = CSelf60 % 3600
| | |■変数操作: CSelf21 /= 60 + 0
| | |▼
| | |▼
| | |■条件分岐(変数): 【1】 CSelf20 が 10 未満 【2】 CSelf20 が 10 以上
| | |-◇分岐: 【1】 [ CSelf20 が 10 未満 ]の場合↓
| | | |■文字列操作:CSelf5 = " \cself[20]:"
| | | |■
| | |-◇分岐: 【2】 [ CSelf20 が 10 以上 ]の場合↓
| | | |■文字列操作:CSelf5 = "\cself[20]:"
| | | |■
| | |◇分岐終了◇
| | |■条件分岐(変数): 【1】 CSelf21 が 10 未満 【2】 CSelf21 が 10 以上
| | |-◇分岐: 【1】 [ CSelf21 が 10 未満 ]の場合↓
| | | |■文字列操作:CSelf5 += "0\cself[21]"
| | | |■
| | |-◇分岐: 【2】 [ CSelf21 が 10 以上 ]の場合↓
| | | |■文字列操作:CSelf5 += "\cself[21]"
| | | |■
| | |◇分岐終了◇
| | |▼
| | |▼
| | |■ピクチャ表示:CSelf11 [中心]文字列[\cself[5]] X:160 Y:CSelf12 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]




| | |■
| |-◇分岐: 【2】 [ CSelf17 が 0 と同じ ]の場合↓
| | |■ピクチャ表示:CSelf11 [中心]文字列[No Data] X:170 Y:CSelf12 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | |■
| |◇分岐終了◇