Exemplo n.º 1
0
 /**
  * API:好友合体信息
  *
  * @access public
  * @param 无
  * @return JsonView 响应json
  */
 public function exeGetFitInfo()
 {
     $requestParam = $this->getAllParameters();
     Logger::debug('requestParam:' . print_r($requestParam, true));
     $requestJsonParam = $this->getDecodedJsonRequest();
     Logger::debug('requestJsonParam:' . print_r($requestJsonParam, true));
     $user_id = $requestParam['user_id'];
     $session_key = $requestParam['session_key'];
     $idArr = FriendModel::fitFriend($user_id);
     $nowTime = time();
     foreach ($idArr as $key => $value) {
         $condition .= $value['n_id'] . ",";
         $waitTime = $value['time'] - $nowTime;
         $idArr[$key]['time'] = $waitTime > 0 ? $waitTime : 0;
     }
     $condition = substr($condition, 0, -1);
     $friendInfo = array();
     if ($condition) {
         $friendInfo = FriendModel::getFriendInfo($condition);
     }
     foreach ($friendInfo as $key1 => $value1) {
         foreach ($idArr as $key2 => $value2) {
             if ($value1['n_id'] == $value2['n_id']) {
                 $friendInfo[$key1] = array_merge($value1, $value2);
                 $num = $value2['num'] + 1;
                 $costInfo = FriendAction::getFitCostInfo($value1['n_id'], $num);
                 $friendInfo[$key1]['price_type'] = $costInfo['price_type'];
                 $friendInfo[$key1]['price'] = $costInfo['price'];
                 $battleInfo = CharacterAction::getFitBattleInfo($user_id, $value1['n_battle']);
                 $friendInfo[$key1]['add_battle'] = $battleInfo['add_battle'];
                 $friendInfo[$key1]['attack'] = $battleInfo['attack'];
                 $friendInfo[$key1]['crit'] = $battleInfo['crit'];
                 $friendInfo[$key1]['hp'] = $battleInfo['hp'];
             }
         }
     }
     //游戏中主角、武将信息获取
     // $messageArr1=CharacterAction::GetAllCharacterInfo($user_id);
     // $messageArr2=GeneralAction::GetAllGeneralInfo($user_id);
     // $messageArr=array_merge($messageArr1,$messageArr2);
     // 关卡基本信息
     $dir = IniFileManager::getRootDir() . "files/csv/" . self::CHECKPOINT_LIST . ".csv";
     $str = "checkpoint_id = " . $requestJsonParam['checkpoint_id'];
     $checkpointArr = Util::readCsv($dir, $str);
     if (empty($checkpointArr)) {
         $view = new JsonView();
         return $this->getViewByJson($view, $messageArr, 0, "game/start_game");
     }
     $pointsNum = $checkpointArr[0]['reward_points'];
     $proArr = array('a' => $checkpointArr[0]['reward_pro_1'], 'b' => $checkpointArr[0]['reward_pro_2'], 'c' => $checkpointArr[0]['reward_pro_3']);
     $sequence = "";
     for ($i = 0; $i < $pointsNum; $i++) {
         $sequence = $sequence . Util::extractRandomAnswer($proArr);
     }
     $messageArr['sequence'] = $sequence;
     $messageArr['score'] = $checkpointArr[0]['grade_score'];
     $messageArr['friendInfo'] = $friendInfo;
     $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key);
     $view = new JsonView();
     return $this->getViewByJson($view, $messageArr, 1, "friend/get_fit_info");
 }