|
@@ -26,7 +26,7 @@ class FightProc {
|
|
|
return FightProc::EvolveUnlock();
|
|
|
case CmdCode::cmd_fight_plotSav: # 6806 剧情回存
|
|
|
return FightProc::PlotSav();
|
|
|
- case CmdCode::cmd_fight_sweep: #6807
|
|
|
+ case CmdCode::cmd_fight_sweep: #6807 扫荡
|
|
|
return FightProc::FightSweep();
|
|
|
case CmdCode::fight_startFight: # 6808 开始挑战
|
|
|
return self::StartFight();
|
|
@@ -36,22 +36,87 @@ class FightProc {
|
|
|
}
|
|
|
|
|
|
public static function FightSweep() {
|
|
|
- //list($gateId) = req()->paras;
|
|
|
-
|
|
|
- $costTili = GameConfig::gate_getItem(ctx()->gates->UnlockedGatesMaxId)->sweep_cost_tili;
|
|
|
+ //list($gateId) = req()->paras;
|
|
|
+ my_Assert(ctx()->gates->UnlockedGatesMaxId != 0, ErrCode::user_Gate_NoSweep);
|
|
|
+ $mo = GameConfig::gate_getItem(ctx()->gates->UnlockedGatesMaxId);
|
|
|
+ $costTili = $mo->sweep_cost_tili;
|
|
|
my_Assert(ctx()->baseInfo->tili >= $costTili, ErrCode::notenough_tili);
|
|
|
- $max = GameConfig::gate_getItem(ctx()->gates->UnlockedGatesMaxId)->sweepNum;
|
|
|
- my_Assert(ctx()->gates->fightSweepNum < $max, ErrCode::user_Gate_sweepMaxNum_limit);
|
|
|
+ $max = $mo->sweepNum;
|
|
|
+ my_Assert(ctx()->gates->fightSweepNum < $max, ErrCode::user_Gate_SweepMaxNum_limit);
|
|
|
ctx()->gates->fightSweepNum += 1;
|
|
|
|
|
|
+ $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);
|
|
|
+ $prizeArr[] = $goodsStr;
|
|
|
+ StoreProc::AddMultiItemInStore($goodsStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ if($mo->sweep_gem != null){
|
|
|
+ $goodsStr = self::sweepRandReward($mo->sweep_gem);
|
|
|
+ $list = explode(',', $goodsStr);
|
|
|
+ $posId = rand(1,6);
|
|
|
+ $qual = $list[0];
|
|
|
+ $dic = GameConfig::gem();
|
|
|
+
|
|
|
+ foreach ($dic as $key => $gemMo) {
|
|
|
+ if($gemMo->qual == $qual && $gemMo->position == $posId){
|
|
|
+ $prizeArr[] = $gemMo->typeId.','.$list[1];
|
|
|
+ StoreProc::PutGemInStore($gemMo->typeId, $list[1]);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if($mo->sweep_qiling != null){
|
|
|
+ $goodsStr = self::sweepRandReward($mo->sweep_qiling);
|
|
|
+ $prizeArr[] = $goodsStr;
|
|
|
+ StoreProc::AddMultiItemInStore($goodsStr);
|
|
|
+ }
|
|
|
+
|
|
|
UserProc::updateUserInfo();
|
|
|
$ret = array(
|
|
|
'tili' => ctx()->baseInfo->tili,
|
|
|
'fightSweepNum'=>ctx()->gates->fightSweepNum,
|
|
|
+ 'prizeArr'=> $prizeArr,
|
|
|
'store' => ctx()->store,
|
|
|
);
|
|
|
return Resp::ok($ret);
|
|
|
}
|
|
|
+
|
|
|
+ static function sweepRandReward($rewardStr) {
|
|
|
+ $ctxArr = explode(';', $rewardStr);
|
|
|
+ $randNum = rand(1,100);
|
|
|
+ $start = 0;
|
|
|
+ $end = 0;
|
|
|
+
|
|
|
+ $res = "";
|
|
|
+ foreach ($ctxArr as $str) {
|
|
|
+ $arr = explode(',', $str);
|
|
|
+ $itemId = $arr[1];
|
|
|
+ $per = $arr[2];
|
|
|
+
|
|
|
+ $end += $per;
|
|
|
+ if($randNum >= $start && $randNum < $end){
|
|
|
+ $numArr = explode('-', $arr[0]);
|
|
|
+ $n = rand($numArr[0],$numArr[1]);
|
|
|
+ $res = $itemId.','.$n;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $start = $end;
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return $res;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 6808 开始挑战 (扣除体力)
|