##### 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