public bool CheckAndAddQuest(int userLevel, Int64 영업턴, DBUserQuests userQuestInfo, Int64 traceId) { var userID = userQuestInfo._id; if (userQuestInfo.CQID == 0 && userQuestInfo.Quest.ID == 0) { var firstQuestData = Loader.First일반퀘스트(userLevel); if (firstQuestData == null) { OPLogger.Error(LOG_TYPE.NEW_NORMAL_QUEST, traceId, string.Format("첫 퀘스트가 없음. UserID:{0}", userID)); return(false); } AddQuest(영업턴, firstQuestData, userQuestInfo); return(true); } // 현재 진행 중인 것이 있으면 새로 받지 못한다. if (userQuestInfo.Quest.ID != 0) { return(false); } // 다음 퀘스트 조건에 부합하면 퀘스트를 받는다. var questData = Loader.Next일반퀘스트(userLevel, userQuestInfo.CQID, traceId); if (questData == null) { OPLogger.Trace(LOG_TYPE.T_NEW_QUEST, traceId, string.Format("{0} 다음의 일반 퀘스트가 없다. UserID:{1}, Level:{2}", userQuestInfo.CQID, userID, userLevel)); return(false); } AddQuest(영업턴, questData, userQuestInfo); return(true); }
public static void AddAuthInfo(MemoryDBUserAuth newAuthInfo, Int64 traceId) { var userID = newAuthInfo.UserID; MemoryDBUserAuth oldAuthInfo; if (Cache.TryGetValue(userID, out oldAuthInfo) == false) { IfMaxThenRemove(); LoginSeqQueue.Enqueue(userID); Cache.TryAdd(userID, newAuthInfo); OPLogger.Trace(LOG_TYPE.T_AUTH_TO_GAMESERVER, traceId, string.Format("AddAuthInfo:New. UserID:{0}, Token:{1}", userID, newAuthInfo.GameAuthToken)); } else { var oldToken = oldAuthInfo.GameAuthToken; Cache.TryUpdate(userID, newAuthInfo, oldAuthInfo); OPLogger.Trace(LOG_TYPE.T_AUTH_TO_GAMESERVER, traceId, string.Format("AddAuthInfo:Update. UserID:{0}, New-Token:{1}, Old-Token:{2}", userID, newAuthInfo.GameAuthToken, oldToken)); } }