##### Shinobi Library - プレイ履歴関数

# ufPlayTime

プレイ時間の保存

### 書式

> `Sint32 ufPlayTime( mode, est, carry, param )
> Uint8 mode
> Uint8 est
> Uint8 carry
> Uint8 param[32]
> `

### 引数

> mode | 動作モード
> est | プレイ評価
> carry | 攻略率
> param[32] | フリーエリアへ書き込むデータ

### 戻り値

> 残り追記可能パケット数

### 解説

> プレイ時間を保存します。

> 前回呼び出し時から今回の呼び出し時までの時間の差分をとり、その値から各時間帯のプレイ時間を算出し保存します。 また、この関数は引数に与えられたプレイ評価、 攻略率、フリーエリアの内容を保存します。

> 引数 est(プレイ評価)の値は、以下の通りとしてください。

> 値 | 意味
> 0 | 最低のプレイ
> 1〜127 | 標準より劣るプレイ
> 128 | 標準的なプレイ
> 129〜253 | 標準より優れるプレイ
> 254 | 最高のプレイ
> 255 | 未設定

> ここへ記録を残さない場合は、必ず255を指定してください。

> 引数 carry(攻略率)の値は、以下の通りとしてください。

> 値 | 意味
> 0 | 全体の0%を攻略
> 128 | 全体の50%を攻略
> 254 | 全体の100%を攻略
> 255 | 未設定

> ここへ記録を残さない場合は、必ず255を指定してください。

> これらは引数 modeの値によって挙動が変わります。

> 値 | 意味
> UFD_SAVE | セーブカウントを増やす
> UFD_LOAD | ロードカウントを増やす
> UFD_PLAY | カウントは変更しない

> この関数の返り値はあと何パケット追記が可能かを表しています。 この値が2を切ったら、次のufSynchが呼び出されるとリフレッシュが発生するので、 リフレッシュして欲しくないときはufAutoSynch()関数の引数に0を指定して、ufSynchが起きないようにしてください。 そして、リフレッシュが起きても問題がない場面でufSynch()関数を実行し、リフレッシュを行います。 一度リフレッシュをすると、追記パケット数は増えます。

### 用例

>     /* Free data area */
>     static Uint8 data[32];
>     /* Play time update */
>     /* Save, load count is not changed */
>     /* Play evaluation...standard, Carry...50% */
>     ufPlayTime(UFD_PLAY, 128, 128, data);

### 備考

> また、この関数の返り値が0(=FALSE)のときは、ufSynch関数が書き込みに失敗した可能性もあります。 詳細は、ufgErrnoに原因の番号が書かれているので、その値から判断してください。

### 参照

> ufAutoSynch() | プレイ履歴更新間隔の指定

ufPlayTime

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000