예제 #1
0
        public void ResetOnlineGuildDailyGPScheduleFunc()
        {
            HeroesDataContext  heroesDataContext = new HeroesDataContext();
            List <long>        list = new List <long>(this.OnlineGuildIDList);
            GuildGainGPMessage guildGainGPMessage = new GuildGainGPMessage(0L);

            foreach (long id in list)
            {
                IEntity entityByID = base.GetEntityByID(id);
                if (entityByID != null && !entityByID.IsClosed)
                {
                    GuildEntity guildEntity = entityByID.Tag as GuildEntity;
                    if (entityByID != null)
                    {
                        heroesDataContext.ResetInGameGuildDailyGainGP(guildEntity.GuildSN);
                        guildEntity.GuildInfo.DailyGainGP.Clear();
                        guildGainGPMessage.GuildPoint = guildEntity.GuildInfo.GuildPoint;
                        foreach (OnlineGuildMember onlineGuildMember in guildEntity.OnlineMembers.Values)
                        {
                            onlineGuildMember.RequestFrontendOperation(SendPacket.Create <GuildGainGPMessage>(guildGainGPMessage));
                        }
                    }
                }
            }
            DateTime d = GuildContents.GetPrevDailyGPResetTime() + TimeSpan.FromDays(1.0);

            this.DailyGPResetScheduleID = Scheduler.Schedule(JobProcessor.Current, Job.Create(new Action(this.ResetOnlineGuildDailyGPScheduleFunc)), d - DateTime.UtcNow + TimeSpan.FromSeconds(30.0));
        }
예제 #2
0
        public override void Initialize(JobProcessor thread)
        {
            ConnectionStringLoader.LoadFromServiceCore(Settings.Default);
            base.Initialize(thread, GuildServiceOperations.TypeConverters);
            base.RegisterMessage(OperationMessages.TypeConverters);
            base.RegisterAllProcessors(Assembly.GetExecutingAssembly());
            if (FeatureMatrix.IsEnable("koKR") && !FeatureMatrix.IsEnable("NewbieGuildRecommend"))
            {
                try
                {
                    GroupNMLinkSoapResult groupNMLinkSoapResult = new GroupNMLinkSoapWrapper(130076).Execute();
                    if (groupNMLinkSoapResult.SoapErrorCode == 0)
                    {
                        Log <GuildService> .Logger.InfoFormat("길드 Refresh 성공", new object[0]);
                    }
                    else
                    {
                        Log <GuildService> .Logger.ErrorFormat("길드 Refresh 실패 : {0}", groupNMLinkSoapResult.SoapErrorCode);
                    }
                }
                catch (Exception ex)
                {
                    Log <GuildService> .Logger.Error("길드 Refresh 예외", ex);
                }
            }
            if (FeatureMatrix.IsEnable("GuildWebChat") && ServiceCoreSettings.Default.GuildChatWcfService.Length > 0)
            {
                base.OnSetupID += delegate(int id)
                {
                    Scheduler.Schedule(base.Thread, Job.Create(delegate
                    {
                        this.InitializeGuildWebChat(id);
                    }), 0);
                };
            }
            this.OnlineGuildIDList = new List <long>();
            DateTime d = GuildContents.GetPrevDailyGPResetTime() + TimeSpan.FromDays(1.0);

            this.DailyGPResetScheduleID = Scheduler.Schedule(thread, Job.Create(new Action(this.ResetOnlineGuildDailyGPScheduleFunc)), d - DateTime.UtcNow + TimeSpan.FromSeconds(30.0));
            this.NewbieRecommendGuild   = new List <long>();
            this.LogThread = base.AcquireNewThread();
            this.LogThread.Start();
        }