Example #1
0
        public static void HandleSystemMessage(S_SYSTEM_MESSAGE x)
        {
            try
            {
                var msg        = x.Message.Split('\v');
                var opcode     = ushort.Parse(msg[0].Substring(1));
                var opcodeName = SystemMessageNamer.GetName(opcode);

                if (SessionManager.SystemMessagesDatabase.Messages.TryGetValue(opcodeName, out var m))
                {
                    SystemMessagesProcessor.AnalyzeMessage(x.Message, m, opcodeName);
                }
            }
            catch (Exception)
            {
                File.AppendAllText("chat-errors.log", x.Message + "\n");
            }
        }
Example #2
0
        public static void SendTestMessage()
        {
            //var str = "@3947questNameDefeat HumedraszoneName@zoneName:181npcName@creature:181#2050";
            //var str = "@3789cityname@cityWar:20guildFated";
            //var str = "@1773ItemName@item:152141ItemName1@item:447ItemCount5";
            const string str     = "@3821userNametestNameguildQuestName@GuildQuest:31007001value1targetValue3";
            var          toBytes = Encoding.Unicode.GetBytes(str);
            var          arr     = new byte[toBytes.Length + 2 + 4];

            for (var i = 0; i < toBytes.Length - 1; i++)
            {
                arr[i + 4] = toBytes[i];
            }

            var seg = new ArraySegment <byte>(arr);

            var sysMsg = new S_SYSTEM_MESSAGE(new TeraMessageReader(new Message(DateTime.Now, MessageDirection.ServerToClient, seg), OpCodeNamer, Factory, SystemMessageNamer));

            HandleSystemMessage(sysMsg);
        }
Example #3
0
 private Task ReadSystemMessage(S_SYSTEM_MESSAGE systemMessage, CancellationToken token)
 => Dispatcher.Notify(systemMessageReader.Read(systemMessage.Content), token);