当前位置: 首页>>代码示例>>C#>>正文


C# Packet.TryReadInt方法代码示例

本文整理汇总了C#中Solar.FiestaLib.Networking.Packet.TryReadInt方法的典型用法代码示例。如果您正苦于以下问题:C# Packet.TryReadInt方法的具体用法?C# Packet.TryReadInt怎么用?C# Packet.TryReadInt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Solar.FiestaLib.Networking.Packet的用法示例。


在下文中一共展示了Packet.TryReadInt方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GuildNameRequest

        public static void GuildNameRequest(WorldClient client, Packet packet)
        {
            int id;
            if (!packet.TryReadInt(out id)) {
                Log.WriteLine(LogLevel.Warn, "Failed reading Guild Name Request packet {0}", client.GetCharacterName());
                return;
            }

            var guild = WorldGuild.GetGuild(id);
            if (guild == null)
            {
                SendGuildNameResult(client, id, "");
            }
            else
            {
                SendGuildNameResult(client, id, guild.Name);
            }
        }
开发者ID:iFeddy,项目名称:SolarFiesta,代码行数:18,代码来源:Handler29.cs

示例2: HandleMovement

        private static void HandleMovement(ZoneCharacter character, Packet packet, bool run, bool stop = false)
        {
            if (character.State == PlayerState.Dead || character.State == PlayerState.Resting || character.State == PlayerState.Vendor)
            {
                character.CheatTracker.AddCheat(CheatTypes.INVALID_MOVE, 50);
                return;
            }

            int newX, oldX, newY, oldY;
            if (!stop)
            {
                if (!packet.TryReadInt(out oldX) || !packet.TryReadInt(out oldY) ||
                    !packet.TryReadInt(out newX) || !packet.TryReadInt(out newY))
                {
                    Log.WriteLine(LogLevel.Warn, "Invalid movement packet detected.");
                    return;
                }
            }
            else
            {
                if (!packet.TryReadInt(out newX) || !packet.TryReadInt(out newY))
                {
                    Log.WriteLine(LogLevel.Warn, "Invalid stop packet detected.");
                    return;
                }
                oldX = character.Position.X;
                oldY = character.Position.Y;
            }

            if (character.Map.Block != null)
            {
                if (Settings.Instance.UseSHBD)
                {
                    if (!character.Map.Block.CanWalk(newX, newY))
                    {
                        Log.WriteLine(LogLevel.Debug, "Blocking walk at {0}:{1}.", newX, newY);
                        SendPositionBlock(character, newX, newY);
                        SendTeleportCharacter(character, oldX, oldY);
                        return;
                    }
                }
            }

            double distance = Vector2.Distance(newX, oldX, newY, oldY);
            if ((run && distance > 500d) || (!run && distance > 400d)) //TODO: mounts don't check with these speeds
            {
                character.CheatTracker.AddCheat(Security.CheatTypes.SPEEDWALK, 50);
                return;
            }

            if (!stop)
            {
                int deltaY = newY - character.Position.Y;
                int deltaX = newX - character.Position.X;
                double radians = Math.Atan((double)deltaY / deltaX);
                double angle = radians * (180 / Math.PI);
                character.Rotation = (byte)(angle / 2);
            }

            character.Move(oldX, oldY, newX, newY, !run, stop); // hehe
        }
开发者ID:iFeddy,项目名称:SolarFiesta,代码行数:61,代码来源:Handler8.cs


注:本文中的Solar.FiestaLib.Networking.Packet.TryReadInt方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。