|
@@ -1318,7 +1318,7 @@ class FightProc {
|
|
|
|
|
|
$score = self::GetRankScoreUid($uid, 2);
|
|
$score = self::GetRankScoreUid($uid, 2);
|
|
//$power = self::countUserFightPower();
|
|
//$power = self::countUserFightPower();
|
|
- $power = FightPower_Calculate::GetFightPower();
|
|
|
|
|
|
+ $power = FightPower_Calculate::GetFightPower();
|
|
$arr = array();
|
|
$arr = array();
|
|
$arr["$uid"] = self::createScore($power);
|
|
$arr["$uid"] = self::createScore($power);
|
|
$mem->zadd($memKey, $arr);
|
|
$mem->zadd($memKey, $arr);
|
|
@@ -1879,7 +1879,7 @@ class FightProc {
|
|
/**
|
|
/**
|
|
* 结算世界boss排行奖励[定时发放奖励接口]
|
|
* 结算世界boss排行奖励[定时发放奖励接口]
|
|
*/
|
|
*/
|
|
- public static function triggerSettleRankReward_worldBoss() {
|
|
|
|
|
|
+ public static function triggerSettleRankReward_worldBoss() {
|
|
//校验下是否处在发放奖励信息的时间点 【每个轮次最后一天的最后10分钟】
|
|
//校验下是否处在发放奖励信息的时间点 【每个轮次最后一天的最后10分钟】
|
|
$mo = GameConfig::subfun_unlock_getItem(Enum_SubFunType::WorldBoss);
|
|
$mo = GameConfig::subfun_unlock_getItem(Enum_SubFunType::WorldBoss);
|
|
|
|
|
|
@@ -1891,38 +1891,27 @@ class FightProc {
|
|
}
|
|
}
|
|
|
|
|
|
echo '----发放世界boss的排行奖励程序开始运行-----';
|
|
echo '----发放世界boss的排行奖励程序开始运行-----';
|
|
- $memKey = MemKey_GameRun::WorldBoss_StartTs(req()->zoneid);
|
|
|
|
- $mem = gMem();
|
|
|
|
-
|
|
|
|
- $ts = $mem->get($memKey);
|
|
|
|
- if ($ts == 0) {
|
|
|
|
- $ts = $mo->startTs;
|
|
|
|
- }
|
|
|
|
|
|
|
|
$curDay = TimeUtil::totalDays();
|
|
$curDay = TimeUtil::totalDays();
|
|
- $endDay = TimeUtil::totalDays($ts);
|
|
|
|
-
|
|
|
|
- $num = $curDay - $endDay;
|
|
|
|
- $num += 1;
|
|
|
|
-
|
|
|
|
- $yushu = $num % 3;
|
|
|
|
-
|
|
|
|
- $tomorrowMidnight = strtotime('tomorrow', now()); //明天0点时间
|
|
|
|
-
|
|
|
|
- $chaizhi = $tomorrowMidnight - now();
|
|
|
|
- if ($yushu == 0 && $chaizhi <= 10 * 60) {
|
|
|
|
- $damageMemKey = self::GetWorldBoss_DamageMemKey();
|
|
|
|
- echo '发放奖励的menkey===============:';
|
|
|
|
- echo "$damageMemKey";
|
|
|
|
- if ($mem->exists($damageMemKey)) {
|
|
|
|
- FightProc::settleRankReward_worldBoss();
|
|
|
|
|
|
+ $turnNum = self::GetCurTurnNum();
|
|
|
|
+ $turnnumMo = GameConfig::worldboss_turnnum_getItem($turnNum);
|
|
|
|
+ if ($turnnumMo != null) {
|
|
|
|
+ $lastDay = TimeUtil::totalDays($turnnumMo->endTs);
|
|
|
|
+ if ($curDay == $lastDay && $turnnumMo->endTs - now() < 600) {
|
|
|
|
+ $damageMemKey = self::GetWorldBoss_DamageMemKey();
|
|
|
|
+ echo '发放奖励的menkey===============:';
|
|
|
|
+ echo "$damageMemKey";
|
|
|
|
+ $mem = gMem();
|
|
|
|
+ if ($mem->exists($damageMemKey)) {
|
|
|
|
+ FightProc::settleRankReward_worldBoss($turnnumMo->orderId);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
echo '----世界boss的排行奖励-发放完成----';
|
|
echo '----世界boss的排行奖励-发放完成----';
|
|
}
|
|
}
|
|
|
|
|
|
- public static function settleRankReward_worldBoss() {
|
|
|
|
|
|
+ public static function settleRankReward_worldBoss($orderId) {
|
|
echo '----开始发放世界boss的排行奖励-----';
|
|
echo '----开始发放世界boss的排行奖励-----';
|
|
$dic = GameConfig::worldboss_rankreward();
|
|
$dic = GameConfig::worldboss_rankreward();
|
|
if ($dic == null) {
|
|
if ($dic == null) {
|
|
@@ -1939,7 +1928,8 @@ class FightProc {
|
|
}
|
|
}
|
|
|
|
|
|
foreach ($list as $uid => $score) {
|
|
foreach ($list as $uid => $score) {
|
|
- $index += 1;
|
|
|
|
|
|
+ $index += 1;
|
|
|
|
+ self::settleDamageReward_worldBoss($orderId,$uid,$score);
|
|
EmailProc::SendWorldBossRewardMail(req()->zoneid, $uid, $mo->reward, $index);
|
|
EmailProc::SendWorldBossRewardMail(req()->zoneid, $uid, $mo->reward, $index);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1951,35 +1941,48 @@ class FightProc {
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static function settleDamageReward_worldBoss($orderId,$uid,$demageVal) {
|
|
|
|
+ $demageList = GameConfig::worldboss_demagereward_getItemArray($orderId);
|
|
|
|
+
|
|
|
|
+ $userInfo = UserProc::getUserGame(req()->zoneid, $uid);
|
|
|
|
+ $worldBoss_received = $userInfo->privateState->worldBoss_received;
|
|
|
|
+ foreach ($demageList as $dMo) {
|
|
|
|
+ if ($demageVal >= $dMo->demageValId && !in_array($dMo->demageValId, $worldBoss_received)) {
|
|
|
|
+ EmailProc::SendWorldBossDamageRewardMail(req()->zoneid, $uid, $dMo->reward);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
- * 重置每个赛季的开始时间 一个重置每个赛季的开始时间赛季完成后 排名数据清理掉 同时轮次要改变 [定时接口]
|
|
|
|
|
|
+ * 重置每个赛季的开始时间 一个重置每个赛季的开始时间赛季完成后 排名数据清理掉 同时轮次要改变 [定时接口]----废弃
|
|
*/
|
|
*/
|
|
public static function ResetWorldBossRank_StartTs() {
|
|
public static function ResetWorldBossRank_StartTs() {
|
|
- $mo = GameConfig::subfun_unlock_getItem(Enum_SubFunType::WorldBoss);
|
|
|
|
- if ($mo == null) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- if (now() < $mo->startTs) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- echo '赛季的开始时间重置程序开始运行**********';
|
|
|
|
- $memKey = MemKey_GameRun::WorldBoss_StartTs(req()->zoneid);
|
|
|
|
- $mem = gMem();
|
|
|
|
-
|
|
|
|
- $ts = $mem->get($memKey);
|
|
|
|
- $durationTs = $mo->ts * 24 * 60 * 60;
|
|
|
|
- if ($ts == null && now() - $mo->startTs < $durationTs) {
|
|
|
|
- $mem->set($memKey, $mo->startTs);
|
|
|
|
- $ts = $mo->startTs;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (now() - $ts > $durationTs) {
|
|
|
|
- $nextTs = TimeUtil::getNextDayTs($ts, $mo->ts);
|
|
|
|
- $mem->set($memKey, $nextTs); //下一轮赛季的开始时间回存
|
|
|
|
- echo '完成重置下一个赛季的开始时间';
|
|
|
|
- //清理排行榜
|
|
|
|
- self::ClearWorldBossRank();
|
|
|
|
- }
|
|
|
|
|
|
+ return;
|
|
|
|
+// $mo = GameConfig::subfun_unlock_getItem(Enum_SubFunType::WorldBoss);
|
|
|
|
+// if ($mo == null) {
|
|
|
|
+// return;
|
|
|
|
+// }
|
|
|
|
+// if (now() < $mo->startTs) {
|
|
|
|
+// return;
|
|
|
|
+// }
|
|
|
|
+// echo '赛季的开始时间重置程序开始运行**********';
|
|
|
|
+// $memKey = MemKey_GameRun::WorldBoss_StartTs(req()->zoneid);
|
|
|
|
+// $mem = gMem();
|
|
|
|
+//
|
|
|
|
+// $ts = $mem->get($memKey);
|
|
|
|
+// $durationTs = $mo->ts * 24 * 60 * 60;
|
|
|
|
+// if ($ts == null && now() - $mo->startTs < $durationTs) {
|
|
|
|
+// $mem->set($memKey, $mo->startTs);
|
|
|
|
+// $ts = $mo->startTs;
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// if (now() - $ts > $durationTs) {
|
|
|
|
+// $nextTs = TimeUtil::getNextDayTs($ts, $mo->ts);
|
|
|
|
+// $mem->set($memKey, $nextTs); //下一轮赛季的开始时间回存
|
|
|
|
+// echo '完成重置下一个赛季的开始时间';
|
|
|
|
+// //清理排行榜
|
|
|
|
+// self::ClearWorldBossRank();
|
|
|
|
+// }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1999,21 +2002,21 @@ class FightProc {
|
|
* 每天登录的时候 检测轮次变化
|
|
* 每天登录的时候 检测轮次变化
|
|
*/
|
|
*/
|
|
public static function ResetTurnNum() {
|
|
public static function ResetTurnNum() {
|
|
- if(!FightProc::isFunUnlock(25)){
|
|
|
|
|
|
+ if (!FightProc::isFunUnlock(25)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
$subMo = GameConfig::subfun_unlock_getItem(Enum_SubFunType::WorldBoss);
|
|
$subMo = GameConfig::subfun_unlock_getItem(Enum_SubFunType::WorldBoss);
|
|
- if(ctx()->privateState->worldBoss_turnNum < 0){
|
|
|
|
|
|
+ if (ctx()->privateState->worldBoss_turnNum < 0) {
|
|
ctx()->privateState->worldBoss_turnNum = 0;
|
|
ctx()->privateState->worldBoss_turnNum = 0;
|
|
}
|
|
}
|
|
-
|
|
|
|
- if(now() < $subMo->startTs){
|
|
|
|
|
|
+
|
|
|
|
+ if (now() < $subMo->startTs) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
$num = self::GetCurTurnNum();
|
|
$num = self::GetCurTurnNum();
|
|
- if ($num != ctx()->privateState->worldBoss_turnNum) {
|
|
|
|
|
|
+ if ($num != ctx()->privateState->worldBoss_turnNum) {
|
|
ctx()->privateState->worldBoss_turnNum = $num;
|
|
ctx()->privateState->worldBoss_turnNum = $num;
|
|
ctx()->privateState->worldBoss_received = array();
|
|
ctx()->privateState->worldBoss_received = array();
|
|
}
|
|
}
|
|
@@ -2023,19 +2026,31 @@ class FightProc {
|
|
* 当前所在世界boss 的轮次 //当前轮次可以算出来
|
|
* 当前所在世界boss 的轮次 //当前轮次可以算出来
|
|
*/
|
|
*/
|
|
public static function GetCurTurnNum() {
|
|
public static function GetCurTurnNum() {
|
|
- $memKey = MemKey_GameRun::WorldBoss_StartTs(req()->zoneid);
|
|
|
|
- $mem = gMem();
|
|
|
|
- $ts = $mem->get($memKey);
|
|
|
|
-
|
|
|
|
- $curDay = TimeUtil::totalDays(now());
|
|
|
|
- $lastDay = TimeUtil::totalDays($ts);
|
|
|
|
-
|
|
|
|
- $val = $curDay - $lastDay;
|
|
|
|
- $num = intval($val / 3);
|
|
|
|
|
|
+ $dic = GameConfig::worldboss_turnnum();
|
|
|
|
+ foreach ($dic as $turnId => $mo) {
|
|
|
|
+ if (now() >= $mo->startTs && now() < $mo->endTs) {
|
|
|
|
+ return $turnId;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return 0;
|
|
|
|
|
|
- return $num + 1;
|
|
|
|
|
|
+// $memKey = MemKey_GameRun::WorldBoss_StartTs(req()->zoneid);
|
|
|
|
+// $mem = gMem();
|
|
|
|
+// $ts = $mem->get($memKey);
|
|
|
|
+//
|
|
|
|
+// $curDay = TimeUtil::totalDays(now());
|
|
|
|
+// $lastDay = TimeUtil::totalDays($ts);
|
|
|
|
+//
|
|
|
|
+// $val = $curDay - $lastDay;
|
|
|
|
+// $num = intval($val / 3);
|
|
|
|
+//
|
|
|
|
+// return $num + 1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 世界boss排名榜 memkey
|
|
|
|
+ * @return type
|
|
|
|
+ */
|
|
public static function GetWorldBoss_DamageMemKey() {
|
|
public static function GetWorldBoss_DamageMemKey() {
|
|
$num = self::GetCurTurnNum();
|
|
$num = self::GetCurTurnNum();
|
|
$memKey = MemKey_GameRun::WorldBoss_Rank($num, req()->zoneid);
|
|
$memKey = MemKey_GameRun::WorldBoss_Rank($num, req()->zoneid);
|
|
@@ -2141,14 +2156,13 @@ class FightProc {
|
|
}
|
|
}
|
|
$ins_rank = self::initOtherUidRankInfo(req()->uid, $damageval, 3);
|
|
$ins_rank = self::initOtherUidRankInfo(req()->uid, $damageval, 3);
|
|
|
|
|
|
- $tsMemKey = MemKey_GameRun::WorldBoss_StartTs(req()->zoneid);
|
|
|
|
- $ts = gMem()->get($tsMemKey);
|
|
|
|
- ctx()->privateState->worldBoss_startTs = $ts;
|
|
|
|
|
|
+ //$tsMemKey = MemKey_GameRun::WorldBoss_StartTs(req()->zoneid);
|
|
|
|
+ //$ts = gMem()->get($tsMemKey);
|
|
|
|
+ //ctx()->privateState->worldBoss_startTs = $ts;
|
|
|
|
|
|
UserProc::updateUserInfo();
|
|
UserProc::updateUserInfo();
|
|
$ret = array(
|
|
$ret = array(
|
|
'selfRank' => $ins_rank,
|
|
'selfRank' => $ins_rank,
|
|
- 'worldBoss_startTs' => $ts,
|
|
|
|
);
|
|
);
|
|
return Resp::ok($ret);
|
|
return Resp::ok($ret);
|
|
}
|
|
}
|
|
@@ -2169,9 +2183,12 @@ class FightProc {
|
|
my_Assert($damageValId <= $val, ErrCode::active_worldBoss_notClaimRewards);
|
|
my_Assert($damageValId <= $val, ErrCode::active_worldBoss_notClaimRewards);
|
|
|
|
|
|
$turnNum = self::GetCurTurnNum();
|
|
$turnNum = self::GetCurTurnNum();
|
|
- $list = GameConfig::worldboss_demagereward_getItemArray($turnNum);
|
|
|
|
|
|
+ $turnnumMo = GameConfig::worldboss_turnnum_getItem($turnNum);
|
|
|
|
+ my_Assert($turnnumMo != null, ErrCode::err_const_no);
|
|
|
|
+
|
|
|
|
+ $list = GameConfig::worldboss_demagereward_getItemArray($turnnumMo->orderId);
|
|
foreach ($list as $key => $mo) {
|
|
foreach ($list as $key => $mo) {
|
|
- if ($mo->demageValId == $damageValId && $mo->orderId == $turnNum) {
|
|
|
|
|
|
+ if ($mo->demageValId == $damageValId && $mo->orderId == $turnnumMo->orderId) {
|
|
StoreProc::AddMultiItemInStore($mo->reward);
|
|
StoreProc::AddMultiItemInStore($mo->reward);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -2195,10 +2212,29 @@ class FightProc {
|
|
public static function WorldBoss_settle() {
|
|
public static function WorldBoss_settle() {
|
|
list($damageNum) = req()->paras; //战斗结束伤害值
|
|
list($damageNum) = req()->paras; //战斗结束伤害值
|
|
//校验每个轮次最后10分钟, 不能战斗
|
|
//校验每个轮次最后10分钟, 不能战斗
|
|
-
|
|
|
|
my_Assert(FightProc::isFunUnlock(25), ErrCode::active_funUnlock);
|
|
my_Assert(FightProc::isFunUnlock(25), ErrCode::active_funUnlock);
|
|
- self::Ranking_DamageVal($damageNum);
|
|
|
|
-
|
|
|
|
|
|
+ $tag = true;
|
|
|
|
+
|
|
|
|
+ $curDay = TimeUtil::totalDays();
|
|
|
|
+ $turnNum = self::GetCurTurnNum();
|
|
|
|
+ $turnnumMo = GameConfig::worldboss_turnnum_getItem($turnNum);
|
|
|
|
+ if ($turnnumMo != null) {
|
|
|
|
+ $lastDay = TimeUtil::totalDays($turnnumMo->endTs);
|
|
|
|
+ if ($curDay == $lastDay && $turnnumMo->endTs - now() < 600) {
|
|
|
|
+ $tag = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (ctx()->privateState->worldBoss_turnNum != $turnNum){
|
|
|
|
+ ctx()->privateState->worldBoss_turnNum = $turnNum;
|
|
|
|
+ ctx()->privateState->worldBoss_received = array();
|
|
|
|
+ $tag = false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if($tag){
|
|
|
|
+ self::Ranking_DamageVal($damageNum);
|
|
|
|
+ }
|
|
|
|
+
|
|
UserProc::updateUserInfo();
|
|
UserProc::updateUserInfo();
|
|
return Resp::ok(array());
|
|
return Resp::ok(array());
|
|
}
|
|
}
|