userID; $db = DB::db(); $gameStor = KVStorage::getStorage($db, 'game_env'); $gameStor->cacheValues(['opentime', 'turntime']); $general = $db->queryFirstRow('SELECT no,name,nation,owner_name,npc FROM general WHERE owner=%i', $userID); if (!$general) { return '장수가 없습니다'; } $generalID = $general['no']; increaseRefresh("사전 거병", 1); if ($gameStor->turntime > $gameStor->opentime) { return '게임이 시작되었습니다.'; } if ($general['nation'] != 0) { return '이미 국가에 소속되어있습니다.'; } $env = $gameStor->getAll(); $generalObj = General::createObjFromDB($general['no']); $validCmd = false; foreach(GameConst::$availableGeneralCommand as $cmdList){ if(in_array('che_거병', $cmdList)){ $validCmd = true; break; } } if(!$validCmd){ return '거병할 수 없는 모드입니다.'; } $cmd = new che_거병($generalObj, $env); $failReason = $cmd->testFullConditionMet(); if ($failReason !== null) { return $failReason; } $rng = new RandUtil(new LiteHashDRBG(Util::simpleSerialize( UniqueConst::$hiddenSeed, 'BuildNationCandidate', $generalID, ))); $result = $cmd->run($rng); if(!$result){ return '거병을 실패했습니다.'; } return null; } }