cmd) { case CmdCode::cmd_college_ActiveTaskCard: # 7301 激活任务卡 return CollegeProc::ActiveTaskCard(); case CmdCode::cmd_college_ReceiveCollegeReward: # 7302 领取年级奖励 return CollegeProc::ReceiveCollegeReward(); case CmdCode::cmd_college_ReceiveCourseReward: # 7303 领取课程奖励 return CollegeProc::ReceiveCourseReward(); default: Err(ErrCode::cmd_err); } } /** * 7301 激活 */ public static function ActiveTaskCard() { $req = 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); // 存入背包 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)); # 返回值更新背包 } /** * 7302 领取一个年级的奖励 */ public static function ReceiveCollegeReward() { $req = req(); $collegeInfo = $req->userInfo->game->college; $dic = GameConfig::college_getItem($collegeInfo->collegeId); $tag = true; $cList = explode(',', $dic->cList); foreach ($cList as $cId) { if (!in_array($cId, $collegeInfo->comCourseList)) { $tag = false; } } if (!$tag) { return Resp::err(ErrCode::college_courseNumError); } StoreProc::AddMultiItemInStore(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)); } /** * 7303 领取课程奖励 */ public static function ReceiveCourseReward() { $req = 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(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)); } }