This commit is contained in:
aozhiwei 2021-12-10 17:13:53 +08:00
parent 8c39302e93
commit 083e563cc5
7 changed files with 72 additions and 230 deletions

View File

@ -12,20 +12,12 @@ class Team(object):
'url': 'webapp/index.php?c=Team&a=createTeam',
'params': [
_common.ReqHead(),
['node_id', 0, '节点id'],
['map_id', 0, '地图id'],
],
'response': [
_common.RspHead(),
]
},
{
'desc': 'resetRoom',
'group': 'Team',
'url': 'webapp/index.php?c=Team&a=resetRoom',
'params': [
_common.ReqHead(),
],
'response': [
_common.RspHead(),
['team_info', _common.TeamInfo(), '队伍信息'],
]
},
{
@ -34,42 +26,11 @@ class Team(object):
'url': 'webapp/index.php?c=Team&a=teamInfo',
'params': [
_common.ReqHead(),
['team_uuid', '', '队伍唯一id'],
],
'response': [
_common.RspHead(),
]
},
{
'desc': 'getSelectHeroTeamInfo',
'group': 'Team',
'url': 'webapp/index.php?c=Team&a=getSelectHeroTeamInfo',
'params': [
_common.ReqHead(),
],
'response': [
_common.RspHead(),
]
},
{
'desc': 'selectHero',
'group': 'Team',
'url': 'webapp/index.php?c=Team&a=selectHero',
'params': [
_common.ReqHead(),
],
'response': [
_common.RspHead(),
]
},
{
'desc': 'readyGame',
'group': 'Team',
'url': 'webapp/index.php?c=Team&a=readyGame',
'params': [
_common.ReqHead(),
],
'response': [
_common.RspHead(),
['team_info', _common.TeamInfo(), '队伍信息'],
]
},
{
@ -83,17 +44,6 @@ class Team(object):
_common.RspHead(),
]
},
{
'desc': 'kickoutMember',
'group': 'Team',
'url': 'webapp/index.php?c=Team&a=kickoutMember',
'params': [
_common.ReqHead(),
],
'response': [
_common.RspHead(),
]
},
{
'desc': 'leaveTeam',
'group': 'Team',
@ -105,17 +55,6 @@ class Team(object):
_common.RspHead(),
]
},
{
'desc': 'updateTeam',
'group': 'Team',
'url': 'webapp/index.php?c=Team&a=updateTeam',
'params': [
_common.ReqHead(),
],
'response': [
_common.RspHead(),
]
},
{
'desc': 'startGame',
'group': 'Team',

View File

@ -302,3 +302,31 @@ class RedDot(object):
['type', 0, '红点类型'],
['state', 0, '红点状态 0:无 1:有'],
]
class TeamMember(object):
def __init__(self):
self.fields = [
['account_id', '', '账号id'],
['name', '', '用户名字'],
['sex', 0, '性别'],
['head_id', 0, '头像id'],
['head_frame', 0, '头像框id'],
['level', 0, '等级'],
['exp', 0, '经验'],
['rank', 0, '段位'],
['game_times', 0, '游戏次数'],
['win_times', 0, '胜利次数'],
['kills', 0, '击杀数'],
['createtime', 0, '账号创建时间'],
]
class TeamInfo(object):
def __init__(self):
self.fields = [
['team_uuid', '', '队伍唯一id'],
['map_id', 0, '地图id'],
['state', 0, '0:未开始 1:准备就绪(这时客户端进入长链接走组队逻辑)'],
['member_list', [TeamMember()], '队伍成员列表(包含自己)'],
]

View File

@ -64,16 +64,25 @@ class MissionController extends BaseAuthedController {
$type = getReqVal('type', 0);
$missionMetaList = mt\Task::getCustomTypeMetaList($type);
$missionHash = Mission::allToHash();
$missionDtoList = array();
$missionDtoList1 = array();
$missionDtoList2 = array();
foreach ($missionMetaList as $missionMeta) {
$missionDb = getXVal($missionHash, $missionMeta['id'], null);
$missionDto = $this->missionService->getMissionDto(
$this->userInfo, $this->seasonDb, $missionDb, $missionMeta);
array_push($missionDtoList, $missionDto);
if ($missionMeta['type'] == mt\Task::DAILY_MISSON_TYPE) {
if ($missionMeta['subtype'] == mt\Task::DAILY_ACTIVE_VALUE_MISSON_SUBTYPE) {
array_push($missionDtoList1, $missionDto);
} else {
array_push($missionDtoList2, $missionDto);
}
} else {
array_push($missionDtoList1, $missionDto);
}
}
$this->_rspData(array(
'mission_list1' => $missionDtoList,
'mission_list2' => array()
'mission_list1' => $missionDtoList1,
'mission_list2' => $missionDtoList2
));
}

View File

@ -70,10 +70,10 @@ class SeasonCardController extends BaseAuthedController {
'info' => array(
'season_id' => $this->currSeasonMeta['id'],
'season_begin_time' => strtotime($this->currSeasonMeta['begin_time']),
'season_begin_end' => strtotime($this->currSeasonMeta['end_time']),
'season_end_time' => strtotime($this->currSeasonMeta['end_time']),
'card_lv' => $this->seasonDb ? $this->seasonDb['card_lv'] : 1,
'card_exp' => $this->seasonDb ? $this->seasonDb['card_exp'] : 0,
'card_max_exp' => $this->seasonDb ? $this->seasonDb['card_exp'] : 0,
'card_max_exp' => $this->seasonDb ? $this->seasonDb['card_exp'] : 1,
'gift_packages' => $this->getGiftPackages(),
'received_level_rewards1' => $this->getReceivedLevelRewards(SeasonCard::NORMAL_PACKAGE_ID),
'received_level_rewards2' => $this->getReceivedLevelRewards(SeasonCard::VIP_PACKAGE_ID),

View File

@ -1,6 +1,5 @@
<?php
class TeamController extends BaseAuthedController {
public function createTeam()
@ -84,33 +83,7 @@ class TeamController extends BaseAuthedController {
'team_uuid' => $team_uuid
));
}
public function resetRoom()//解散房间
{
if (!isset($_REQUEST['team_uuid'])) {
return;
}
$team_uuid = $_REQUEST['team_uuid'];
$r = $this->_getRedis($team_uuid);
$account_id = $_REQUEST['account_id'];
$sessionid = $_REQUEST['session_id'];
$user_db_str = $r->get(TEAMID_KEY . $team_uuid);
if (empty($user_db_str)) {
phpcommon\sendError(ERR_USER_BASE + 1,'session失效1');
return;
}
$user_db = json_decode($user_db_str, true);
if (empty($user_db)) {
phpcommon\sendError(ERR_USER_BASE + 1,'session失效2');
return;
}
$user_db['state'] = 3;
$r->set(TEAMID_KEY . $team_uuid, json_encode($user_db));
$r -> pexpire(TEAMID_KEY . $team_uuid, 1000 * 600);
$this->leaveTeam();
}
public function teamInfo()
{
if (!isset($_REQUEST['team_uuid'])) {
@ -160,137 +133,7 @@ class TeamController extends BaseAuthedController {
'map_id' => $user_db['map_id'],
));
}
public function getSelectHeroTeamInfo()
{
if (!isset($_REQUEST['team_uuid'])) {
return;
}
$team_uuid = $_REQUEST['team_uuid'];
$r = $this->_getRedis($team_uuid);
$account_id = $_REQUEST['account_id'];
$sessionid = $_REQUEST['session_id'];
$user_db_str = $r->get(TEAMID_KEY . $team_uuid);
if (empty($user_db_str)) {
phpcommon\sendError(ERR_USER_BASE + 1,'session失效1');
return;
}
$user_db = json_decode($user_db_str, true);
if (empty($user_db)) {
phpcommon\sendError(ERR_USER_BASE + 1,'session失效2');
return;
}
$member_list = array();
foreach ($user_db['member_list'] as $member) {
array_push($member_list, array(
'idx' => $member['idx'],
'account_id' => $member['account_id'],
'name' => $member['name'],
'hiID' => $member['hiID'],
'readyState' => $member['readyState'],
'hiFrameID' => $member['hiFrameID'],
'roomManager' => $member['roomManager'],
'sex' => $member['sex'],
'selectHeroID' => $member['selectHeroID'],
'selectHeroSkinID' => $member['selectHeroSkinID']
));
}
echo json_encode(array(
'errcode' => 0,
'errmsg'=> '',
'team_uuid' => $team_uuid,
'state' => $user_db['state'],
'member_list' => $member_list,
'model' => $user_db['model'],
'map_id' => $user_db['map_id'],
));
}
public function selectHero()
{
if (!isset($_REQUEST['team_uuid'])) {
return;
}
$team_uuid = $_REQUEST['team_uuid'];
$r = $this->_getRedis($team_uuid);
$user_db_str = $r->get(TEAMID_KEY.$team_uuid);
if (empty($user_db_str)) {
phpcommon\sendError(ERR_USER_BASE + 1,'session失效1');
return;
}
$user_db = json_decode($user_db_str, true);
if (empty($user_db)) {
phpcommon\sendError(ERR_USER_BASE + 1, 'session失效2');
return;
}
$type = $_REQUEST['type'];
$acctID = $_REQUEST['account_id'];
// error_log("SelectHero".$type."==".$acctID);
foreach ($user_db['member_list'] as &$memberlist)
{
if($memberlist['account_id'] == $acctID)
{
if($type == 1)
{
$heroID = $_REQUEST['heroID'];
$heroSkinID = $_REQUEST['heroSkinID'];
$memberlist['selectHeroID'] = $heroID;
$memberlist['selectHeroSkinID'] = $heroSkinID;
}
else if($type == 2)
{
$readyState = $_REQUEST['readyState'];
$memberlist['readyState'] = $readyState;
}
break;
}
}
$r->set(TEAMID_KEY . $team_uuid, json_encode($user_db));
$r -> pexpire(TEAMID_KEY . $team_uuid, 1000 * 600);
echo json_encode(array(
'errcode' => 0,
'errmsg' => ''
));
}
public function readyGame()
{
if (!isset($_REQUEST['team_uuid'])) {
return;
}
$team_uuid = $_REQUEST['team_uuid'];
$r = $this->_getRedis($team_uuid);
$user_db_str = $r->get(TEAMID_KEY.$team_uuid);
if (empty($user_db_str)) {
phpcommon\sendError(ERR_USER_BASE + 1,'session失效1');
return;
}
$user_db = json_decode($user_db_str, true);
if (empty($user_db)) {
phpcommon\sendError(ERR_USER_BASE + 1, 'session失效2');
return;
}
$readyState = $_REQUEST['readyState'];
// $user_db['member_list'] = array_values($user_db['member_list']);
$acctID = $_REQUEST['account_id'];
foreach ($user_db['member_list'] as &$memberlist)
{
if($memberlist['account_id'] == $acctID)
{
$memberlist['readyState'] = $readyState;
break;
}
}
$r->set(TEAMID_KEY . $team_uuid, json_encode($user_db));
$r -> pexpire(TEAMID_KEY . $team_uuid, 1000 * 600);
echo json_encode(array(
'errcode' => 0,
'errmsg' => ''
));
}
public function joinTeam()
{
if (!isset($_REQUEST['team_uuid'])) {
@ -362,7 +205,7 @@ class TeamController extends BaseAuthedController {
'game_times' => $row['game_times'],
'win_times' => $row['win_times'],
'kills' => $row['kills'],
'create_time' => $row['create_time'],
'cre3ate_time' => $row['create_time'],
'hiID' => $hiID,
'hiFrameID' => $hiFrameID,
'readyState' => $readyState,

View File

@ -47,6 +47,9 @@ class Task {
const TOTAL_GIVE_FRIEND_GOLD_COUNT_COND = 40; //赠送X个好友金币
const TOTAL_INVITE_FRIEND_ONLINE_TIMES_COND = 41; //邀请X个好友上线
const TOTAL_CREATE_OR_JOIN_GUILD_COUNT_COND = 42; //创建或加入1个战队
const T1OTAL_CREATE_OR_JOIN_GUILD_COUNT_COND = 43; //段位达到X且进行Y场比赛
const DAILY_ACTIVE_VALUE_COND = 44; //每日活跃度达到X
const WEEKLY_ACTIVE_VALUE_COND = 45; //每周活跃度达到X
const DAILY_MISSON_TYPE = 1;
const ACHIEVEMENT_MISSON_TYPE = 2;
@ -58,6 +61,8 @@ class Task {
const SEASON_CHALLENGE_MISSON_SUBTYPE = 2;
const SEASON_ACTIVE_MISSON_SUBTYPE = 3;
const DAILY_ACTIVE_VALUE_MISSON_SUBTYPE = 1;
const SEASON_MISSON_FLAG = 1;
const DAILY_MISSION_CUSTOM_TYPE = 1;

View File

@ -308,6 +308,24 @@ class MissionService extends BaseService {
$handled = false;
}
break;
case mt\Task::T1OTAL_CREATE_OR_JOIN_GUILD_COUNT_COND:
{
//段位达到X且进行Y场比赛
$handled = false;
}
break;
case mt\Task::DAILY_ACTIVE_VALUE_COND:
{
//每日活跃度达到X
//$handled = false;
}
break;
case mt\Task::WEEKLY_ACTIVE_VALUE_COND:
{
//每周活跃度达到X
$handled = false;
}
break;
default:
{
}