cmd) { case CmdCode::cmd_college_ActiveTaskCard: return CollegeProc::ActiveTaskCard($req); case CmdCode::cmd_college_ReceiveCollegeReward: return CollegeProc::ReceiveCollegeReward($req); case CmdCode::cmd_college_ReceiveCourseReward: return CollegeProc::ReceiveCourseReward($req); default: Err(ErrCode::cmd_err); } } /** * 激活 * @param Req $req */ public static function ActiveTaskCard($req) { list($taskCardId) = $req->paras; $collegeInfo = $req->userInfo->game->college; $compMissCardDic = $collegeInfo->compMissCardDic; if(!StlUtil::dictHasProperty($compMissCardDic, $taskCardId)){ return Resp::err(ErrCode::college_notExistTaskCard); } if($compMissCardDic->$taskCardId->type >Enum_TaskCardStateType::notopen){ return Resp::err(ErrCode::college_TaskCardStateError); } $cid = StoreProc::PutTaskCardInStore($taskCardId, $req);//存入背包 //NormalEventProc::OnTaskCard_Actived($cid, null); # 带入事件 $compMissCardDic->$taskCardId->indexId = $cid; $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::ing; $taskCard = new Ins_TaskCard($req->userInfo->game->store->taskcards->$cid); # 任务卡对象 $taskCard->state = Enum_TaskCardStateType::ing; foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务 $tsp = new Ins_TaskStep($tsp); if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具 $tsp->autoCalcStatusCur(); } } if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成 $taskCard->state = Enum_TaskCardStateType::finish; $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::finish; //NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件 } $req->userInfo->game->college->compMissCardDic = $compMissCardDic; $req->userInfo->game->store->taskcards->$cid = $taskCard; UserProc::updateUserInfo(); //$compMissCardDic->$taskCardId->type = 2; return Resp::ok(array('store' => $req->userInfo->game->store,'college'=>$req->userInfo->game->college)); # 返回值更新背包 } /** * * @param Req $req */ public static function ReceiveCollegeReward($req) { $collegeInfo = $req->userInfo->game->college; $dic = GameConfig::college_getItem($collegeInfo->collegeId); if(count(explode(',', $dic->cList)) != count($collegeInfo->comCourseList)){ return Resp::err(ErrCode::college_courseNumError); } StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励 $college = new Info_College($req->userInfo->game->college); $college->updataCourseNew(); $req->userInfo->game->college = $college; UserProc::updateUserInfo(); return Resp::ok(array('college'=>$req->userInfo->game->college)); } /** * 领取课程奖励 * @param Req $req */ public static function ReceiveCourseReward($req) { //list($taskCardId) = $req->paras; $collegeInfo = $req->userInfo->game->college; $tag = true; foreach ($collegeInfo->compMissCardDic as $key => $value) { if($value->type != Enum_TaskCardStateType::drawed){ $tag = false; break; } } if(!$tag){ return Resp::err(ErrCode::college_taskCardNumError); } StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励 $college = new Info_College($req->userInfo->game->college); $college->updataCourse(); $req->userInfo->game->college = $college; UserProc::updateUserInfo(); return Resp::ok(array('college'=>$req->userInfo->game->college)); } }