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