diff --git a/webapp/controller/BattleController.class.php b/webapp/controller/BattleController.class.php index 1ca2b374..8b90d457 100644 --- a/webapp/controller/BattleController.class.php +++ b/webapp/controller/BattleController.class.php @@ -19,6 +19,7 @@ require_once('services/FormulaService.php'); require_once('mt/RankSeason.php'); require_once('mt/ServerTask.php'); require_once('mt/ServerTaskTime.php'); +require_once('mt/Robot.php'); use phpcommon\SqlHelper; use models\Hero; @@ -435,6 +436,11 @@ class BattleController extends BaseAuthedController { public function getNormalBattleData() { + $version = getReqVal('version', 0); + $ignoreAndroid = false; + if ($version < 1) { + $ignoreAndroid = true; + } $sign = ''; $customData = array(); { @@ -474,64 +480,85 @@ class BattleController extends BaseAuthedController { $currSeason = mt\RankSeason::getCurrentSeason(); foreach ($customData['team_list'] as $team) { + if ($ignoreAndroid) { + $isAllAndroid = true; + foreach ($team['members'] as $member) { + if (!$member['is_android']) { + $isAllAndroid = false; + break; + } + } + if ($isAllAndroid) { + continue; + } + } $teamInfo = array( 'team_uuid' => $team['team_uuid'], 'members' => array() ); foreach ($team['members'] as $member) { - $accountId = $member['account_id']; - $switchOk = $this->switchOnlineAccount($accountId); - if (!$switchOk) { - myself()->_rspErr(1, 'data error'); - return; + if ($ignoreAndroid && $member['is_android']) { + continue; } - $info = $this->genInitBattleData(); - $userDb = User::find($accountId); - if ($userDb) { - $userPresetInfo = User::toPreset($userDb); - $info['elo'] = $userDb['elo']; - $info['rank'] = $userDb['rank']; - $info['name'] = $userPresetInfo['name']; - $info['level'] = $userPresetInfo['level']; - $info['parachute'] = $userPresetInfo['parachute']; - $info['hero_uniid'] = $userPresetInfo['hero_uniId']; - $info['hero_id'] = $userPresetInfo['hero_id']; - $info['hero_skin'] = $userPresetInfo['hero_skin']; - $info['skill_id'] = $userPresetInfo['presetInfo']['skill_id']; - $info['weapon_uuid1'] = $userPresetInfo['presetInfo']['weapon_uid1']; - $info['weapon_uuid2'] = $userPresetInfo['presetInfo']['weapon_uid2']; - $chipPageDb = ChipPage::find($userPresetInfo['hero_uniId']); - $info['chip_page'] = ChipPage::toDtoBattle($chipPageDb); - $info['honor_info'] = $userPresetInfo['honor_info']; - $battleDb = Battle::find($accountId); - if ($battleDb){ - $battleData = json_decode($battleDb['battle_data'], true); - $seasonBattleData = isset($battleData) ? getXVal($battleData, 'data', array()) : array(); - $info['battle_times'] = getXVal($seasonBattleData, 'total_battle_times', 0); + if ($member['is_android']) { + $info = $this->getAndroidInfo($member); + array_push($teamInfo['members'], $info); + } else { + $accountId = $member['account_id']; + $switchOk = $this->switchOnlineAccount($accountId); + if (!$switchOk) { + myself()->_rspErr(1, 'data error'); + return; } + $info = $this->genInitBattleData(); + $userDb = User::find($accountId); + if ($userDb) { + $userPresetInfo = User::toPreset($userDb); + $info['elo'] = $userDb['elo']; + $info['rank'] = $userDb['rank']; + $info['head_id'] = $userDb['head_id']; + $info['name'] = $userPresetInfo['name']; + $info['level'] = $userPresetInfo['level']; + $info['parachute'] = $userPresetInfo['parachute']; + $info['hero_uniid'] = $userPresetInfo['hero_uniId']; + $info['hero_id'] = $userPresetInfo['hero_id']; + $info['hero_skin'] = $userPresetInfo['hero_skin']; + $info['skill_id'] = $userPresetInfo['presetInfo']['skill_id']; + $info['weapon_uuid1'] = $userPresetInfo['presetInfo']['weapon_uid1']; + $info['weapon_uuid2'] = $userPresetInfo['presetInfo']['weapon_uid2']; + $chipPageDb = ChipPage::find($userPresetInfo['hero_uniId']); + $info['chip_page'] = ChipPage::toDtoBattle($chipPageDb); + $info['honor_info'] = $userPresetInfo['honor_info']; + $battleDb = Battle::find($accountId); + if ($battleDb){ + $battleData = json_decode($battleDb['battle_data'], true); + $seasonBattleData = isset($battleData) ? getXVal($battleData, 'data', array()) : array(); + $info['battle_times'] = getXVal($seasonBattleData, 'total_battle_times', 0); + } - $heroDb = Hero::findByAccountId($accountId,$info['hero_uniid']); - if ($heroDb) { - $info['is_valid_battle'] = 1; - $info['hero_dto'] = Hero::toDto($heroDb); - } else { - $info['errcode'] = 51; - $info['errmsg'] = 'paramater error'; - } + $heroDb = Hero::findByAccountId($accountId,$info['hero_uniid']); + if ($heroDb) { + $info['is_valid_battle'] = 1; + $info['hero_dto'] = Hero::toDto($heroDb); + } else { + $info['errcode'] = 51; + $info['errmsg'] = 'paramater error'; + } - { - $itemDb = Bag::findEx($accountId, V_ITEM_REVIVE_COIN); - $info['revive_coin'] = $itemDb && $itemDb['item_num'] > 0 ? $itemDb['item_num'] : 0; - } + { + $itemDb = Bag::findEx($accountId, V_ITEM_REVIVE_COIN); + $info['revive_coin'] = $itemDb && $itemDb['item_num'] > 0 ? $itemDb['item_num'] : 0; + } - { - $info['match_mode'] = 0; - if ($currSeason){ - $info['match_mode'] = 1; + { + $info['match_mode'] = 0; + if ($currSeason){ + $info['match_mode'] = 1; + } } } + array_push($teamInfo['members'], $info); } - array_push($teamInfo['members'], $info); } array_push($data['team_list'], $teamInfo); } @@ -826,4 +853,24 @@ class BattleController extends BaseAuthedController { )); } + private function getAndroidInfo($member) + { + $robotMeta = mt\Robot::get($member['robot_id']); + $info = array( + 'account_id' => $member['account_id'], + 'name' => $member['name'], + 'is_valid_battle' => 1, + 'errcode' => 0, + 'errmsg' => '', + 'level' => 1, + 'is_android' => 1, + 'robot_id' => $member['robot_id'], + 'hero_dto' => array( + 'hero_uniid' => '', + 'hero_id' => $robotMeta['hero_id'] + ) + ); + return $info; + } + } diff --git a/webapp/controller/UserController.class.php b/webapp/controller/UserController.class.php index 4582e691..f0ff03dc 100644 --- a/webapp/controller/UserController.class.php +++ b/webapp/controller/UserController.class.php @@ -463,7 +463,7 @@ class UserController extends BaseAuthedController { 'is_moba' => 0, 'is_open' => 0 ); - if (empty($mapId)) { + if (!empty($mapId)) { $mapMeta = mt\Map::get($mapId); if ($mapMeta) { $mapInfo = $mapMeta; @@ -480,7 +480,7 @@ class UserController extends BaseAuthedController { 'is_moba' => 0, 'is_open' => 0 ); - if (empty($mapId)) { + if (!empty($mapId)) { $mapMeta = mt\Map::get($mapId); if ($mapMeta) { $mapInfo = $mapMeta; @@ -513,7 +513,7 @@ class UserController extends BaseAuthedController { 'info' => array( 'user_info' => $userInfo, 'hero_info' => $heroInfo, - 'map_info' => $mapMeta + 'map_info' => $mapInfo ) )); } diff --git a/webapp/mt/Robot.php b/webapp/mt/Robot.php index cf75202e..578ca69b 100644 --- a/webapp/mt/Robot.php +++ b/webapp/mt/Robot.php @@ -36,7 +36,7 @@ class Robot { protected static function getMetaList() { if (!self::$metaList) { - self::$metaList = getMetaTable('robot@robot1.php'); + self::$metaList = getMetaTable('robot@robot.php'); } return self::$metaList; }