cmd) { case CmdCode::cmd_fight_settle: # 6801 战斗结算 return FightProc::Settle(); case CmdCode::cmd_fight_PassGateTsPrizeReceive: # 6802 章节宝箱的领取 return FightProc::PassGateTsPrizeReceive(); case CmdCode::cmd_fight_selectGate: # 6803 关卡选择 return FightProc::SelectGate(); default: Err(ErrCode::cmd_err); } } /** * 关卡选择 * @return type */ public static function SelectGate() { list($gateId) = req()->paras; ctx()->gates->CurrentGateId = $gateId; UserProc::updateUserInfo(); $ret = array( 'gates' => ctx()->gates, ); return Resp::ok($ret); } /** * 关卡战斗结算 * @return type */ public static function Settle() { list($resultType, $gateId,$gold,$exp,$curTs) = req()->paras; $gateMo = GameConfig::gate_getItem($gateId); my_Assert($gateMo!=null, ErrCode::err_const_no); my_Assert(StlUtil::dictHasProperty(ctx()->gates->GateList, $gateId), ErrCode::user_Gate_NoUserGateInfo); $gateInfo = ctx()->gates->GateList->$gateId; $ts = $gateInfo->MaxSeconds; if($curTs >= $ts){ $gateInfo->MaxSeconds = $curTs; } if($resultType){ if(ctx()->gates->GateList->$gateId->pass == 0){ ctx()->gates->GateList->$gateId->pass = 1; } StoreProc::AddMultiItemInStore($gateMo->reward_win); $newGateId = $gateId+1; if(!StlUtil::dictHasProperty(ctx()->gates->GateList, $newGateId)){ ctx()->gates->CurrentGateId = $newGateId; ctx()->gates->UnlockedGatesMaxId = $newGateId; $gate = new Ins_GateInfo(); $gate->GateId = $newGateId; ctx()->gates->GateList->$newGateId = $gate; } } else { StoreProc::AddMultiItemInStore($gateMo->reward_fail); } ctx()->baseInfo->Add_Gold($gold); ctx()->baseInfo->Add_Exp($exp); UserProc::updateUserInfo(); $ret = array( 'gates' => ctx()->gates, 'store' => ctx()->store, ); return Resp::ok($ret); } /** * 章节宝箱的领取 * @return type */ public static function PassGateTsPrizeReceive() { list($gateId,$index) = req()->paras; $gateMo = GameConfig::gate_getItem($gateId); my_Assert($gateMo!=null, ErrCode::err_const_no); my_Assert(StlUtil::dictHasProperty(ctx()->gates->GateList, $gateId), ErrCode::user_Gate_NoUserGateInfo); $gateInfo = ctx()->gates->GateList->$gateId; $tag = false; $prize = ""; $mask =0; switch ($index) { case 1: $ts = $gateMo->first_ts1 *60; if($ts >= $gateInfo->MaxSeconds){ $tag = true; } $mask=1; $prize = $gateMo->first_reward1; break; case 2: $ts = $gateMo->first_ts2*60; if($ts >= $gateInfo->MaxSeconds){ $tag = true; } $mask = 2; $prize = $gateMo->first_reward2; break; case 3: if($gateInfo->pass > 0){ $tag = true; } $mask =3; $prize = $gateMo->first_reward3; break; default: break; } if($tag){ StoreProc::AddMultiItemInStore($prize); $gateInfo->FirstReward = $mask; } ctx()->gates->GateList->$gateId=$gateInfo; UserProc::updateUserInfo(); $ret = array( 'gates' => ctx()->gates, 'store' => ctx()->store, ); return Resp::ok($ret); } }