This commit is contained in:
aozhiwei 2021-12-03 16:20:38 +08:00
parent 3c35abb402
commit 318a0b2a97
4 changed files with 292 additions and 4 deletions

View File

@ -244,14 +244,23 @@ CREATE TABLE `t_season` (
`season_id` int(11) NOT NULL DEFAULT '0' COMMENT '赛季id',
`card_lv` int(11) NOT NULL DEFAULT '0' COMMENT '赛季手册等级',
`card_exp` int(11) NOT NULL DEFAULT '0' COMMENT '赛季手册经验',
`total_times` int(11) NOT NULL DEFAULT '0' COMMENT '赛季场次总数',
`win_times` int(11) NOT NULL DEFAULT '0' COMMENT '赛季胜利场次',
`total_score` int(11) NOT NULL DEFAULT '0' COMMENT '赛季积分',
`max_score` int(11) NOT NULL DEFAULT '0' COMMENT '赛季最高积分',
`gift_state1` int(11) NOT NULL DEFAULT '0' COMMENT '普通礼包购买状态 0:未购 1:已购',
`gift_buytime1` int(11) NOT NULL DEFAULT '0' COMMENT '普通礼包购买时间',
`gift_state2` int(11) NOT NULL DEFAULT '0' COMMENT '豪华礼包购买状态 0:未购 1:已购',
`gift_buytime2` int(11) NOT NULL DEFAULT '0' COMMENT '豪华礼包购买时间',
`total_battle_times` int(11) NOT NULL DEFAULT '0' COMMENT '总战斗次数',
`total_win_times` int(11) NOT NULL DEFAULT '0' COMMENT '总胜利次数',
`total_kills_times` int(11) NOT NULL DEFAULT '0' COMMENT '总击杀数',
`max_kills_times` int(11) NOT NULL DEFAULT '0' COMMENT '最高击杀数',
`total_damage_out` bigint NOT NULL DEFAULT '0' COMMENT '总伤害输出',
`max_damage_out` bigint NOT NULL DEFAULT '0' COMMENT '最高伤害输出',
`total_damage_in` bigint NOT NULL DEFAULT '0' COMMENT '总伤害输入',
`total_recover_hp` bigint NOT NULL DEFAULT '0' COMMENT '总治疗量',
`max_recover_hp` bigint NOT NULL DEFAULT '0' COMMENT '最高治疗量',
`total_alive_time` bigint NOT NULL DEFAULT '0' COMMENT '总存活时间',
`max_alive_time` bigint NOT NULL DEFAULT '0' COMMENT '最高存活时间',
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
PRIMARY KEY (`idx`),

View File

@ -7,13 +7,13 @@ require_once('mt/Parameter.php');
require_once('mt/Drop.php');
require_once('mt/EquipUpgrade.php');
require_once('mt/Season.php');
require_once('mt/SeasonPoint.php');
require_once('mt/RankReward.php');
require_once('mt/Equip.php');
require_once('mt/Hero.php');
require_once('mt/Robot.php');
require_once('services/PropertyChgService.php');
require_once('services/SeasonService.php');
use phpcommon\SqlHelper;
use models\User;
@ -95,7 +95,71 @@ class BattleController extends BaseAuthedController {
private function updateSeason($userInfo)
{
$fieldsKv = array(
'total_battle_times' => function () {
return 'total_battle_times + 1';
},
);
if (getReqVal('rank', 0) == 1) {
$fieldsKv['total_win_times'] = function () {
return 'total_win_times + 1';
};
}
$kills = getReqVal('kills', 0);
if ($kills > 0) {
$fieldsKv['total_kills_times'] = function () {
return "total_kills_times + ${kills}";
};
$fieldsKv['max_kills_times'] = function () {
return "GREATEST(max_kills_times, ${kills})";
};
}
$damageOut = getReqVal('damage_out', 0);
if ($damageOut > 0) {
$fieldsKv['total_damage_out'] = function () {
return "total_damage_out + ${damageOut}";
};
$fieldsKv['max_damage_out'] = function () {
return "GREATEST(max_damage_out, ${damageOut})";
};
}
$damageIn = getReqVal('damage_in', 0);
if ($damageIn > 0) {
$fieldsKv['total_damage_in'] = function () {
return "total_damage_in + ${damageIn}";
};
}
$recoverHp = getReqVal('recover_hp', 0);
if ($recoverHp > 0) {
$fieldsKv['total_recover_hp'] = function () {
return "total_recover_hp + ${recoverHp}";
};
$fieldsKv['max_recover_hp'] = function () {
return "GREATEST(max_recover_hp, ${recoverHp})";
};
}
$aliveTime = getReqVal('alive_time', 0);
if ($aliveTime > 0) {
$fieldsKv['total_alive_time'] = function () {
return "total_alive_time + ${aliveTime}";
};
$fieldsKv['max_alive_time'] = function () {
return "GREATEST(max_alive_time, ${aliveTime})";
};
}
$currSeasonMeta = mt\Season::getCurrentSeason();
if ($currSeasonMeta && count($fieldsKv) > 0) {
$seasonService = new services\SeasonService();
if (!$seasonService->checkSeason($userInfo)) {
$userInfo = $this->_safeGetOrmUserInfo();
}
$seasonDb = Season::find($currSeasonMeta['id']);
if (!$seasonDb) {
Season::add($currSeasonMeta['id']);
$seasonDb = Season::find($currSeasonMeta['id']);
}
Season::update($fieldsKv);
}
}
private function updateMission($userInfo)

View File

@ -103,6 +103,207 @@ class MissionController extends BaseAuthedController {
switch ($missionMeta['type']) {
case mt\Task::DAILY_LOGIN_TIMES_COND:
{
//今日登陆
}
break;
case mt\Task::PLAYER_LEVEL_COND:
{
//玩家等级达到X
}
break;
case mt\Task::TOTAL_BATTLE_TIMES_COND:
{
//进行X场比赛
}
break;
case mt\Task::SHARE_GAME_TIMES_COND:
{
//分享1次游戏
}
break;
case mt\Task::SINGLE_BATTLE_TIMES_COND:
{
//进行X场单人比赛
}
break;
case mt\Task::TEAM_BATTLE_TIMES_COND:
{
//进行X场组队比赛
}
break;
case mt\Task::SINGLE_BATTLE_RANK_COND:
{
//单人比赛排名前X
}
break;
case mt\Task::TEAM_BATTLE_RANK_COND:
{
//组队比赛排名前X
}
break;
case mt\Task::TOTAL_KILL_NUM_COND:
{
//累计击败X个敌人
}
break;
case mt\Task::TOTAL_DAMGE_OUT_COND:
{
//累计造成X点伤害
}
break;
case mt\Task::RESCUE_TEAMMATE_TIMES_COND:
{
//救援X个队友
}
break;
case mt\Task::TOTAL_SURVIVAL_TIME_COND:
{
//累计生存X分钟
}
break;
case mt\Task::USE_WEAPON_KILL_NUM_COND:
{
//使用X枪械击杀Y个敌人
}
break;
case mt\Task::USE_WEAPON_DAMGE_OUT_COND:
{
//使用X种枪械对敌人累计造成Y点伤害
}
break;
case mt\Task::USE_WEAPON_SLOT_TIMES_COND:
{
//使用某个槽位的次数 cond_param1=槽位
}
break;
case mt\Task::GET_EQUIP_TIMES_COND:
{
//获得某种类型的装备 cond_param1=equip.type cond_param2=equip.sub_type
}
break;
case mt\Task::TOTAL_DIVING_TIMES_COND:
{
//累计潜水X次
}
break;
case mt\Task::TOTAL_DAMAGE_IN_COND:
{
//累计受到X点伤害
}
break;
case mt\Task::TOTAL_RECOVER_HP_COND:
{
//累计恢复X点血量
}
break;
case mt\Task::TOTAL_OPEN_AIRDROP_COND:
{
//累计打开空投补给X次
}
break;
case mt\Task::BATTLE_IN_HERO_LV_COND:
{
//单局内英雄技能升级到X级
}
break;
case mt\Task::BATTLE_IN_GUN_LV_COND:
{
//单局内英雄专属枪械升到X级
}
break;
case mt\Task::TOTAL_MEDICINE_TIMES_COND:
{
//累计使用X药品Y次
}
break;
case mt\Task::TOTAL_DESTORY_CAR_TIMES_COND:
{
//累计破坏载具X个
}
break;
case mt\Task::TOTAL_USE_CAMOUFLAGE_TIMES_COND:
{
//累计使用X个伪装物
}
break;
case mt\Task::TOTAL_USE_SKILL_TIMES_COND:
{
//累计使用X次角色技能
}
break;
case mt\Task::RIDE_CAR_MOVE_DISTANCE_COND:
{
//驾驶或乘坐载具累计移动X米所有模式
}
break;
case mt\Task::RIDE_CAR_KILL_NUM_COND:
{
//驾驶或乘坐载具累计击杀X个敌人所有模式
}
break;
case mt\Task::LIKE_TEAMMATE_TIMES_COND:
{
//战斗结算中累计给队友点赞X次
}
break;
case mt\Task::SEASON_LEVEL_COND:
{
//赛季段位达到X
}
break;
case mt\Task::CONSUME_GOLD_COND:
{
//消耗X个金币
}
break;
case mt\Task::BATTLE_RANK_COND:
{
//获得X级评价Y次
}
break;
case mt\Task::FINISHED_ALL_DAILY_MISSION_COND:
{
//完成所有每日任务
}
break;
case mt\Task::SHOP_BUY_TIMES_COND:
{
//在X商店消费Y次
}
break;
case mt\Task::TOTAL_UPGRADE_TALENT_LV_COND:
{
//科研升级X次
}
break;
case mt\Task::TOTAL_GET_HERO_SKIN_COUNT_COND:
{
//累计获得X个角色时装
}
break;
case mt\Task::TOTAL_GET_GUN_SKIN_COUNT_COND:
{
//累计获得X个枪械皮肤
}
break;
case mt\Task::TOTAL_INVITE_FRIEND_TIMES_COND:
{
//邀请好友组队X次
}
break;
case mt\Task::TOTAL_GIVE_FRIEND_GOLD_COUNT_COND:
{
//赠送X个好友金币
}
break;
case mt\Task::TOTAL_INVITE_FRIEND_ONLINE_TIMES_COND:
{
//邀请X个好友上线
}
break;
case mt\Task::TOTAL_CREATE_OR_JOIN_GUILD_COUNT_COND:
{
//创建或加入1个战队
}
break;
default:

View File

@ -88,4 +88,18 @@ class Season extends BaseModel {
);
}
public static function update($fieldsKv)
{
SqlHelper::update(
myself()->_getSelfMysql(),
't_season',
array(
'account_id' => myself()->_getAccountId(),
'season_id' => $seasonId,
),
$fieldsKv
);
}
}