Merge branch 'hjb' of git.kingsome.cn:server/game2006api into hjb

This commit is contained in:
hujiabin 2024-03-26 20:31:47 +08:00
commit 86c60d3a7b
3 changed files with 96 additions and 49 deletions

View File

@ -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;
}
}

View File

@ -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
)
));
}

View File

@ -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;
}