コード例 #1
0
        /// <inheritdoc/>
        public void HandlePacket(Player player, Span <byte> packet)
        {
            if (packet.Length < EnterGateRequest.Length)
            {
                return;
            }

            EnterGateRequest request = packet;
            var gateNumber           = request.GateNumber;

            if (gateNumber == 0)
            {
                this.teleportAction.TryTeleportWithSkill(player, new Point(request.TeleportTargetX, request.TeleportTargetY));
                return;
            }

            var gate = player.SelectedCharacter?.CurrentMap?.EnterGates.FirstOrDefault(g => g.Number == gateNumber);

            if (gate is null)
            {
                player.Logger.LogWarning("Gate {0} not found in current map {1}", gateNumber, player.SelectedCharacter?.CurrentMap);
                return;
            }

            this.warpAction.EnterGate(player, gate);
        }
コード例 #2
0
        /// <inheritdoc/>
        public void HandlePacket(Player player, Span <byte> packet)
        {
            if (packet.Length < EnterGateRequest.Length)
            {
                return;
            }

            EnterGateRequest request = packet;
            var       gateNumber     = request.GateNumber;
            EnterGate gate           = player.SelectedCharacter.CurrentMap.EnterGates.FirstOrDefault(g => g.Number == gateNumber);

            if (gate == null)
            {
                player.Logger.LogWarning("Gate {0} not found in current map {1}", gateNumber, player.SelectedCharacter.CurrentMap);
                return;
            }

            this.warpAction.EnterGate(player, gate);
        }
コード例 #3
0
        /// <inheritdoc/>
        public void HandlePacket(Player player, Span <byte> packet)
        {
            if (packet.Length < 8)
            {
                return;
            }

            EnterGateRequest request = packet;
            var       gateNumber     = request.GateNumber;
            EnterGate gate           = player.SelectedCharacter.CurrentMap.EnterGates.FirstOrDefault(g => NumberConversionExtensions.ToUnsigned(g.Number) == gateNumber);

            if (gate == null)
            {
                Logger.WarnFormat("Gate {0} not found in current map {1}", gateNumber, player.SelectedCharacter.CurrentMap);
                return;
            }

            this.warpAction.EnterGate(player, gate);
        }