|
@@ -49,6 +49,8 @@ class FightProc {
|
|
|
return self::ReceiveRankReward_MainGate();
|
|
|
case CmdCode::fight_rank_ReceiveRankReward_FightPower: # 6816 领取战力荣誉榜奖励
|
|
|
return self::ReceiveRankReward_FightPower();
|
|
|
+ case CmdCode::fight_rank_IsExistRankReward: #6817 是否存在未领取的荣誉榜奖励
|
|
|
+ return self::IsExistRankReward();
|
|
|
default:
|
|
|
Err(ErrCode::cmd_err);
|
|
|
}
|
|
@@ -60,8 +62,10 @@ class FightProc {
|
|
|
*/
|
|
|
public static function FightSweep() {
|
|
|
//list($gateId) = req()->paras;
|
|
|
- my_Assert(ctx()->gates->UnlockedGatesMaxId != 0, ErrCode::gate_NoSweep);
|
|
|
- $mo = GameConfig::gate_getItem(ctx()->gates->UnlockedGatesMaxId);
|
|
|
+
|
|
|
+ $passGateId = ctx()->gates->maxPassGateId();
|
|
|
+ my_Assert($passGateId != 0, ErrCode::gate_NoSweep);
|
|
|
+ //$mo = GameConfig::gate_getItem(ctx()->gates->UnlockedGatesMaxId);
|
|
|
$costTili = glc()->sweep_cost_tili;
|
|
|
my_Assert(ctx()->baseInfo->tili >= $costTili, ErrCode::notenough_tili);
|
|
|
$max = glc()->sweepMaxNum;
|
|
@@ -69,21 +73,39 @@ class FightProc {
|
|
|
ctx()->gates->fightSweepNum += 1;
|
|
|
ctx()->baseInfo->Consume_tili($costTili);
|
|
|
$prizeArr = array();
|
|
|
- $prizeArr[] = $mo->reward_win;
|
|
|
- if ($mo->sweep_gold != null) {
|
|
|
- $goodsStr = self::sweepRandReward($mo->sweep_gold);
|
|
|
- $prizeArr[] = $goodsStr;
|
|
|
- StoreProc::AddMultiItemInStore($goodsStr);
|
|
|
- }
|
|
|
|
|
|
- if ($mo->sweep_tuzhi != null) {
|
|
|
- $goodsStr = self::sweepRandReward($mo->sweep_tuzhi);
|
|
|
+ $wavesArr = GameConfig::waves_getItemArray($passGateId);
|
|
|
+ $count = count($wavesArr);
|
|
|
+ $wavesMo = $wavesArr[$count - 1];
|
|
|
+
|
|
|
+ ctx()->baseInfo->Add_Gold($wavesMo->rewardGold);
|
|
|
+ $gold = $wavesMo->rewardGold;
|
|
|
+ $prizeArr[] = "1," . $gold;
|
|
|
+
|
|
|
+ $exp = $wavesMo->rewardExp;
|
|
|
+ $prizeArr[] = "1," . $exp;
|
|
|
+ ctx()->baseInfo->Add_Exp($exp);
|
|
|
+ if ($wavesMo->rewardTuZhi != null) {
|
|
|
+ $tuzhi = explode('-', $wavesMo->rewardTuZhi);
|
|
|
+ $n = rand($tuzhi[0], $tuzhi[1]);
|
|
|
+
|
|
|
+ $tuzhiArr = array();
|
|
|
+ $item = GameConfig::item();
|
|
|
+ foreach ($item as $id => $mo) {
|
|
|
+ if ($mo->itemType == 100) {
|
|
|
+ $tuzhiArr[] = $id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $index = rand(0, count($tuzhiArr) - 1);
|
|
|
+ $goodsStr = $tuzhiArr[$index] . ',' . $n;
|
|
|
+
|
|
|
$prizeArr[] = $goodsStr;
|
|
|
StoreProc::AddMultiItemInStore($goodsStr);
|
|
|
}
|
|
|
|
|
|
- if ($mo->sweep_gem != null) {
|
|
|
- $goodsStr = self::sweepRandReward($mo->sweep_gem);
|
|
|
+ if ($wavesMo->rewardGem != null) {
|
|
|
+ $goodsStr = self::sweepRandReward($wavesMo->rewardGem);
|
|
|
$list = explode(',', $goodsStr);
|
|
|
$posId = rand(1, 6);
|
|
|
$qual = $list[0];
|
|
@@ -98,11 +120,6 @@ class FightProc {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if ($mo->sweep_qiling != null) {
|
|
|
- $goodsStr = self::sweepRandReward($mo->sweep_qiling);
|
|
|
- $prizeArr[] = $goodsStr;
|
|
|
- StoreProc::AddMultiItemInStore($goodsStr);
|
|
|
- }
|
|
|
|
|
|
UserProc::updateUserInfo();
|
|
|
$ret = array(
|
|
@@ -120,12 +137,22 @@ class FightProc {
|
|
|
$numArr = explode('-', $ctxArr[0]);
|
|
|
$num = rand($numArr[0], $numArr[1]);
|
|
|
|
|
|
- $randNum = rand(1, 100);
|
|
|
+ $rand = 0;
|
|
|
+ $itemArr = explode(',', $ctxArr[1]);
|
|
|
+ foreach ($itemArr as $value) {
|
|
|
+ $arr = explode(':', $value);
|
|
|
+ $itemId = $arr[0];
|
|
|
+ $per = $arr[1];
|
|
|
+
|
|
|
+ $rand += $per;
|
|
|
+ }
|
|
|
+
|
|
|
+ $randNum = rand(1, $rand);
|
|
|
$start = 0;
|
|
|
$end = 0;
|
|
|
|
|
|
$res = "";
|
|
|
- $itemArr = explode(',', $ctxArr[1]);
|
|
|
+
|
|
|
foreach ($itemArr as $str) {
|
|
|
$arr = explode(':', $str);
|
|
|
$itemId = $arr[0];
|
|
@@ -769,9 +796,9 @@ class FightProc {
|
|
|
|
|
|
public static function GetRankUid($uid_rank, $type) {
|
|
|
if ($type == 1) {
|
|
|
- $dic = gMem()->zrevrangebyscore(MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid), 0, glc()->Rank_MainGateIndex_OnListRank, true);
|
|
|
+ $dic = gMem()->zrevrange(MemKey_GameRun::Rank_MainGateIndex_Zone_zset(req()->zoneid), 0, glc()->Rank_MainGateIndex_OnListRank, true);
|
|
|
} else {
|
|
|
- $dic = gMem()->zrevrangebyscore(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), 0, glc()->Rank_FightPower_OnListRank, true);
|
|
|
+ $dic = gMem()->zrevrange(MemKey_GameRun::Rank_FightPower_Zone_zset(req()->zoneid), 0, glc()->Rank_FightPower_OnListRank, true);
|
|
|
}
|
|
|
|
|
|
$arr = array();
|
|
@@ -952,6 +979,10 @@ class FightProc {
|
|
|
$memKey = MemKey_GameRun::RankReward_MainGateIndex_Zone_hash(req()->zoneid);
|
|
|
$dic = gMem()->hgetall($memKey);
|
|
|
|
|
|
+ if ($dic == null) {
|
|
|
+ $dic = new \stdClass();
|
|
|
+ }
|
|
|
+
|
|
|
UserProc::updateUserInfo();
|
|
|
$ret = array(
|
|
|
'rankReward' => $dic,
|
|
@@ -969,6 +1000,10 @@ class FightProc {
|
|
|
$memKey = MemKey_GameRun::RankReward_FightPower_Zone_hash(req()->zoneid);
|
|
|
$dic = gMem()->hgetall($memKey);
|
|
|
|
|
|
+ if ($dic == null) {
|
|
|
+ $dic = new \stdClass();
|
|
|
+ }
|
|
|
+
|
|
|
UserProc::updateUserInfo();
|
|
|
$ret = array(
|
|
|
'rankReward' => $dic,
|
|
@@ -1008,7 +1043,7 @@ class FightProc {
|
|
|
|
|
|
my_Assert(!in_array($fightPower, ctx()->privateState->rankReward_drawed_fightPower), ErrCode::rankReward_HasReceive);
|
|
|
|
|
|
- $mo = GameConfig::rank_passgatereward_getItem($fightPower);
|
|
|
+ $mo = GameConfig::rank_fightpowerreward_getItem($fightPower);
|
|
|
my_Assert($mo != null, ErrCode::err_const_no);
|
|
|
|
|
|
$memKey = MemKey_GameRun::RankReward_FightPower_Zone_hash(req()->zoneid);
|
|
@@ -1022,6 +1057,40 @@ class FightProc {
|
|
|
return Resp::ok($ret);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 6817
|
|
|
+ */
|
|
|
+ public static function IsExistRankReward() {
|
|
|
+ list($type) = req()->paras;
|
|
|
+
|
|
|
+ $isExistFinishReward = false;
|
|
|
+ if ($type == 1) {
|
|
|
+ $memKey = MemKey_GameRun::RankReward_MainGateIndex_Zone_hash(req()->zoneid);
|
|
|
+ $dic = gMem()->hgetall($memKey);
|
|
|
+ foreach ($dic as $gateId => $ins_rank) {
|
|
|
+ if (!in_array($gateId, ctx()->privateState->rankReward_drawed_MainGate)) {
|
|
|
+ $isExistFinishReward = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $memKey = MemKey_GameRun::RankReward_FightPower_Zone_hash(req()->zoneid);
|
|
|
+ $dic = gMem()->hgetall($memKey);
|
|
|
+ foreach ($dic as $fightPower => $ins_rank) {
|
|
|
+ if (!in_array($fightPower, ctx()->privateState->rankReward_drawed_fightPower)) {
|
|
|
+ $isExistFinishReward = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ UserProc::updateUserInfo();
|
|
|
+ $ret = array(
|
|
|
+ 'isExistFinishReward' => $isExistFinishReward,
|
|
|
+ );
|
|
|
+ return Resp::ok($ret);
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
* 删除排行榜内注销账号的玩家
|
|
|
*/
|