Shinobiライブラリ - プレイ履歴関数

ufPlayTime

プレイ時間の保存

書式

Uint32 ufPlayTime( mode, est, carry, param[32] ) 
Uint8 mode 
Uint8 est 
Uint8 carry 
Uint8 param[32] 

引数

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

戻り値

残り追記可能パケット数

解説

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

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

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


128 = 標準的なプレイ、
標準より劣ると思われるプレイは128より減算
標準より優ると思われるプレイは128に加算
最低値 = 0
最大値 = 254

※ 255は未設定となります。 ここへ記録を残さない場合は、必ず255となるようにしてください。

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


128 = ゲーム全体の50%を攻略
0 = ゲーム全体の0%を攻略
254 = ゲーム全体の100%を攻略

※ 255は未設定となります。ここへ記録を残さない場合は、必ず255となるようにしてください。

modeの値によって挙動が変わります。


mode = UFD_SAVE -> セーブカウントを増やします
mode = UFD_LOAD -> ロードカウントを増やします
mode = UFD_PLAY -> カウントは変更しません

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


用例

/* フリーデータエリア */
static Uint8 data[32];

/* プレイ時間の更新 */
/* セーブ・ロードカウントは変更されない */
/* プレイ評価 ... 標準, 攻略率 ... 50 % */
ufPlayTime(UFD_PLAY, 128, 128, data);

備考

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

ufPlayTime
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999