コード例 #1
0
 private static void MessageReceived(Tera.Message obj)
 {
     if (obj.Direction == Tera.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")))
         {
             {
                 BasicTeraData.LogError("Unknown client version: " + message.Versions[0]);
                 System.Windows.MessageBox.Show("Unknown client version: " + message.Versions[0]);
                 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"));
         MessageFactory.Init();
         TeraSniffer.Instance.Connected = true;
         Proxy.ConnectToProxy();
     }
     Packets.Enqueue(obj);
 }
コード例 #2
0
 private static MemoryStream GetStream(Tera.Message message)
 {
     return(new MemoryStream(message.Payload.Array, message.Payload.Offset, message.Payload.Count, false, true));
 }
コード例 #3
0
 public CustomReader(Tera.Message message)
     : base(GetStream(message), Encoding.Unicode)
 {
     Message = message;
 }
コード例 #4
0
        private void HandleMessageReceived(Message obj)
        {
            var message = _messageFactory.Create(obj);
            _entityRegistry.Update(message);

            var skillResultMessage = message as EachSkillResultServerMessage;
            if (skillResultMessage != null)
            {
                _damageTracker.Update(skillResultMessage);
            }
        }