Ejemplo n.º 1
0
 private static void MessageReceived(Message obj)
 {
     if (obj.Direction == MessageDirection.ClientToServer && obj.OpCode == 19900)
     {
         var message = new C_CHECK_VERSION_CUSTOM(new CustomReader(obj));
         Version = message.Versions[0];
         OpcodeDownloader.DownloadIfNotExist(Version, Path.Combine(BasicTeraData.Instance.ResourceDirectory, "data/opcodes/"));
         if (!File.Exists(Path.Combine(BasicTeraData.Instance.ResourceDirectory, $"data/opcodes/{message.Versions[0]}.txt")) && !File.Exists(Path.Combine(BasicTeraData.Instance.ResourceDirectory, $"data/opcodes/protocol.{message.Versions[0]}.map")) ||
             !File.Exists(Path.Combine(BasicTeraData.Instance.ResourceDirectory, $"data/opcodes/smt_{message.Versions[0]}.txt")) && !File.Exists(Path.Combine(BasicTeraData.Instance.ResourceDirectory, $"data/opcodes/sysmsg.{message.Versions[0]}.map")))
         {
             {
                 TccMessageBox.Show("Unknown client version: " + message.Versions[0], MessageBoxType.Error);
                 App.CloseApp();
                 return;
             }
         }
         OpCodeNamer                    = new OpCodeNamer(Path.Combine(BasicTeraData.Instance.ResourceDirectory, $"data/opcodes/{message.Versions[0]}.txt"));
         SystemMessageNamer             = new OpCodeNamer(Path.Combine(BasicTeraData.Instance.ResourceDirectory, $"data/opcodes/smt_{message.Versions[0]}.txt"));
         Factory                        = new MessageFactory(OpCodeNamer, Server.Region, message.Versions[0], sysMsgNamer: SystemMessageNamer);
         TeraSniffer.Instance.Connected = true;
         Proxy.ConnectToProxy();
         return;
     }
     Packets.Enqueue(obj);
 }
Ejemplo n.º 2
0
        public static void HandleLoginArbiter(C_LOGIN_ARBITER p)
        {
            if (OpcodeDownloader.DownloadSysmsg(PacketAnalyzer.Factory.Version,
                Path.Combine(App.DataPath, "opcodes/"), PacketAnalyzer.Factory.ReleaseVersion))
            {

                PacketAnalyzer.Factory.ReloadSysMsg();
            }

            BasicTeraData.Instance.Servers.Language = p.Language;

        }
Ejemplo n.º 3
0
 public static void HandleCheckVersion(C_CHECK_VERSION p)
 {
     OpcodeDownloader.DownloadIfNotExist(p.Versions[0], Path.Combine(App.DataPath, "opcodes/"));
     if (!File.Exists(Path.Combine(App.DataPath, $"opcodes/protocol.{p.Versions[0]}.map")))
     {
         TccMessageBox.Show("Unknown client version: " + p.Versions[0], MessageBoxType.Error);
         App.CloseApp();
         return;
     }
     var opcNamer = new OpCodeNamer(Path.Combine(App.DataPath, $"opcodes/protocol.{p.Versions[0]}.map"));
     PacketAnalyzer.Factory = new MessageFactory(p.Versions[0], opcNamer)
     {
         SystemMessageNamer = new OpCodeNamer(Path.Combine(App.DataPath, $"opcodes/sysmsg.{PacketAnalyzer.Factory.ReleaseVersion}.map"))
     };
     TeraSniffer.Instance.Connected = true;
 }