Ejemplo n.º 1
0
        public Task InitializeAsync(Abstractions.Model.Game.Player player)
        {
            _ = player.SendAsync(new SendMapRegionMessage(player)).ContinueWith(_ =>
            {
                var defaultTabs = _tabManager.Default;
                for (int tab = 0; tab < defaultTabs.Length; tab++)
                {
                    var interfaceId = defaultTabs[tab];
                    _ = _tabManager.SetTabAsync(player, tab, interfaceId);
                }
            });

            var openLoginScreenMessage = new SendInterfaceMessage
            {
                InterfaceId = 549
            };

            _ = _protoMessageSender.SendAsync(player, openLoginScreenMessage);
            _ = _protoMessageSender.SendAsync(player, new OpenInterfaceMessage
            {
                Window      = 549,
                Position    = 2,
                InterfaceId = 378,
                Walkable    = true
            });
            _ = _protoMessageSender.SendAsync(player, new OpenInterfaceMessage
            {
                Window      = 549,
                Position    = 3,
                InterfaceId = 17,
                Walkable    = true
            });
            return(Task.CompletedTask);
        }
Ejemplo n.º 2
0
        public Task SetTabAsync(Abstractions.Model.Game.Player player, int tabId, int interfaceId)
        {
            var switchTabMessage = new ThreeOneSevenEncoderMessages.Types.SwitchTabInterfaceMessage
            {
                InterfaceId = interfaceId,
                TabId       = tabId
            };

            return(_protoMessageSender.SendAsync(player, switchTabMessage));
        }
Ejemplo n.º 3
0
        public Task SetTabAsync(Abstractions.Model.Game.Player player, int tabId, int interfaceId)
        {
            var switchTabMessage = new OpenInterfaceMessage
            {
                InterfaceId = interfaceId,
                Window      = 548, //Main window
                Position    = TabIds[tabId],
                Walkable    = true
            };

            return(_protoMessageSender.SendAsync(player, switchTabMessage));
        }
Ejemplo n.º 4
0
        public Task InitializeAsync(Abstractions.Model.Game.Player player)
        {
            var initMessage = new ThreeOneSevenEncoderMessages.Types.
                              IdAssignmentMessage
            {
                IsMembers = true, NewId = 1
            };

            _ = _protoMessageSender.SendAsync(player, initMessage);
            player.UpdateAppearance();

            var defaultTabs = _tabManager.Default;

            for (int tab = 0; tab < defaultTabs.Length; tab++)
            {
                var interfaceId = defaultTabs[tab];
                _ = _tabManager.SetTabAsync(player, tab, interfaceId);
            }
            return(Task.CompletedTask);
        }
Ejemplo n.º 5
0
 public SendMapRegionMessage(Abstractions.Model.Game.Player player)
 {
     Player = player;
 }
Ejemplo n.º 6
0
        protected override FourSevenFourDecoderMessages.Types.WalkingQueueMessage Decode(Abstractions.Model.Game.Player player, MessageFrame frame)
        {
            var reader = new MessageFrameReader(frame);
            var length = frame.Payload.ReadableBytes;

            if (frame.Id == 11)
            {
                length -= 14; // strip off anti-cheat data
            }

            int steps = (length - 5) / 2;

            int[,] path = new int[steps, 2];
            for (int i = 0; i < steps; i++)
            {
                path[i, 0] = (int)reader.GetSigned(MessageType.Byte);
                path[i, 1] = (int)reader.GetSigned(MessageType.Byte, DataTransformation.Subtract);
            }
            int x   = (int)reader.GetUnsigned(MessageType.Short, DataTransformation.Add);
            int y   = (int)reader.GetUnsigned(MessageType.Short, DataOrder.Little);
            var run = reader.GetUnsigned(MessageType.Byte, DataTransformation.Negate) == 1;

            var positions = new Position[steps + 1];

            positions[0] = new Position(x, y);
            for (int i = 0; i < steps; i++)
            {
                positions[i + 1] = new Position(path[i, 0] + x, path[i, 1] + y);
            }
            FourSevenFourDecoderMessages.Types.WalkingQueueMessage walkingQueueMessage = new() { Run = run, };
            walkingQueueMessage.X.Add(positions.Select(t => t.X));
            walkingQueueMessage.Y.Add(positions.Select(t => t.Y));
            return(walkingQueueMessage);
        }
Ejemplo n.º 7
0
 public SendPingMessage(Abstractions.Model.Game.Player player)
 {
     Player = player;
 }