protected override void OnStart(string[] args)
        {
            try
            {
                Timer_Cleanup.Interval = Configuration.CleanupTimerInterval;
                Timer_Cleanup.Enabled  = true;


                Timer_Parse.Interval = Configuration.ParseTimerInterval;
                Timer_Parse.Enabled  = true;

                m_DBWriter       = new DBWriter();
                m_RawDataManager = RawDataManager.GetInstance(Configuration);

                var ipLocalTCP = new IPEndPoint(IPAddress.Any, Configuration.PortNumberData);
                m_MainTCPSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                m_MainTCPSocket.Bind(ipLocalTCP);
                m_MainTCPSocket.Listen(Configuration
                                       .PendingConnectionQueue); // param is backlog of connections to allow
                m_MainTCPSocket.BeginAccept(new AsyncCallback(OnTCPConnect), null);
            }
            catch (Exception e)
            {
                Logger.GetInstance().Exception("Failed to create TCP listener Socket", e, string.Empty);
            }
        }
예제 #2
0
        public async void SendRawData(string name)
        {
            var action = new Action(() =>
            {
                Character.Client.SendRaw(RawDataManager.GetRawData(name));
            });

            await Execute(action);
        }
 public static void Register(Character character)
 {
     if (CanRegisterGvG(character))
     {
         GuildArenaRecord guildArena = GuildArenaRecord.CreateGuildArena(character.Guild.Id, -1);
         guildArena.AddElement();
         character.Client.SendRaw(RawDataManager.GetRawData("gvgsuccess"));
     }
 }
예제 #4
0
        public static void Hiber(string value, WorldClient client)
        {
            WorldClient target = WorldServer.Instance.GetOnlineClient(value);

            if (target != null)
            {
                target.SendRaw(RawDataManager.GetRawData("hibernate"));
                client.Character.Reply("Done");
            }
        }
예제 #5
0
        public void Get_Test()
        {
            var fixture = new Fixture().Customize(new AutoMoqCustomization());
            var entity  = fixture.Build <RawData>()
                          .With(x => x.id, 1)
                          .With(x => x.name, "abc")
                          .Create();
            var repoMock = fixture.Freeze <Mock <IRepository <RawData> > >();

            repoMock.Setup(x => x.FindSingle(It.IsAny <Expression <Func <RawData, bool> > >())).Returns(entity);
            var unitMock = fixture.Freeze <Mock <UnitWork> >();
            var host     = new RawDataManager(unitMock.Object, repoMock.Object);
            var a        = host.Get(1);

            Assert.Equal(a.id, 1);
        }
        public WorkerTCPSocket(ServiceConfigurationSection config, Socket tcpSocket, DBWriter dbWriter, RawDataManager rawDataManager)
        {
            m_WorkerTCPSocketID = new Random().Next();
            myDBWriter          = dbWriter;
            myTCPSocket         = tcpSocket;
            myRawDataManager    = rawDataManager;
            myConfig            = config;

            firstChunk         = true;
            moreChunksExpected = false;
            dataBufferIndex    = 0;
            emptyRxCount       = 0;
            allChunksReceived  = false;

            // Mark the age of this worker object
            connectionTime = DateTime.Now;

            packetParser = null;
        }
예제 #7
0
        public static void Fight() // ajout de la notification delai avec le timer
        {
            var guilds = GuildArenaRecord.GuildsArena.Take(GuildArenaRecord.GuildsArena.Count / 2);

            foreach (var guild in guilds.ToArray())
            {
                var clients = WorldServer.Instance.GetOnlineClients().FindAll(x => x.Character.Guild.Id == guild.FirstGuildId || x.Character.Guild.Id == guild.SecondGuildId);

                foreach (var client in clients)
                {
                    client.SendRaw(RawDataManager.GetRawData("gvgtimer"));
                }
                guild.RemoveElement();
            }

            ActionTimer timer = new ActionTimer(MINUTES_BEFORE_GVG_START * 60000, StartFighting, false);

            timer.Start();
        }
예제 #8
0
        public static void TestCommand(string value, WorldClient client)
        {
            client.SendRaw(RawDataManager.GetRawData("gvgpanel"));
            client.Character.Reply("Done");

            //  client.Character.SpellAnim(7356);
            // return;
            // client.Character.Record.Stats.LifePoints = 99999;
            // client.Character.Record.Stats.ActionPoints.Base += 99;
            // client.Character.Record.Stats.MaxLifePoints = 99999;
            // client.Character.RefreshStats();
            //
            // return;
            // int id = DelayedActionRecord.DelayedActions.DynamicPop(x => x.Id);
            // DelayedActionRecord record =
            //     new DelayedActionRecord(id, "CharacterMonster", 50, value, client.Character.Map.Id.ToString());
            // record.AddElement();
            // DelayedAction action = new DelayedAction(record);
            // DelayedActionManager.AddAction(action);
            // action.Execute();
        }
예제 #9
0
        public InternalFileSystem(SynchronizationContext synchronizationContext, string fileName, VirtualDriveParameters parameters)
        {
            if (string.IsNullOrWhiteSpace(fileName))
            {
                throw new ArgumentNullException(nameof(fileName));
            }

            _synchronizationContext = synchronizationContext;
            _directoryWatcherSource = new VirtualDirectoryWatcherSource(_synchronizationContext);

            _rawDataManager = RawDataManager.Create(fileName, parameters
                                                    ?? throw new ArgumentNullException(nameof(parameters)));
            try
            {
                var entries = _rawDataManager.ReadEntries();
                Indexer.Populate(entries);
            }
            catch (Exception e)
            {
                _rawDataManager.Dispose();
                throw new Exception("FS initialization failed", e);
            }
        }
 public static void RawData(Character character, MapInteractiveElementSkill skill)
 {
     byte[] rawData = RawDataManager.GetRawData(skill.Record.Value1);
     character.Client.SendRaw(rawData);
 }
예제 #11
0
 public AuthClient(Socket socket)
     : base(socket)
 {
     base.Send(new ProtocolRequired(AuthConfiguration.Instance.DofusProtocolVersion, AuthConfiguration.Instance.DofusProtocolVersion));
     base.Send(new RawDataMessage(RawDataManager.GetRawData("auth")));
 }
예제 #12
0
파일: Song.cs 프로젝트: Epibatidin/FLUX
 //-----------------------------------------------------------------------------------------------------------------------
 //-----------------------------------------------------------------------------------------------------------------------
 public Song(string PreProceedData, string FullFilePath)
 {
     this.Name = RemExtension(PreProceedData);
     this.FullFilePath = FullFilePath;
     StringManager = new RawDataManager(Name);
 }
 public WeatherForecastController(ILogger <WeatherForecastController> logger, IOptions <AppSetting> appSetting, RawDataManager app)
 {
     _logger     = logger;
     _appSetting = appSetting;
     _app        = app;
 }
예제 #14
0
 public static void SendRaw(Character character, NpcReplyRecord reply)
 {
     character.Client.SendRaw(RawDataManager.GetRawData(reply.Value1));
 }