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; TaskProc::OnGetSchoolTask(); 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; TaskProc::OnFinishSchoolTask(); 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); $tag = true; $cList = explode(',', $newCollegeDic->cList); foreach ($cList as $cId) { if (!in_array($cId, $collegeInfo->comCourseList)) { $tag = false; } } if (!$tag) { 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('store' => $req->userInfo->game->store, '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); # 发放奖励 TaskProc::OnFinishAllSchoolTaskOfGrade($collegeInfo->courseId); $college = new Info_College($req->userInfo->game->college); $college->updataCourse(); $req->userInfo->game->college = $college; UserProc::updateUserInfo(); return Resp::ok(array('store' => $req->userInfo->game->store, 'college' => $req->userInfo->game->college)); } }