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