コード例 #1
0
ファイル: Player.php プロジェクト: kakitsubun/wc-test
 /**
  * 赋予经验值
  * @param $intExp
  * @return bool
  */
 public function appendExp($intExp)
 {
     // 取得用户数据实例
     $objPlayerData = PlayerData::find($this->id);
     // 总计经验值取得
     $intTotalExp = $objPlayerData->exp + $intExp;
     // 新等级检索 TODO Index
     $objNewLevel = PlayerLevel::where('exp', '<=', $intTotalExp)->orderBy('level', 'DESC')->first();
     // 经验值赋予
     $objPlayerData->exp = $intTotalExp;
     // 是否升级
     $isLevelUp = false;
     // 是否升级
     if ($objNewLevel->level > $objPlayerData->level) {
         $objPlayerData->level = $objNewLevel->level;
         $isLevelUp = $objPlayerData->level;
     }
     // 保存 TODO Transaction
     if ($objPlayerData->save()) {
         return $isLevelUp;
     } else {
         return false;
     }
 }