Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
            }
        }