packethandler
public static void CheckForFlag(GameState client) { if (client.Entity.GuildID == 0) return; var list = client.Map.Npcs.Values.Where(i => i.Type == Enums.NpcType.Flag).ToList(); foreach (var item in list) { if (Kernel.GetDistance(item.X, item.Y, client.Entity.X, client.Entity.Y) <= 1) { client.Entity.FlagStamp = Time32.Now; client.Send(Program.World.CTF.generateTimer(60)); client.Send(Program.World.CTF.generateEffect(client)); CaptureTheFlag.AddExploits(3, client.AsMember); CaptureTheFlag.AddScore(3, client.Guild); client.Entity.AddFlag(MsgUpdate.Flags.CTF_Flag, 60, true); CaptureTheFlag.SendScores(); client.Map.RemoveNpc(item, true); MsgActionProto Action = new MsgActionProto(); Action.UID = item.UID; Action.TimeStamp = (uint)Time32.Now.GetHashCode(); Action.ID = MsgAction_TATA.RemoveEntity; client.SendScreen(MsgAction_TATA.SendPacket(Action), true); } else { Program.World.CTF.AroundBase(client); } } }