用户成长获得奖励
This commit is contained in:
parent
536f0a4456
commit
eac4fdcbe8
@ -16,6 +16,8 @@ require_once('models/Chip.php');
|
||||
require_once('mt/Parameter.php');
|
||||
require_once('mt/RankSeason.php');
|
||||
require_once('mt/LevelUp.php');
|
||||
require_once('mt/Task.php');
|
||||
require_once('mt/Drop.php');
|
||||
|
||||
use phpcommon\SqlHelper;
|
||||
use models\Bag;
|
||||
@ -228,7 +230,7 @@ class BaseAuthedController extends BaseController {
|
||||
return in_array($itemId, array(V_ITEM_GOLD, V_ITEM_DIAMOND, V_ITEM_EXP, V_ITEM_ACTIVE,V_ITEM_BCEG));
|
||||
}
|
||||
|
||||
public function _addVirtualItem($itemId, $itemNum)
|
||||
public function _addVirtualItem($itemId, $itemNum,$awardService,$propertyChgService)
|
||||
{
|
||||
if ($itemNum <= 0){
|
||||
return;
|
||||
@ -272,6 +274,18 @@ class BaseAuthedController extends BaseController {
|
||||
$newlV = $userDb['level'];
|
||||
$newExp = $userDb['exp']+$itemNum;
|
||||
\mt\LevelUp::getExpByLv($newlV,$newExp);
|
||||
if ($newlV != $userDb['level']){
|
||||
//协议通知前端等级变更
|
||||
$propertyChgService->addUserLevelChg();
|
||||
//添加奖励
|
||||
for ($i=$userDb['level']+1; $i<=$newlV; $i++){
|
||||
$taskMeta = \mt\Task::findAchievementLevel($i);
|
||||
if ($taskMeta){
|
||||
$dropMeta = mt\Drop::get($taskMeta['reward']);
|
||||
$this->_scatterDrop('mission:' . $taskMeta['id'], $dropMeta, $awardService, $propertyChgService);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->_updateUserInfo(array(
|
||||
'level' => $newlV,
|
||||
'exp' => $newExp
|
||||
@ -339,7 +353,7 @@ class BaseAuthedController extends BaseController {
|
||||
foreach ($items as $item) {
|
||||
$awardService->addItem($item['item_id'], $item['item_num']);
|
||||
if ($this->_isVirtualItem($item['item_id'])) {
|
||||
$this->_addVirtualItem($item['item_id'], $item['item_num']);
|
||||
$this->_addVirtualItem($item['item_id'], $item['item_num'],$awardService,$propertyService);
|
||||
$propertyService->addUserChg();
|
||||
} else {
|
||||
$itemMeta = mt\Item::get($item['item_id']);
|
||||
|
@ -71,12 +71,26 @@ class Task {
|
||||
const DAILY_MISSION_CUSTOM_TYPE = 1;
|
||||
const SEASON_WEEKLY_MISSION_CUSTOM_TYPE = 2;
|
||||
const OFFER_REWARD_MISSION_CUSTOM_TYPE = 3;
|
||||
const ACHIEVEMENT_MISSION_CUSTOM_TYPE = 4;
|
||||
|
||||
public static function get($id)
|
||||
{
|
||||
return getXVal(self::getMetaList(), $id);
|
||||
}
|
||||
|
||||
public static function findAchievementLevel($level){
|
||||
$taskMeta = array();
|
||||
foreach (self::getMetaList() as $meta) {
|
||||
if (
|
||||
$meta['type'] == self::ACHIEVEMENT_MISSON_TYPE &&
|
||||
$meta['target'] == $level
|
||||
) {
|
||||
$taskMeta = $meta;
|
||||
}
|
||||
}
|
||||
return $taskMeta;
|
||||
}
|
||||
|
||||
public static function getCustomTypeMetaList($type, $missionService)
|
||||
{
|
||||
$metaList = array();
|
||||
@ -105,6 +119,13 @@ class Task {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case self::ACHIEVEMENT_MISSION_CUSTOM_TYPE:
|
||||
{
|
||||
if ($meta['type'] == self::ACHIEVEMENT_MISSON_TYPE) {
|
||||
array_push($metaList, $meta);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
}
|
||||
|
@ -54,6 +54,10 @@ class PropertyChgService extends BaseService {
|
||||
{
|
||||
$this->internalAddChg('parachute');
|
||||
}
|
||||
public function addUserLevelChg()
|
||||
{
|
||||
$this->internalAddChg('level');
|
||||
}
|
||||
|
||||
public function toDto()
|
||||
{
|
||||
|
@ -236,9 +236,9 @@ class TameBattleDataService extends BaseService {
|
||||
"pvp_mode" => $pvp_mode,
|
||||
"team_mode" => getXVal($this->allInfo,'team_mode', 0),
|
||||
"battle_rank" => getXVal($this->battleInfo,'ranked', 0),
|
||||
"team_rank" => getXVal($this->allInfo,'team_ranked', 0),
|
||||
"team_kills" => getXVal($this->allInfo,'team_kills', 0),
|
||||
"is_win" => getXVal($this->battleInfo,'pve_kill_boss', 0),
|
||||
"team_rank" => getXVal($this->allInfo,'pvp_team_rank', 0),
|
||||
"team_kills" => getXVal($this->allInfo,'pvp_team_kills', 0),
|
||||
"is_win" => getXVal($this->battleInfo,'pve_boss_killed', 0),
|
||||
"kills" => getXVal($this->battleInfo,'kills', 0),
|
||||
"hero_id" => getXVal($this->battleInfo,'hero_uniid', 0),
|
||||
"weapon1" => getXVal($this->battleInfo,'weapon_uuid1', 0),
|
||||
@ -247,8 +247,8 @@ class TameBattleDataService extends BaseService {
|
||||
"current_level_class" => $newRank,
|
||||
"current_level_class_score" => $newScore,
|
||||
"level_class_score_chg" => $newScore - $this->userInfo['score'], // 排位分改变
|
||||
"pve_rank_score" => getXVal($this->battleInfo,'pve_rank_score', 0),
|
||||
"pve_kill_boss" => getXVal($this->battleInfo,'pve_kill_boss', 0),
|
||||
"pve_rank_score" => getXVal($this->battleInfo,'pve_score', 0),
|
||||
"pve_kill_boss" => getXVal($this->battleInfo,'pve_boss_killed', 0),
|
||||
"pve_instance_id" => getXVal($this->allInfo,'pve_instance_id', 0),
|
||||
// "pve_instance_mode" => getXVal($this->allInfo,'pve_instance_mode', 0),
|
||||
);
|
||||
@ -334,6 +334,7 @@ class TameBattleDataService extends BaseService {
|
||||
'head'=> getXVal($info,'head', 0),
|
||||
'head_frame'=> getXVal($info,'head_frame', 0),
|
||||
'sex'=> getXVal($info,'sex', 0),
|
||||
'hero_uniid'=> getXVal($info,'hero_uniid', 0),
|
||||
'hero_id'=> getXVal($info,'hero_id', 0),
|
||||
'dead'=> getXVal($info,'dead', 0),
|
||||
'is_mvp'=> getXVal($info,'is_mvp', 0),
|
||||
@ -357,7 +358,7 @@ class TameBattleDataService extends BaseService {
|
||||
'pve_wave'=> getXVal($info,'pve_wave', 0),
|
||||
'pve_max_wave'=> getXVal($info,'pve_max_wave', 0),
|
||||
'pve_boss_killed'=> getXVal($info,'pve_boss_killed', 0),
|
||||
'pve_rank_score'=> getXVal($info,'pve_rank_score', 0),
|
||||
// 'pve_rank_score'=> getXVal($info,'pve_rank_score', 0),
|
||||
);
|
||||
|
||||
$temp['reward'] = array(
|
||||
@ -637,12 +638,12 @@ class TameBattleDataService extends BaseService {
|
||||
}
|
||||
}
|
||||
//排名
|
||||
$ranked = getXVal($this->allInfo,'pvp_team_rank', 0);
|
||||
$ranked = getXVal($this->battleInfo,'ranked', 0);
|
||||
if ($ranked == 1) {
|
||||
//吃鸡次数
|
||||
$this->incValue($battleData, 'total_win_times', 1);
|
||||
}
|
||||
if ($ranked <= 10){
|
||||
if ($ranked <= 10 && $ranked>0){
|
||||
//排名前十 总次数
|
||||
$this->incValue($battleData, 'total_top_ten_times', 1);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user