1
This commit is contained in:
parent
0548f58b7c
commit
2aac84bb8a
@ -44,6 +44,37 @@ class MissionController extends BaseAuthedController {
|
|||||||
}
|
}
|
||||||
$missionDb = Mission::find($missionId);
|
$missionDb = Mission::find($missionId);
|
||||||
$missionDto = $this->getMissionDto($missionDb, $missionMeta);
|
$missionDto = $this->getMissionDto($missionDb, $missionMeta);
|
||||||
|
if (!$missionDto) {
|
||||||
|
$this->_rspErr(10, '服务器内部错误');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($missionDto[state] == Mission::RECEIVED_STATE) {
|
||||||
|
$this->_rspErr(2, '不能重复领取');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($missionDto[state] == Mission::NOT_FINISHED_STATE) {
|
||||||
|
$this->_rspErr(3, '任务目标未达成');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($missionDto[state] != Mission::RECEIVEABLE_STATE) {
|
||||||
|
$this->_rspErr(3, '未知任务状态');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$dropMeta = mt\Drop::get($missionMeta['reward']);
|
||||||
|
if (!$dropMeta) {
|
||||||
|
$this->_rspErr(10, '服务器内部错误drop错误');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$propertyChgService = new services\PropertyChgService();
|
||||||
|
$awardService = new services\AwardService();
|
||||||
|
Mission::add($missionId);
|
||||||
|
$missionDb = Mission::find($missionId);
|
||||||
|
$missionDto = $this->getMissionDto($missionDb, $missionMeta);
|
||||||
|
$this->_rspData(array(
|
||||||
|
'award' => $awardService->toDto(),
|
||||||
|
'property_chg' => $propertyChgService->toDto(),
|
||||||
|
'mission_chg' => $missionDto
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getMissionDto($missionDb, $missionMeta)
|
private function getMissionDto($missionDb, $missionMeta)
|
||||||
@ -52,8 +83,18 @@ class MissionController extends BaseAuthedController {
|
|||||||
'mission_id' => $missionMeta['id'],
|
'mission_id' => $missionMeta['id'],
|
||||||
'current' => 0,
|
'current' => 0,
|
||||||
'target' => 0,
|
'target' => 0,
|
||||||
'state' => 0,
|
'state' => Mission::NOT_FINISHED_STATE,
|
||||||
);
|
);
|
||||||
|
switch ($missionMeta['type']) {
|
||||||
|
case mt\Task::DAILY_LOGIN_TIMES_COND:
|
||||||
|
{
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
return $missionDto;
|
return $missionDto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,10 @@ use phpcommon\SqlHelper;
|
|||||||
|
|
||||||
class Mission extends BaseModel {
|
class Mission extends BaseModel {
|
||||||
|
|
||||||
|
const RECEIVEABLE_STATE = 0;
|
||||||
|
const RECEIVED_STATE = 1;
|
||||||
|
const NOT_FINISHED_STATE = 2;
|
||||||
|
|
||||||
public static function find($missionId)
|
public static function find($missionId)
|
||||||
{
|
{
|
||||||
$row = SqlHelper::ormSelectOne(
|
$row = SqlHelper::ormSelectOne(
|
||||||
@ -57,4 +61,25 @@ class Mission extends BaseModel {
|
|||||||
return $missionHash;
|
return $missionHash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function add($missionId)
|
||||||
|
{
|
||||||
|
SqlHelper::upsert(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_mission',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'mission_id' => $missionId
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'modifytime' => myself()->_getNowTime()
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'mission_id' => $missionId,
|
||||||
|
'createtime' => myself()->_getNowTime(),
|
||||||
|
'modifytime' => myself()->_getNowTime()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,19 +11,6 @@ class Drop {
|
|||||||
return array_key_exists($id, self::getMetaList()) ? self::getMetaList()[$id] : null;
|
return array_key_exists($id, self::getMetaList()) ? self::getMetaList()[$id] : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getOldDrop($id)
|
|
||||||
{
|
|
||||||
$meta = self::get($id);
|
|
||||||
return array(
|
|
||||||
'drop_id' => $meta['drop_id'],
|
|
||||||
'item_id' => $meta['item_id'],
|
|
||||||
'num' => $meta['num'],
|
|
||||||
'weight' => $meta['weight'],
|
|
||||||
'type' => $meta['type'],
|
|
||||||
'time' => $meta['time'],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getDropData($meta)
|
public static function getDropData($meta)
|
||||||
{
|
{
|
||||||
$itemIds = splitStr1($meta['item_id']);
|
$itemIds = splitStr1($meta['item_id']);
|
||||||
|
@ -6,6 +6,48 @@ use phpcommon;
|
|||||||
|
|
||||||
class Task {
|
class Task {
|
||||||
|
|
||||||
|
const DAILY_LOGIN_TIMES_COND = 1; //今日登陆
|
||||||
|
const PLAYER_LEVEL_COND = 2; //玩家等级达到X
|
||||||
|
const TOTAL_BATTLE_TIMES_COND = 3; //进行X场比赛
|
||||||
|
const SHARE_GAME_TIMES_COND = 4; //分享1次游戏
|
||||||
|
const SINGLE_BATTLE_TIMES_COND = 5; //进行X场单人比赛
|
||||||
|
const TEAM_BATTLE_TIMES_COND = 6; //进行X场组队比赛
|
||||||
|
const SINGLE_BATTLE_RANK_COND = 7; //单人比赛排名前X
|
||||||
|
const TEAM_BATTLE_RANK_COND = 8; //组队比赛排名前X
|
||||||
|
const TOTAL_KILL_NUM_COND = 9; //累计击败X个敌人
|
||||||
|
const TOTAL_DAMGE_OUT_COND = 10; //累计造成X点伤害
|
||||||
|
const RESCUE_TEAMMATE_TIMES_COND = 11; //救援X个队友
|
||||||
|
const TOTAL_SURVIVAL_TIME_COND = 12; //累计生存X分钟
|
||||||
|
const USE_WEAPON_KILL_NUM_COND = 13; //使用X枪械击杀Y个敌人
|
||||||
|
const USE_WEAPON_DAMGE_OUT_COND = 14; //使用X种枪械对敌人累计造成Y点伤害
|
||||||
|
const USE_WEAPON_SLOT_TIMES_COND = 15; //使用某个槽位的次数 cond_param1=槽位
|
||||||
|
const GET_EQUIP_TIMES_COND = 16; //获得某种类型的装备 cond_param1=equip.type cond_param2=equip.sub_type
|
||||||
|
const TOTAL_DIVING_TIMES_COND = 17; //累计潜水X次
|
||||||
|
const TOTAL_DAMAGE_IN_COND = 18; //累计受到X点伤害
|
||||||
|
const TOTAL_RECOVER_HP_COND = 19; //累计恢复X点血量
|
||||||
|
const TOTAL_OPEN_AIRDROP_COND = 20; //累计打开空投补给X次
|
||||||
|
const BATTLE_IN_HERO_LV_COND = 21; //单局内英雄技能升级到X级
|
||||||
|
const BATTLE_IN_GUN_LV_COND = 22; //单局内英雄专属枪械升到X级
|
||||||
|
const TOTAL_MEDICINE_TIMES_COND = 23; //累计使用X药品Y次
|
||||||
|
const TOTAL_DESTORY_CAR_TIMES_COND = 24; //累计破坏载具X个
|
||||||
|
const TOTAL_USE_CAMOUFLAGE_TIMES_COND = 25; //累计使用X个伪装物
|
||||||
|
const TOTAL_USE_SKILL_TIMES_COND = 26; //累计使用X次角色技能
|
||||||
|
const RIDE_CAR_MOVE_DISTANCE_COND = 27; //驾驶或乘坐载具累计移动X米(所有模式)
|
||||||
|
const RIDE_CAR_KILL_NUM_COND = 28; //驾驶或乘坐载具累计击杀X个敌人(所有模式)
|
||||||
|
const LIKE_TEAMMATE_TIMES_COND = 29; //战斗结算中累计给队友点赞X次
|
||||||
|
const SEASON_LEVEL_COND = 30; //赛季段位达到X
|
||||||
|
const CONSUME_GOLD_COND = 31; //消耗X个金币
|
||||||
|
const BATTLE_RANK_COND = 32; //获得X级评价Y次
|
||||||
|
const FINISHED_ALL_DAILY_MISSION_COND = 33; //完成所有每日任务
|
||||||
|
const SHOP_BUY_TIMES_COND = 34; //在X商店消费Y次
|
||||||
|
const TOTAL_UPGRADE_TALENT_LV_COND = 35; //科研升级X次
|
||||||
|
const TOTAL_GET_HERO_SKIN_COUNT_COND = 36; //累计获得X个角色时装
|
||||||
|
const TOTAL_GET_GUN_SKIN_COUNT_COND = 37; //累计获得X个枪械皮肤
|
||||||
|
const TOTAL_INVITE_FRIEND_TIMES_COND = 38; //邀请好友组队X次
|
||||||
|
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个战队
|
||||||
|
|
||||||
public static function get($id)
|
public static function get($id)
|
||||||
{
|
{
|
||||||
return getXVal(self::getMetaList(), $id);
|
return getXVal(self::getMetaList(), $id);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user