예제 #1
0
        private static IEnumerable <DivisionServer> DivisionInfo()
        {
            var dataReader = new BinaryReader(_reader.GetFileStream("DIVISIONINFO.TXT"));

            var locale        = dataReader.ReadByte(); //Server Locale
            var divisionCount = dataReader.ReadByte();

            for (var i = 1; i <= divisionCount; i++)
            {
                var divisonNameLen   = dataReader.ReadInt32();
                var divisionNameShit = dataReader.ReadChars(divisonNameLen);

                dataReader.ReadByte(); //UNKNOWN

                var division    = new DivisionServer(new string(divisionNameShit), locale);
                var serverCount = dataReader.ReadByte();
                for (var iS = 1; iS <= serverCount; iS++)
                {
                    var serverNameLen  = dataReader.ReadInt32();
                    var serverNameShit = dataReader.ReadChars(serverNameLen);

                    division.LoginServers.Add(new string(serverNameShit));
                    dataReader.ReadByte();
                }
                yield return(division);
            }
        }
예제 #2
0
 public void StartGame(DivisionServer divisionserver, string ip)
 {
     DivisionServer = divisionserver;
     GamePort       = GetFreePort(15770);
     Start(GamePort, ip);
     Loader.Inject(Data.SilkroadPath, GamePort, DivisionServer.Locale);
 }