예제 #1
0
        public void Drop(Game.Entity killer)
        {
            if (Owner.Name.Contains("Guard") || killer.Name.Contains("Guard1"))
                return;

            #region CleansingDevil
            if (Name == "CleansingDevil" && killer.MapID == 1116)
            {
                Random R = new Random();
                int Nr = R.Next(1, 10);
                if (Nr == 1) killer.Owner.Inventory.Add(184355, 0, 1);
                if (Nr == 2) killer.Owner.Inventory.Add(560339, 0, 1);
                if (Nr == 3) killer.Owner.Inventory.Add(183365, 0, 1);
                if (Nr == 4) killer.Owner.Inventory.Add(183335, 0, 1);
                if (Nr == 5) killer.Owner.Inventory.Add(184345, 0, 1);
                if (Nr == 6) killer.Owner.Inventory.Add(184365, 0, 1);
                if (Nr == 7) killer.Owner.Inventory.Add(184385, 0, 1);
                if (Nr == 8) killer.Owner.Inventory.Add(183395, 0, 1);
                if (Nr == 9) killer.Owner.Inventory.Add(183385, 0, 1);
                if (Nr == 10) killer.Owner.Inventory.Add(722057, 0, 1);
                killer.Teleport(1002, 400, 400);
                Time32 Now = Time32.Now;
                foreach (Client.GameState Chaar in ServerBase.Kernel.GamePool.Values)
                {
                    if (Chaar != null)
                    {
                        if (Chaar.Entity.MapID == 1116)
                        {
                            Chaar.Entity.Teleport(1002, 400, 400);
                        }
                    }
                }
            }
            #endregion
            #region Sizer
            if (Name == "Sizer" && killer.MapID == 3030)
            {
                Random R = new Random();
                int Nr = R.Next(1, 21);
                if (Nr == 1) killer.Owner.Inventory.Add35(184355, 12, 1);
                if (Nr == 2) killer.Owner.Inventory.Add35(560339, 12, 1);
                if (Nr == 3) killer.Owner.Inventory.Add35(183365, 12, 1);
                if (Nr == 4) killer.Owner.Inventory.Add35(183335, 12, 1);
                if (Nr == 5) killer.Owner.Inventory.Add35(184345, 12, 1);
                if (Nr == 6) killer.Owner.Inventory.Add35(184365, 12, 1);
                if (Nr == 7) killer.Owner.Inventory.Add35(184385, 12, 1);
                if (Nr == 8) killer.Owner.Inventory.Add35(183395, 12, 1);
                if (Nr == 9) killer.Owner.Inventory.Add35(183385, 12, 1);
                if (Nr == 10) killer.Owner.Inventory.Add35(192300, 12, 1);
                if (Nr == 11) killer.Owner.Inventory.Add35(184335, 12, 1);
                if (Nr == 12) killer.Owner.Inventory.Add35(187355, 12, 1);
                if (Nr == 13) killer.Owner.Inventory.Add35(193300, 12, 1);
                if (Nr == 14) killer.Owner.Inventory.Add35(194300, 12, 1);
                if (Nr == 15) killer.Owner.Inventory.Add35(420339, 12, 1);
                if (Nr == 16) killer.Owner.Inventory.Add35(480339, 12, 1);
                if (Nr == 17) killer.Owner.Inventory.Add35(410339, 12, 1);
                if (Nr == 18) killer.Owner.Inventory.Add35(500329, 12, 1);
                if (Nr == 19) killer.Owner.Inventory.Add35(421339, 12, 1);
                if (Nr == 20) killer.Owner.Inventory.Add35(561339, 12, 1);
                if (Nr == 21) killer.Owner.Inventory.Add(722057, 0, 1);
            }
            #endregion
            #region Peter
            if (Name == "Peter" && killer.MapID == 3030)
            {
                Random R = new Random();
                int Nr = R.Next(1, 21);
                if (Nr == 1) killer.Owner.Inventory.Add35(184355, 12, 1);
                if (Nr == 2) killer.Owner.Inventory.Add35(560339, 12, 1);
                if (Nr == 3) killer.Owner.Inventory.Add35(183365, 12, 1);
                if (Nr == 4) killer.Owner.Inventory.Add35(183335, 12, 1);
                if (Nr == 5) killer.Owner.Inventory.Add35(184345, 12, 1);
                if (Nr == 6) killer.Owner.Inventory.Add35(184365, 12, 1);
                if (Nr == 7) killer.Owner.Inventory.Add35(184385, 12, 1);
                if (Nr == 8) killer.Owner.Inventory.Add35(183395, 12, 1);
                if (Nr == 9) killer.Owner.Inventory.Add35(183385, 12, 1);
                if (Nr == 10) killer.Owner.Inventory.Add35(192300, 12, 1);
                if (Nr == 11) killer.Owner.Inventory.Add35(184335, 12, 1);
                if (Nr == 12) killer.Owner.Inventory.Add35(187355, 12, 1);
                if (Nr == 13) killer.Owner.Inventory.Add35(193300, 12, 1);
                if (Nr == 14) killer.Owner.Inventory.Add35(194300, 12, 1);
                if (Nr == 15) killer.Owner.Inventory.Add35(420339, 12, 1);
                if (Nr == 16) killer.Owner.Inventory.Add35(480339, 12, 1);
                if (Nr == 17) killer.Owner.Inventory.Add35(410339, 12, 1);
                if (Nr == 18) killer.Owner.Inventory.Add35(500329, 12, 1);
                if (Nr == 19) killer.Owner.Inventory.Add35(421339, 12, 1);
                if (Nr == 20) killer.Owner.Inventory.Add35(561339, 12, 1);
                if (Nr == 21) killer.Owner.Inventory.Add(722057, 0, 1);
            }
            #endregion
            #region DragonSon 1
            if (Name == "DragonSon1")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }
                killer.Teleport(1596, 130, 130);
                Conquer_Online_Server.Network.PacketHandler.WorldMessage("" + killer.Name + " Has Killed First DragonSon And Will Make DragonMon Angry !");
                Time32 Now = Time32.Now;
                foreach (Client.GameState Chaar in ServerBase.Kernel.GamePool.Values)
                {
                    if (Chaar != null)
                    {
                        if (Chaar.Entity.MapID == 1595)
                        {
                            Chaar.Entity.Teleport(1596, 130, 130);
                        }
                    }
                }
            }
            #endregion
            #region DragonSon 2
            if (Name == "DragonSon2")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }
                killer.Teleport(1597, 130, 130);
                Conquer_Online_Server.Network.PacketHandler.WorldMessage("" + killer.Name + " Has Killed 2nd DragonSon And Will Make DragonMon Angry !");
                Time32 Now = Time32.Now;
                foreach (Client.GameState Chaar in ServerBase.Kernel.GamePool.Values)
                {
                    if (Chaar != null)
                    {
                        if (Chaar.Entity.MapID == 1596)
                        {
                            Chaar.Entity.Teleport(1597, 130, 130);
                        }
                    }
                }
            }
            #endregion
            #region DragonSon 3
            if (Name == "DragonSon3")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }
                killer.Teleport(1598, 130, 130);
                Conquer_Online_Server.Network.PacketHandler.WorldMessage("" + killer.Name + " Has Killed 3rd DragonSon And Will Make DragonMon Angry !");
                Time32 Now = Time32.Now;
                foreach (Client.GameState Chaar in ServerBase.Kernel.GamePool.Values)
                {
                    if (Chaar != null)
                    {
                        if (Chaar.Entity.MapID == 1597)
                        {
                            Chaar.Entity.Teleport(1598, 130, 130);
                        }
                    }
                }
            }
            #endregion
            #region DragonSon 4
            if (Name == "DragonSon4")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }
                killer.Teleport(1599, 130, 130);
                Conquer_Online_Server.Network.PacketHandler.WorldMessage("" + killer.Name + " Has Killed 4th DragonSon And Make DragonMon Angry !");
                Time32 Now = Time32.Now;
                foreach (Client.GameState Chaar in ServerBase.Kernel.GamePool.Values)
                {
                    if (Chaar != null)
                    {
                        if (Chaar.Entity.MapID == 1598)
                        {
                            Chaar.Entity.Teleport(1599, 130, 130);
                        }
                    }
                }
            }
            #endregion
            #region DragonMom
            if (Name == "TeratoDragon" && killer.MapID == 1599)
            {
                killer.ConquerPoints += 5000;
                killer.Teleport(1002, 400, 400);
                Conquer_Online_Server.Network.PacketHandler.WorldMessage("" + killer.Name + " Has Killed The DragonMon And Won 5K CPs :D !");
                Time32 Now = Time32.Now;
                foreach (Client.GameState Chaar in ServerBase.Kernel.GamePool.Values)
                {
                    if (Chaar != null)
                    {
                        if (Chaar.Entity.MapID == 1599)
                        {
                            Chaar.Entity.Teleport(1002, 400, 400);
                        }
                    }
                }
            }
            #endregion

            #region DiabloRojoL117 Cps Drop
            if (Name == "DiabloRojoL117")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 15;
                killer.SubClasses.StudyPoints += 50;
                killer.Owner.Send(new Network.GamePackets.Message("15 Cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion

            #region Pheasant Cps Drop
            if (Name == "Faisan")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 3;
                killer.SubClasses.StudyPoints += 2;
                killer.Owner.Send(new Network.GamePackets.Message("3 Cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region Birdman Cps Drop
            if (Name == "HombrePajaro")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 17;
                killer.SubClasses.StudyPoints += 5;
                killer.Owner.Send(new Network.GamePackets.Message(" 17 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion

            #region HawKing Cps Drop
            if (Name == "JefeDeAguila")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 15;
                killer.SubClasses.StudyPoints += 5;
                killer.Owner.Send(new Network.GamePackets.Message("15 cps ", System.Drawing.Color.Blue, 2005));
            }
            #endregion

            #region Birdman Cps Drop
            if (Name == "cuatrero")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 17;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 17 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region BanditL97 Cps Drop
            if (Name == "BandidoLv97")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 16;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 16 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region Murcielago Cps Drop
            if (Name == "Murcielago")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 15;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 15 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region Vampiro Cps Drop
            if (Name == "Vampiro")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 15;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 18 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region BuhoVampiro Cps Drop
            if (Name == "BuhoVampiro")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 15;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 15 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region ToroMonstruoso Cps Drop
            if (Name == "ToroMonstruoso")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 13;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 13 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region MonstrToroLv113 Cps Drop
            if (Name == "MonstrToroLv113")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 15;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 30 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region Macaco Cps Drop
            if (Name == "Macaco")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 12;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 30 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion
            #region MonoGigante Cps Drop
            if (Name == "MonoGigante")
            {
                if (killer.Name.Contains("Guard"))
                {
                    return;
                }

                killer.ConquerPoints += 9;
                killer.SubClasses.StudyPoints += 10;
                killer.Owner.Send(new Network.GamePackets.Message(" 9 cps", System.Drawing.Color.Blue, 2005));
            }
            #endregion

            #region TeratoDragon Cps Drop
            if (Name == "TeratoDragon")
            {

                killer.ConquerPoints += 3000;
                killer.SubClasses.StudyPoints += 1000;
                Conquer_Online_Server.Network.PacketHandler.WorldMessage("Congratulations!  " + killer.Name + "! killed TeratoDragon and Got 3000 CPS and 1000 StudyPoint.");
            }
            if (Name == "KingMonster")
            { Program.Kingmonster = true; }
            if (Name == "princesMonster")
            { Program.Princesmonster = true; }
            if (Name == "DukeMonster")
            { Program.Dukemonster = true; }
            #endregion

            #region SnowBanshee Cps Drop

            if (Name == "SnowBanshee")
            {

                killer.ConquerPoints += 3000;
                killer.SubClasses.StudyPoints += 1000;
                Conquer_Online_Server.Network.PacketHandler.WorldMessage("Congratulations!  " + killer.Name + "! killed SnowBanshee and got 3000 CPS and 1000  StudyPoint.");

            }
            #endregion

            #region DragonSoul Drops
            if (Name == "TeratoDragon")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 22);
                    switch (type)
                    {
                        case 1: Uid = 800000; break;
                        case 2: Uid = 800017; break;
                        case 3: Uid = 800110; break;
                        case 4: Uid = 800320; break;
                        case 5: Uid = 800421; break;
                        case 6: Uid = 800513; break;
                        case 7: Uid = 800616; break;
                        case 8: Uid = 800722; break;
                        case 9: Uid = 820056; break;
                        case 10: Uid = 820057; break;
                        case 11: Uid = 822053; break;
                        case 12: Uid = 822055; break;
                        case 13: Uid = 823055; break;
                        case 14: Uid = 823056; break;
                        case 15: Uid = 820071; break;
                        case 16: Uid = 821031; break;
                        case 17: Uid = 821032; break;
                        case 18: Uid = 823055; break;
                        case 19: Uid = 823056; break;
                        case 20: Uid = 823057; break;
                        case 21: Uid = 824017; break;

                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "LavaBeast")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 22);
                    switch (type)
                    {
                        case 1: Uid = 800000; break;
                        case 2: Uid = 800017; break;
                        case 3: Uid = 800110; break;
                        case 4: Uid = 800320; break;
                        case 5: Uid = 800421; break;
                        case 6: Uid = 800513; break;
                        case 7: Uid = 800616; break;
                        case 8: Uid = 800722; break;
                        case 9: Uid = 820056; break;
                        case 10: Uid = 820057; break;
                        case 11: Uid = 822053; break;
                        case 12: Uid = 822055; break;
                        case 13: Uid = 823055; break;
                        case 14: Uid = 823056; break;
                        case 15: Uid = 820071; break;
                        case 16: Uid = 821031; break;
                        case 17: Uid = 821032; break;
                        case 18: Uid = 823055; break;
                        case 19: Uid = 823056; break;
                        case 20: Uid = 823057; break;
                        case 21: Uid = 824017; break;

                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "SnowBanshee")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 22);
                    switch (type)
                    {
                        case 1: Uid = 800000; break;
                        case 2: Uid = 800017; break;
                        case 3: Uid = 800110; break;
                        case 4: Uid = 800320; break;
                        case 5: Uid = 800421; break;
                        case 6: Uid = 800513; break;
                        case 7: Uid = 800616; break;
                        case 8: Uid = 800722; break;
                        case 9: Uid = 820056; break;
                        case 10: Uid = 820057; break;
                        case 11: Uid = 822053; break;
                        case 12: Uid = 822055; break;
                        case 13: Uid = 823055; break;
                        case 14: Uid = 823056; break;
                        case 15: Uid = 820071; break;
                        case 16: Uid = 821031; break;
                        case 17: Uid = 821032; break;
                        case 18: Uid = 823055; break;
                        case 19: Uid = 823056; break;
                        case 20: Uid = 823057; break;
                        case 21: Uid = 824017; break;

                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "ThrillingSpook")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 22);
                    switch (type)
                    {
                        case 1: Uid = 800000; break;
                        case 2: Uid = 800014; break;
                        case 3: Uid = 800015; break;
                        case 4: Uid = 800016; break;
                        case 5: Uid = 800017; break;
                        case 6: Uid = 800110; break;
                        case 7: Uid = 800214; break;
                        case 8: Uid = 800320; break;
                        case 9: Uid = 800415; break;
                        case 10: Uid = 800512; break;
                        case 11: Uid = 800513; break;
                        case 12: Uid = 800613; break;
                        case 13: Uid = 800616; break;
                        case 14: Uid = 800720; break;
                        case 15: Uid = 800722; break;
                        case 16: Uid = 820056; break;
                        case 17: Uid = 820057; break;
                        case 18: Uid = 822053; break;
                        case 19: Uid = 822055; break;
                        case 20: Uid = 823052; break;
                        case 21: Uid = 823053; break;
                        case 22: Uid = 823054; break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "SwordMaster")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 22);
                    switch (type)
                    {
                        case 1: Uid = 800019; break;
                        case 2: Uid = 800050; break;
                        case 3: Uid = 800070; break;
                        case 4: Uid = 800071; break;
                        case 5: Uid = 800140; break;
                        case 6: Uid = 800141; break;
                        case 7: Uid = 800200; break;
                        case 8: Uid = 800230; break;
                        case 9: Uid = 800414; break;
                        case 10: Uid = 800520; break;
                        case 11: Uid = 800521; break;
                        case 12: Uid = 800615; break;
                        case 13: Uid = 800617; break;
                        case 14: Uid = 800723; break;
                        case 15: Uid = 800724; break;
                        case 16: Uid = 820052; break;
                        case 17: Uid = 820053; break;
                        case 18: Uid = 822056; break;
                        case 19: Uid = 822057; break;
                        case 20: Uid = 823041; break;
                        case 21: Uid = 823043; break;
                        case 22: Uid = 823045; break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "FlyingRooster")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 45);
                    switch (type)
                    {
                        case 1: Uid = 800001; break;
                        case 2: Uid = 800002; break;
                        case 3: Uid = 800003; break;
                        case 4: Uid = 800004; break;
                        case 5: Uid = 800005; break;
                        case 6: Uid = 800201; break;
                        case 7: Uid = 800202; break;
                        case 8: Uid = 800203; break;
                        case 9: Uid = 800402; break;
                        case 10: Uid = 800403; break;
                        case 11: Uid = 800501; break;
                        case 12: Uid = 800502; break;
                        case 13: Uid = 800503; break;
                        case 14: Uid = 800601; break;
                        case 15: Uid = 800602; break;
                        case 16: Uid = 800603; break;
                        case 17: Uid = 800701; break;
                        case 18: Uid = 800702; break;
                        case 19: Uid = 800703; break;
                        case 20: Uid = 820002; break;
                        case 21: Uid = 820003; break;
                        case 22: Uid = 820012; break;
                        case 23: Uid = 820022; break;
                        case 24: Uid = 820023; break;
                        case 25: Uid = 820032; break;
                        case 26: Uid = 820033; break;
                        case 27: Uid = 820042; break;
                        case 28: Uid = 820043; break;
                        case 29: Uid = 821002; break;
                        case 30: Uid = 821003; break;
                        case 31: Uid = 821004; break;
                        case 32: Uid = 821015; break;
                        case 33: Uid = 821016; break;
                        case 34: Uid = 821025; break;
                        case 35: Uid = 821026; break;
                        case 36: Uid = 822012; break;
                        case 37: Uid = 822013; break;
                        case 38: Uid = 822022; break;
                        case 39: Uid = 822032; break;
                        case 40: Uid = 822042; break;
                        case 41: Uid = 823001; break;
                        case 42: Uid = 823002; break;
                        case 43: Uid = 823015; break;
                        case 44: Uid = 823028; break;
                        case 45: Uid = 824002; break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "GreenDevil")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 36);
                    switch (type)
                    {
                        case 1: Uid = 800010; break;
                        case 2: Uid = 800011; break;
                        case 3: Uid = 800012; break;
                        case 4: Uid = 800013; break;
                        case 5: Uid = 800210; break;
                        case 6: Uid = 800211; break;
                        case 7: Uid = 800212; break;
                        case 8: Uid = 800213; break;
                        case 9: Uid = 800310; break;
                        case 10: Uid = 800018; break;
                        case 11: Uid = 800090; break;
                        case 12: Uid = 800130; break;
                        case 13: Uid = 800401; break;
                        case 14: Uid = 800413; break;
                        case 15: Uid = 800420; break;
                        case 16: Uid = 800514; break;
                        case 17: Uid = 800614; break;
                        case 18: Uid = 820001; break;
                        case 19: Uid = 820054; break;
                        case 20: Uid = 820055; break;
                        case 21: Uid = 821014; break;
                        case 22: Uid = 821026; break;
                        case 23: Uid = 822001; break;
                        case 24: Uid = 822052; break;
                        case 25: Uid = 822054; break;
                        case 26: Uid = 823040; break;
                        case 27: Uid = 823042; break;
                        case 28: Uid = 823044; break;
                        case 29: Uid = 823046; break;
                        case 30: Uid = 823047; break;
                        case 31: Uid = 823048; break;
                        case 32: Uid = 823049; break;
                        case 33: Uid = 823050; break;
                        case 34: Uid = 823051; break;
                        case 35: Uid = 824001; break;
                        case 36: Uid = 824014; break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "BullDevil")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 36);
                    switch (type)
                    {
                        case 1: Uid = 800010; break;
                        case 2: Uid = 800011; break;
                        case 3: Uid = 800012; break;
                        case 4: Uid = 800013; break;
                        case 5: Uid = 800210; break;
                        case 6: Uid = 800211; break;
                        case 7: Uid = 800212; break;
                        case 8: Uid = 800213; break;
                        case 9: Uid = 800310; break;
                        case 10: Uid = 800018; break;
                        case 11: Uid = 800090; break;
                        case 12: Uid = 800130; break;
                        case 13: Uid = 800401; break;
                        case 14: Uid = 800413; break;
                        case 15: Uid = 800420; break;
                        case 16: Uid = 800514; break;
                        case 17: Uid = 800614; break;
                        case 18: Uid = 820001; break;
                        case 19: Uid = 820054; break;
                        case 20: Uid = 820055; break;
                        case 21: Uid = 821014; break;
                        case 22: Uid = 821026; break;
                        case 23: Uid = 822001; break;
                        case 24: Uid = 822052; break;
                        case 25: Uid = 822054; break;
                        case 26: Uid = 823040; break;
                        case 27: Uid = 823042; break;
                        case 28: Uid = 823044; break;
                        case 29: Uid = 823046; break;
                        case 30: Uid = 823047; break;
                        case 31: Uid = 823048; break;
                        case 32: Uid = 823049; break;
                        case 33: Uid = 823050; break;
                        case 34: Uid = 823051; break;
                        case 35: Uid = 824001; break;
                        case 36: Uid = 824014; break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "BloodyKing")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 36);
                    switch (type)
                    {
                        case 1: Uid = 800010; break;
                        case 2: Uid = 800011; break;
                        case 3: Uid = 800012; break;
                        case 4: Uid = 800013; break;
                        case 5: Uid = 800210; break;
                        case 6: Uid = 800211; break;
                        case 7: Uid = 800212; break;
                        case 8: Uid = 800213; break;
                        case 9: Uid = 800310; break;
                        case 10: Uid = 800018; break;
                        case 11: Uid = 800090; break;
                        case 12: Uid = 800130; break;
                        case 13: Uid = 800401; break;
                        case 14: Uid = 800413; break;
                        case 15: Uid = 800420; break;
                        case 16: Uid = 800514; break;
                        case 17: Uid = 800614; break;
                        case 18: Uid = 820001; break;
                        case 19: Uid = 820054; break;
                        case 20: Uid = 820055; break;
                        case 21: Uid = 821014; break;
                        case 22: Uid = 821026; break;
                        case 23: Uid = 822001; break;
                        case 24: Uid = 822052; break;
                        case 25: Uid = 822054; break;
                        case 26: Uid = 823040; break;
                        case 27: Uid = 823042; break;
                        case 28: Uid = 823044; break;
                        case 29: Uid = 823046; break;
                        case 30: Uid = 823047; break;
                        case 31: Uid = 823048; break;
                        case 32: Uid = 823049; break;
                        case 33: Uid = 823050; break;
                        case 34: Uid = 823051; break;
                        case 35: Uid = 824001; break;
                        case 36: Uid = 824014; break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            if (Name == "BirdKing")
            {

                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 36);
                    switch (type)
                    {
                        case 1: Uid = 800010; break;
                        case 2: Uid = 800011; break;
                        case 3: Uid = 800012; break;
                        case 4: Uid = 800013; break;
                        case 5: Uid = 800210; break;
                        case 6: Uid = 800211; break;
                        case 7: Uid = 800212; break;
                        case 8: Uid = 800213; break;
                        case 9: Uid = 800310; break;
                        case 10: Uid = 800018; break;
                        case 11: Uid = 800090; break;
                        case 12: Uid = 800130; break;
                        case 13: Uid = 800401; break;
                        case 14: Uid = 800413; break;
                        case 15: Uid = 800420; break;
                        case 16: Uid = 800514; break;
                        case 17: Uid = 800614; break;
                        case 18: Uid = 820001; break;
                        case 19: Uid = 820054; break;
                        case 20: Uid = 820055; break;
                        case 21: Uid = 821014; break;
                        case 22: Uid = 821026; break;
                        case 23: Uid = 822001; break;
                        case 24: Uid = 822052; break;
                        case 25: Uid = 822054; break;
                        case 26: Uid = 823040; break;
                        case 27: Uid = 823042; break;
                        case 28: Uid = 823044; break;
                        case 29: Uid = 823046; break;
                        case 30: Uid = 823047; break;
                        case 31: Uid = 823048; break;
                        case 32: Uid = 823049; break;
                        case 33: Uid = 823050; break;
                        case 34: Uid = 823051; break;
                        case 35: Uid = 824001; break;
                        case 36: Uid = 824014; break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = Uid;
                            floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
                            floorItem.Item.MobDropped = true;
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = 65535;
                            floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }
            #endregion

            #region RespawnTime
            if (Name == "TeratoDragon")
            {
                RespawnTime += 15;
            }
            #endregion

            #region RespawnTime
            if (Name == "SnowBanshee")
            {
                RespawnTime += 30;
            }
            #endregion

            #region RespawnTime
            if (Name == "LavaBeast")
            {
                RespawnTime += 15;
            }
            #endregion

            #region RespawnTime
            if (Name == "ThrillingSpook")
            {
                RespawnTime += 15;
            }
            #endregion

            #region RespawnTime
            if (Name == "SwordMaster")
            {
                RespawnTime += 30;
            }
            #endregion

            if (Name == "LavaBeast")
                goto Jump4;
            if (Name == "TeratoDragon" || Name == "SnowBanshee" || Name == "ThrillingSpook")
                goto Jump;
            if (this.Name == "Demon")
            {
                goto Jump5;
            }
            if (this.Name == "AncientDemon")
            {
                goto Jump6;
            }
            if (this.Name == "FloodDemon")
            {
                goto Jump7;
            }
            if (this.Name == "HeavenDemon")
            {
                goto Jump8;
            }
            if (this.Name == "ChaosDemon")
            {
                goto Jump9;
            }
            Jump:
            #region TeratoDragon  SnowBanshee  ThrillingSpook
            if (this.Name == "TeratoDragon" || this.Name == "SnowBanshee" || this.Name == "ThrillingSpook")
            {

                uint Uid = 0;
                byte type = (byte)ServerBase.Kernel.Random.Next(1, 50);
                switch (type)
                {
                    case 1:
                        Uid = 800000;
                        break;

                    case 2:
                        Uid = 822054;
                        break;

                    case 3:
                        Uid = 822053;
                        break;

                    case 4:
                        Uid = 822055;
                        break;

                    case 5:
                        Uid = 822056;
                        break;

                    case 6:
                        Uid = 822057;
                        break;

                    case 7:
                        Uid = 800014;
                        break;

                    case 8:
                        Uid = 800019;
                        break;

                    case 9:
                        Uid = 800050;
                        break;

                    case 10:
                        Uid = 800015;
                        break;

                    case 11:
                        Uid = 800090;
                        break;

                    case 12:
                        Uid = 800110;
                        break;

                    case 13:
                        Uid = 800070;
                        break;

                    case 14:
                        Uid = 800071;
                        break;

                    case 15:
                        Uid = 800016;
                        break;

                    case 16:
                        Uid = 800017;
                        break;

                    case 17:
                        Uid = 800130;
                        break;

                    case 18:
                        Uid = 800140;
                        break;

                    case 19:
                        Uid = 800141;
                        break;

                    case 20:
                        Uid = 800200;
                        break;

                    case 21:
                        Uid = 800310;
                        break;

                    case 22:
                        Uid = 800320;
                        break;

                    case 23:
                        Uid = 800214;
                        break;

                    case 24:
                        Uid = 800230;
                        break;

                    case 25:
                        Uid = 800414;
                        break;

                    case 26:
                        Uid = 800415;
                        break;

                    case 27:
                        Uid = 800420;
                        break;

                    case 28:
                        Uid = 800401;
                        break;

                    case 29:
                        Uid = 800512;
                        break;

                    case 30:
                        Uid = 800513;
                        break;

                    case 31:
                        Uid = 800514;
                        break;

                    case 32:
                        Uid = 800520;
                        break;

                    case 33:
                        Uid = 800521;
                        break;

                    case 34:
                        Uid = 800613;
                        break;

                    case 35:
                        Uid = 800614;
                        break;

                    case 36:
                        Uid = 800615;
                        break;

                    case 37:
                        Uid = 800616;
                        break;

                    case 38:
                        Uid = 800617;
                        break;

                    case 39:
                        Uid = 800720;
                        break;

                    case 40:
                        Uid = 800721;
                        break;

                    case 41:
                        Uid = 800722;
                        break;

                    case 42:
                        Uid = 800723;
                        break;

                    case 43:
                        Uid = 800724;
                        break;

                    case 44:
                        Uid = 800018;
                        break;

                    case 45:
                        Uid = 820001;
                        break;

                    case 46:
                        Uid = 820052;
                        break;

                    case 47:
                        Uid = 820053;
                        break;

                    case 48:
                        Uid = 820054;
                        break;

                    case 49:
                        Uid = 820055;
                        break;

                    case 50:
                        Uid = 820057;
                        break;
                }
                killer.Owner.Inventory.Add(Uid, 0, 1);
                killer.SubClasses.StudyPoints += 200;

            }
            #endregion

            Jump4:
            #region LavaBeast  SwordMaster
            if (this.Name == "LavaBeast" || this.Name == "SwordMaster")
            {

                uint Uid = 0;
                byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
                switch (type)
                {
                    case 1: Uid = 822052; break;
                    case 2: Uid = 822053; break;
                    case 3: Uid = 822054; break;
                    case 4: Uid = 822055; break;
                    case 5: Uid = 800413; break;
                    case 6: Uid = 800414; break;
                    case 7: Uid = 800014; break;
                    case 8: Uid = 800015; break;
                    case 9: Uid = 800016; break;
                    case 10: Uid = 800512; break;
                    case 11: Uid = 800613; break;
                    case 12: Uid = 800415; break;
                    case 13: Uid = 800420; break;
                    case 14: Uid = 800513; break;
                    case 15: Uid = 800017; break;
                    case 16: Uid = 820052; break;
                    case 17: Uid = 820053; break;
                    case 18: Uid = 820054; break;
                    case 19: Uid = 820055; break;
                    case 20: Uid = 820056; break;
                    case 21: Uid = 820057; break;
                }

                killer.Owner.Inventory.Add(Uid, 0, 1);

                //killer.ConquerPoints += 100;
                killer.SubClasses.StudyPoints += 100;
                //ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + "Has Killed " + Owner.Name + " And Take 100 CPs!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);

            }
            #endregion

            Jump5:
            {
                #region Demon
                if (this.Name == "Demon")
                {
                    Random R1 = new Random();
                    int Nr2 = R1.Next(1, 6);
                    if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
                    {
                        killer.Owner.Inventory.Add(720657, 0, 1);
                    }
                    if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
                    {
                        killer.Owner.Inventory.Add(720656, 0, 1);
                    }
                    if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
                    {
                        killer.Owner.Inventory.Add(720655, 0, 1);
                    }
                    if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 3)))
                    {
                        killer.Owner.Inventory.Add(720654, 0, 1);
                    }
                    if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
                    {
                        killer.Owner.Inventory.Add(720668, 0, 1);
                    }
                }
                #endregion
            }
            Jump6:
            {
                #region AncientDemon
                if (this.Name == "AncientDemon")
                {
                    Random R1 = new Random();
                    int Nr2 = R1.Next(1, 7);
                    if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
                    {
                        killer.Owner.Inventory.Add(720658, 0, 1);
                    }
                    if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
                    {
                        killer.Owner.Inventory.Add(720659, 0, 1);
                    }
                    if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
                    {
                        killer.Owner.Inventory.Add(720660, 0, 1);
                    }
                    if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
                    {
                        killer.Owner.Inventory.Add(720661, 0, 1);
                    }
                    if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
                    {
                        killer.Owner.Inventory.Add(720662, 0, 1);
                    }
                    if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
                    {
                        killer.Owner.Inventory.Add(720669, 0, 1);
                    }
                }
                #endregion
            }
            Jump7:
            {
                #region FloodDemon
                if (this.Name == "FloodDemon")
                {
                    Random R1 = new Random();
                    int Nr2 = R1.Next(1, 7);
                    if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
                    {
                        killer.Owner.Inventory.Add(720663, 0, 1);
                    }
                    if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
                    {
                        killer.Owner.Inventory.Add(720664, 0, 1);
                    }
                    if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
                    {
                        killer.Owner.Inventory.Add(720665, 0, 1);
                    }
                    if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
                    {
                        killer.Owner.Inventory.Add(720666, 0, 1);
                    }
                    if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
                    {
                        killer.Owner.Inventory.Add(720667, 0, 1);
                    }
                    if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
                    {
                        killer.Owner.Inventory.Add(720670, 0, 1);
                    }
                }
                #endregion
            }
            Jump8:
            {
                #region HeavenDemon
                if (this.Name == "HeavenDemon")
                {
                    Random R1 = new Random();
                    int Nr2 = R1.Next(1, 7);
                    if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
                    {
                        killer.Owner.Inventory.Add(720675, 0, 1);
                    }
                    if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
                    {
                        killer.Owner.Inventory.Add(720676, 0, 1);
                    }
                    if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
                    {
                        killer.Owner.Inventory.Add(720677, 0, 1);
                    }
                    if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
                    {
                        killer.Owner.Inventory.Add(720678, 0, 1);
                    }
                    if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
                    {
                        killer.Owner.Inventory.Add(720679, 0, 1);
                    }
                    if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
                    {
                        killer.Owner.Inventory.Add(720680, 0, 1);
                    }
                }
                #endregion
            }
            Jump9:
            {
                #region ChaosDemon
                if (this.Name == "ChaosDemon")
                {
                    Random R1 = new Random();
                    int Nr2 = R1.Next(1, 7);
                    if (Nr2 == 1 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(70, 85)))
                    {
                        killer.Owner.Inventory.Add(720681, 0, 1);
                    }
                    if (Nr2 == 2 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(45, 60)))
                    {
                        killer.Owner.Inventory.Add(720682, 0, 1);
                    }
                    if (Nr2 == 3 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(20, 40)))
                    {
                        killer.Owner.Inventory.Add(720683, 0, 1);
                    }
                    if (Nr2 == 4 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(3, 5)))
                    {
                        killer.Owner.Inventory.Add(720684, 0, 1);
                    }
                    if (Nr2 == 5 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(1, 2)))
                    {
                        killer.Owner.Inventory.Add(720685, 0, 1);
                    }
                    if (Nr2 == 6 && ServerBase.Kernel.ChanceSuccess(ServerBase.Kernel.Random.Next(80, 100)))
                    {
                        killer.Owner.Inventory.Add(720686, 0, 1);
                    }
                }
                #endregion
            }
            if (killer.MapID == 1013)
            {
                if (ServerBase.Kernel.Rate(10))
                {

                    var infos = Database.ConquerItemInformation.BaseInformations[723903];
                    ushort X = Owner.X, Y = Owner.Y;
                    Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                    if (Map.SelectCoordonates(ref X, ref Y))
                    {
                        Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                        floorItem.Item = new Network.GamePackets.ConquerItem(true);
                        floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                        floorItem.Item.ID = (uint)723903;

                        floorItem.Item.MaximDurability = infos.Durability;
                        floorItem.Item.MobDropped = true;
                        floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                        floorItem.ItemID = (uint)723903;
                        floorItem.MapID = Owner.MapID;
                        floorItem.MapObjType = Game.MapObjectType.Item;
                        floorItem.X = X;
                        floorItem.Y = Y;
                        floorItem.Type = Network.GamePackets.FloorItem.Drop;
                        floorItem.OnFloor = Time32.Now;
                        floorItem.ItemColor = floorItem.Item.Color;
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                        while (Map.Npcs.ContainsKey(floorItem.UID))
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                        Map.AddFloorItem(floorItem);
                        SendScreenSpawn(floorItem);
                    }
                }
            }
            if (ServerBase.Kernel.Rate(40))
            {
                uint amount = (uint)ServerBase.Kernel.Random.Next(500, 1000);
                amount *= ServerBase.Constants.MoneyDropMultiple;

                uint ItemID = Network.PacketHandler.MoneyItemID(amount);
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money;
                    floorItem.Value = amount;
                    floorItem.ItemID = ItemID;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }
            }
            #region CPs
            /*
            if (Name == "Pheasant" && ServerBase.Kernel.Rate(30))
            {
                killer.ConquerPoints += 10;

                killer.Owner.Send(new Network.GamePackets.Message("You have found 10 Cps!", System.Drawing.Color.Yellow, 2005));
            }
            else if (ServerBase.Kernel.Rate(12))
            {
                killer.ConquerPoints += 50;

                killer.Owner.Send(new Network.GamePackets.Message("You have found 50 Cps!", System.Drawing.Color.Yellow, 2005));
            }
            else if (ServerBase.Kernel.Rate(30))
            {
                uint amount = 20;
                killer.ConquerPoints += 20;
                killer.Owner.Send(new Network.GamePackets.Message("The monster has runned out and let " + amount + " cps.", System.Drawing.Color.Yellow, 2005));
            }

            else  if (Name == "Pheasant" && ServerBase.Kernel.Rate(0.001))
            {
                Random R = new Random();
                int Nr = R.Next(1, 5);
                if (Nr == 1)
                {
                    killer.ConquerPoints += 1000;
                    ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + " Has Killed  " + Owner.Name + "  and found Lv4 (Magic Cps) 1000 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
                    //killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
                }
                if (Nr == 2)
                {
                    killer.ConquerPoints += 800;
                    ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + " Has Killed  " + Owner.Name + "  and found Lv3 (Magic Cps) 800 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
                    //killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
                }
                if (Nr == 3)
                {
                    killer.ConquerPoints += 500;
                    ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + " Has Killed  " + Owner.Name + "  and found Lv2 (Magic Cps) 800 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
                    //killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
                }
                if (Nr == 4)
                {
                    killer.ConquerPoints += 100;
                    ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + " Has Killed  " + Owner.Name + "  and found Lv1 (Magic Cps) 100 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
                    //killer.Owner.Send(new Network.GamePackets.Message("You have found (Magic Cps) 5000!", System.Drawing.Color.Yellow, 2005));
                }
            }
             */
            #endregion
            /*
            ushort X2 = Owner.X, Y2 = Owner.Y;
            Game.Map Map2 = ServerBase.Kernel.Maps[Owner.MapID];
              if (ServerBase.Kernel.Rate(8))
            {
                if (Map2.SelectCoordonates(ref X2, ref Y2))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
                    floorItem.Value = 1000;
                    floorItem.ItemID = 720694;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X2;
                    floorItem.Y = Y2;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map2.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map2.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                    ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + "Has Killed " + Owner.Name + "and found 4000 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
                }
            }
              else if (ServerBase.Kernel.Rate(3))
              {
              if (Map2.SelectCoordonates(ref X2, ref Y2))
              {
                  Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                  floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
                  floorItem.Value = 13500;
                  floorItem.ItemID = 720678;
                  floorItem.MapID = Owner.MapID;
                  floorItem.MapObjType = Game.MapObjectType.Item;
                  floorItem.X = X2;
                  floorItem.Y = Y2;
                  floorItem.Type = Network.GamePackets.FloorItem.Drop;
                  floorItem.OnFloor = Time32.Now;
                  floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                  while (Map2.Npcs.ContainsKey(floorItem.UID))
                      floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                  Map2.AddFloorItem(floorItem);
                  SendScreenSpawn(floorItem);
                  ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + "Has Killed " + Owner.Name + "and found 13500 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
              }
              }
              else if (ServerBase.Kernel.Rate(0.01))
              {
              if (Map2.SelectCoordonates(ref X2, ref Y2))
              {
                  Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                  floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
                  floorItem.Value = 27000;
                  floorItem.ItemID = 720684;
                  floorItem.MapID = Owner.MapID;
                  floorItem.MapObjType = Game.MapObjectType.Item;
                  floorItem.X = X2;
                  floorItem.Y = Y2;
                  floorItem.Type = Network.GamePackets.FloorItem.Drop;
                  floorItem.OnFloor = Time32.Now;
                  floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                  while (Map2.Npcs.ContainsKey(floorItem.UID))
                      floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                  Map2.AddFloorItem(floorItem);
                  SendScreenSpawn(floorItem);
                  ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + "Has Killed " + Owner.Name + "and found 27000 cps in hunting monster!", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
              }
              }
             */
            byte morepercent = 0;
            byte morepercent2 = NewMethod();
            if (SuperBoss)
                morepercent2 = 30;
            byte lessrate = 0;
            if (killer.VIPLevel > 0)
                morepercent = (byte)(killer.VIPLevel * 5);
            if (killer.Level <= 10 && killer.MapID == 1002)
                morepercent += 100;
            if (killer.VIPLevel != 6 && killer.Class >= 40 && killer.Class <= 45)
                lessrate = 3;
            if (killer.VIPLevel != 6 && killer.Level >= 132 && killer.ContainsFlag(Network.GamePackets.Update.Flags.ShurikenVortex))
                lessrate = 3;

            if (ServerBase.Kernel.Rate(ServerBase.Constants.MoneyDropRate - lessrate + morepercent))
            {
                uint amount = (uint)ServerBase.Kernel.Random.Next((int)MinMoneyDropAmount, (int)MaxMoneyDropAmount);
                amount *= ServerBase.Constants.MoneyDropMultiple;

                if (amount > 300000)
                    amount = 10;

                if (amount == 0)
                    return;
                if (killer.VIPLevel > 0)
                {
                    int percent = 10;
                    percent += killer.VIPLevel * 5 - 5;
                    amount += (uint)(amount * percent / 100);
                }
                if (killer.VIPLevel > 4)
                {
                    killer.Money += amount;
                    return;
                }
                uint ItemID = Network.PacketHandler.MoneyItemID(amount);
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money;
                    floorItem.Value = amount;
                    floorItem.ItemID = ItemID;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }

            }
            if (ServerBase.Kernel.Rate(ServerBase.Constants.ConquerPointsDropRate - lessrate))
            {
                // uint amount = (uint)ServerBase.Kernel.Random.Next((int)((Level / 4) * ServerBase.Constants.ConquerPointsDropMultiple), (int)((Level / 2) * ServerBase.Constants.ConquerPointsDropMultiple));
                // if (amount == 0)
                //     amount = 2;
                // if (amount > 300)
                //      amount = 10;
                //  amount /= 2;

                uint amount = (uint)Level / 8;
                if (amount < 1)
                    amount = 1;
                // if (killer.VIPLevel > 4)
                // {

                //  }

                #region CPBag

                // uint ItemID = 729911;
                // ushort X = Owner.X, Y = Owner.Y;
                //  Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                // if (Map.SelectCoordonates(ref X, ref Y))
                // {
                //  Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                //   floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
                //  floorItem.Value = amount;
                ///  floorItem.ItemID = ItemID;
                ///  floorItem.MapID = Owner.MapID;
                //  floorItem.MapObjType = Game.MapObjectType.Item;
                // floorItem.X = X;
                //  floorItem.Y = Y;
                // floorItem.Type = Network.GamePackets.FloorItem.Drop;
                ///  floorItem.OnFloor = Time32.Now;
                // floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                // while (Map.Npcs.ContainsKey(floorItem.UID))
                //    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                //  Map.AddFloorItem(floorItem);
                // SendScreenSpawn(floorItem);
                //}
                #endregion
            }
            if (ServerBase.Kernel.Rate(OwnItemRate + morepercent) && OwnItemID != 0)
            {
                if (killer.VIPLevel > 4)
                {
                    if (killer.Owner.Inventory.Count <= 39)
                    {
                        killer.Owner.Inventory.Add((uint)OwnItemID, 0, 1);
                        return;
                    }
                }
                var infos = Database.ConquerItemInformation.BaseInformations[(uint)OwnItemID];
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.Item = new Network.GamePackets.ConquerItem(true);
                    floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                    floorItem.Item.ID = (uint)OwnItemID;
                    floorItem.Item.MaximDurability = infos.Durability;
                    if (!Network.PacketHandler.IsEquipment(OwnItemID) && infos.ConquerPointsWorth == 0)
                    {
                        floorItem.Item.StackSize = 1;
                        floorItem.Item.MaxStackSize = infos.StackSize;
                    }
                    floorItem.Item.MobDropped = true;
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                    floorItem.ItemID = (uint)OwnItemID;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.ItemColor = floorItem.Item.Color;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }
            }
            //if (ServerBase.Kernel.Rate(ServerBase.Constants.ItemDropRate + morepercent + morepercent2))
            //{
            //    if (Name == "TeratoDragon" || Name == "ThrillingSpook" || Name == "SwordMaster" || Name == "SnowBanshee")
            //    {
            //        return;
            //    }
            //    int quality = 3;
            //    for (int count = 0; count < 5; count++)
            //    {
            //        int rate = int.Parse(ServerBase.Constants.ItemDropQualityRates[count]);
            //        if (ServerBase.Kernel.Rate(rate, 1000))
            //        {
            //            quality = count + 5;
            //            break;
            //        }
            //    }
            //    int times = 50;
            //    byte lvl = Owner.Level;
            //    if (LabirinthDrop)
            //        lvl = 20;
            //    List<uint> itemdroplist = ItemDropCache[lvl];
            //    if (Boss || SuperBoss)
            //        itemdroplist = SoulItemCache[lvl];
            //retry:
            //    times--;
            //    int generateItemId = ServerBase.Kernel.Random.Next(itemdroplist.Count);
            //    uint id = itemdroplist[generateItemId];
            //    if (!Boss)
            //    {
            //        if (Database.ConquerItemInformation.BaseInformations[id].Level > 121 && times > 0)
            //            goto retry;
            //        id = (id / 10) * 10 + (uint)quality;
            //    }
            //    if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(id))
            //    {
            //        id = itemdroplist[generateItemId];
            //    }
            //    if (killer.VIPLevel > 4)
            //    {
            //        if (killer.Owner.Inventory.Count <= 39)
            //        {
            //            if (id % 10 > 7)
            //            {
            //                killer.Owner.Inventory.Add(id, 0, 1);
            //                return;
            //            }
            //        }
            //    }
            //    var infos = Database.ConquerItemInformation.BaseInformations[id];
            //    ushort X = Owner.X, Y = Owner.Y;
            //    Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
            //    if (Map.SelectCoordonates(ref X, ref Y))
            //    {
            //        Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
            //        floorItem.Item = new Network.GamePackets.ConquerItem(true);
            //        floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
            //        floorItem.Item.ID = id;
            //        floorItem.Item.MaximDurability = infos.Durability;
            //        if (quality >= 6)
            //            floorItem.Item.Durability = (ushort)(infos.Durability - ServerBase.Kernel.Random.Next(500));
            //        else
            //            floorItem.Item.Durability = (ushort)(ServerBase.Kernel.Random.Next(infos.Durability / 10));
            //        if (!Network.PacketHandler.IsEquipment(id) && infos.ConquerPointsWorth == 0)
            //        {
            //            floorItem.Item.StackSize = 1;
            //            floorItem.Item.MaxStackSize = infos.StackSize;
            //        }
            //        floorItem.Item.MobDropped = true;
            //        floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
            //        floorItem.ItemID = id;
            //        floorItem.MapID = Owner.MapID;
            //        floorItem.MapObjType = Game.MapObjectType.Item;
            //        floorItem.X = X;
            //        floorItem.Y = Y;
            //        floorItem.Type = Network.GamePackets.FloorItem.Drop;
            //        floorItem.OnFloor = Time32.Now;
            //        floorItem.ItemColor = floorItem.Item.Color;
            //        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
            //        while (Map.Npcs.ContainsKey(floorItem.UID))
            //            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
            //        Map.AddFloorItem(floorItem);
            //        SendScreenSpawn(floorItem);
            //    }
            //}
            //if (ServerBase.Kernel.Rate(1 + morepercent))
            //{
            //    if (HPPotionID == 0)
            //        return;
            //    var infos = Database.ConquerItemInformation.BaseInformations[(uint)HPPotionID];
            //    ushort X = Owner.X, Y = Owner.Y;
            //    Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
            //    if (Map.SelectCoordonates(ref X, ref Y))
            //    {
            //        Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
            //        floorItem.Item = new Network.GamePackets.ConquerItem(true);
            //        floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
            //        floorItem.Item.ID = (uint)HPPotionID;
            //        floorItem.Item.MobDropped = true;
            //        floorItem.Item.MaximDurability = infos.Durability;
            //        floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
            //        if (!Network.PacketHandler.IsEquipment(HPPotionID))
            //        {
            //            floorItem.Item.StackSize = 1;
            //            floorItem.Item.MaxStackSize = infos.StackSize;
            //        }
            //        floorItem.ItemID = (uint)HPPotionID;
            //        floorItem.MapID = Owner.MapID;
            //        floorItem.MapObjType = Game.MapObjectType.Item;
            //        floorItem.X = X;
            //        floorItem.Y = Y;
            //        floorItem.Type = Network.GamePackets.FloorItem.Drop;
            //        floorItem.OnFloor = Time32.Now;
            //        floorItem.ItemColor = floorItem.Item.Color;
            //        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
            //        while (Map.Npcs.ContainsKey(floorItem.UID))
            //            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
            //        Map.AddFloorItem(floorItem);
            //        SendScreenSpawn(floorItem);
            //    }
            //}
            //if (ServerBase.Kernel.Rate(1 + morepercent))
            //{
            //    if (MPPotionID == 0)
            //        return;
            //    var infos = Database.ConquerItemInformation.BaseInformations[(uint)MPPotionID];
            //    ushort X = Owner.X, Y = Owner.Y;
            //    Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
            //    if (Map.SelectCoordonates(ref X, ref Y))
            //    {
            //        Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
            //        floorItem.Item = new Network.GamePackets.ConquerItem(true);
            //        floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
            //        floorItem.Item.ID = (uint)MPPotionID;
            //        floorItem.Item.MaximDurability = infos.Durability;
            //        floorItem.Item.MobDropped = true;
            //        floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
            //        if (!Network.PacketHandler.IsEquipment(MPPotionID))
            //        {
            //            floorItem.Item.StackSize = 1;
            //            floorItem.Item.MaxStackSize = infos.StackSize;
            //        }
            //        floorItem.ItemID = (uint)MPPotionID;
            //        floorItem.MapID = Owner.MapID;
            //        floorItem.MapObjType = Game.MapObjectType.Item;
            //        floorItem.X = X;
            //        floorItem.Y = Y;
            //        floorItem.Type = Network.GamePackets.FloorItem.Drop;
            //        floorItem.OnFloor = Time32.Now;
            //        floorItem.ItemColor = floorItem.Item.Color;
            //        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
            //        while (Map.Npcs.ContainsKey(floorItem.UID))
            //            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
            //        Map.AddFloorItem(floorItem);
            //        SendScreenSpawn(floorItem);
            //    }
            //}

            foreach (SpecialItemDrop sitem in SpecialItemDropList)
            {
                if (sitem.Map != 0)
                    if (Owner.MapID != sitem.Map)
                        continue;
                if (ServerBase.Kernel.Rate(sitem.Rate + morepercent, sitem.Discriminant))
                {
                    if (killer.VIPLevel > 4)
                    {
                        if (killer.Owner.Inventory.Count <= 39)
                        {
                            killer.Owner.Inventory.Add((uint)sitem.ItemID, 0, 1);
                            continue;
                        }
                    }
                    var infos = Database.ConquerItemInformation.BaseInformations[(uint)sitem.ItemID];
                    ushort X = Owner.X, Y = Owner.Y;
                    Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                    if (Map.SelectCoordonates(ref X, ref Y))
                    {
                        Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                        floorItem.Item = new Network.GamePackets.ConquerItem(true);
                        floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                        floorItem.Item.ID = (uint)sitem.ItemID;
                        floorItem.Item.MaximDurability = infos.Durability;
                        floorItem.Item.MobDropped = true;
                        if (!Network.PacketHandler.IsEquipment(sitem.ItemID) && infos.ConquerPointsWorth == 0)
                        {
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = infos.StackSize;
                        }
                        floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                        floorItem.ItemID = (uint)sitem.ItemID;
                        floorItem.MapID = Owner.MapID;
                        floorItem.MapObjType = Game.MapObjectType.Item;
                        floorItem.X = X;
                        floorItem.Y = Y;
                        floorItem.Type = Network.GamePackets.FloorItem.Drop;
                        floorItem.OnFloor = Time32.Now;
                        floorItem.ItemColor = floorItem.Item.Color;
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                        while (Map.Npcs.ContainsKey(floorItem.UID))
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                        Map.AddFloorItem(floorItem);
                        SendScreenSpawn(floorItem);
                    }
                }
            }
        }
예제 #2
0
파일: Handle.cs 프로젝트: AiiMz/PserverWork
        public static bool CanAttack(Game.Entity attacker, Game.Entity attacked, Database.SpellInformation spell, bool melee)
        {
            if (spell != null)
                if (spell.CanKill && attacker.EntityFlag == EntityFlag.Player && ServerBase.Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID) && attacked.EntityFlag == EntityFlag.Player)
                    return false;
            if (attacker.EntityFlag == EntityFlag.Player)
                if (attacker.Owner.WatchingGroup != null)
                    return false;
            if (attacked == null)
                return false;
            if (attacked.Dead)
            {
                attacker.AttackPacket = null;
                return false;
            }
            if (attacked.EntityFlag == EntityFlag.Monster)
            {
                if (attacked.Companion)
                {
                    if (ServerBase.Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID))
                    {
                        if (attacked.Owner == attacker.Owner)
                            return false;
                        if (attacker.PKMode != Conquer_Online_Server.Game.Enums.PKMode.PK &&
                         attacker.PKMode != Conquer_Online_Server.Game.Enums.PKMode.Team)
                            return false;
                        else
                        {
                            attacker.AddFlag(Network.GamePackets.Update.Flags.FlashingName);
                            attacker.FlashingNameStamp = Time32.Now;
                            attacker.FlashingNameTime = 10;

                            return true;
                        }
                    }
                }
                if (attacked.Name.Contains("Guard"))
                {
                    if (attacker.PKMode != Conquer_Online_Server.Game.Enums.PKMode.PK &&
                    attacker.PKMode != Conquer_Online_Server.Game.Enums.PKMode.Team)
                        return false;
                    else
                    {
                        attacker.AddFlag(Network.GamePackets.Update.Flags.FlashingName);
                        attacker.FlashingNameStamp = Time32.Now;
                        attacker.FlashingNameTime = 10;

                        return true;
                    }
                }
                else
                    return true;
            }
            else
            {
                if (attacked.EntityFlag == EntityFlag.Player)
                    if (!attacked.Owner.Attackable)
                        return false;
                if (attacker.EntityFlag == EntityFlag.Player)
                    if (attacker.Owner.WatchingGroup == null)
                        if (attacked.EntityFlag == EntityFlag.Player)
                            if (attacked.Owner.WatchingGroup != null)
                                return false;

                if (spell != null)
                    if (spell.OnlyGround)
                        if (attacked.ContainsFlag(Update.Flags.Fly))
                            return false;
                if (melee && attacked.ContainsFlag(Update.Flags.Fly))
                    return false;

                if (ServerBase.Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID))
                {
                    if (attacker.PKMode == Conquer_Online_Server.Game.Enums.PKMode.PK ||
                        attacker.PKMode == Conquer_Online_Server.Game.Enums.PKMode.Team || (spell != null && spell.CanKill))
                    {
                        attacker.Owner.Send(ServerBase.Constants.PKForbidden);
                        attacker.AttackPacket = null;
                    }
                    return false;
                }
                if (attacker.PKMode == Conquer_Online_Server.Game.Enums.PKMode.Capture)
                {
                    if (attacked.ContainsFlag(Update.Flags.FlashingName) || attacked.PKPoints > 99)
                    {
                        return true;
                    }
                }
                if (attacker.PKMode == Conquer_Online_Server.Game.Enums.PKMode.Team)
                {
                    if (attacker.Owner.Team != null)
                        if (attacker.Owner.Team.IsTeammate(attacked.UID))
                        {
                            attacker.AttackPacket = null;
                            return false;
                        }
                    if (attacker.Owner.Guild != null)
                    {
                        if (attacker.GuildID != 0)
                        {
                            if (attacked.GuildID != 0)
                            {
                                if (attacker.GuildID == attacked.GuildID)
                                {
                                    attacker.AttackPacket = null;
                                    return false;
                                }
                            }
                        }
                    }
                    if (attacker.ClanId != 0)
                    {
                        if (attacker.ClanId != 0)
                        {
                            if (attacked.ClanId != 0)
                            {
                                if (attacker.ClanId == attacked.ClanId)
                                {
                                    attacker.AttackPacket = null;
                                    return false;
                                }
                            }
                        }
                    }
                    if (attacker.Owner.Friends.ContainsKey(attacked.UID))
                    {
                        attacker.AttackPacket = null;
                        return false;
                    }
                    if (attacker.Owner.Guild != null)
                    {
                        if (attacker.GuildID != 0)
                        {
                            if (attacked.GuildID != 0)
                            {
                                if (attacker.Owner.Guild.Ally.ContainsKey(attacked.GuildID))
                                {
                                    attacker.AttackPacket = null;
                                    return false;
                                }
                            }
                        }
                    }
                    if (attacker.ClanId != 0)
                    {
                        if (attacked.ClanId != 0)
                        {
                            if (attacker.GetClan.Allies.ContainsKey(attacked.ClanId))
                            {
                                attacker.AttackPacket = null;
                                return false;
                            }
                        }
                    }
                }

                if (spell != null)
                    if (spell.OnlyGround)
                        if (attacked.ContainsFlag(Update.Flags.Fly))
                            return false;
                if (spell != null)
                    if (!spell.CanKill)
                    {
                        if (spell != null && !spell.CanKill && attacker.PKMode == Conquer_Online_Server.Game.Enums.PKMode.Capture)
                        {
                            return false;
                        }
                        if (spell != null && !spell.CanKill && attacker.Owner.Map.ID >= 10000)
                        {
                            attacker.AddFlag(Network.GamePackets.Update.Flags.Normal);
                            return true;
                        }
                        else
                        {
                            attacker.AddFlag(Network.GamePackets.Update.Flags.FlashingName);
                            attacker.FlashingNameStamp = Time32.Now;
                            attacker.FlashingNameTime = 10;
                            return true;

                        }
                    }

                if (attacker.PKMode != Conquer_Online_Server.Game.Enums.PKMode.PK &&
                    attacker.PKMode != Conquer_Online_Server.Game.Enums.PKMode.Team && attacked.PKPoints < 99)
                {
                    attacker.AttackPacket = null;
                    return false;
                }
                else
                {
                    if (!attacked.ContainsFlag(Update.Flags.FlashingName) || !attacked.ContainsFlag(Update.Flags.BlackName))
                    {
                        if (ServerBase.Constants.PKFreeMaps.Contains(attacker.Owner.Map.BaseID))
                            return true;
                        attacker.AddFlag(Network.GamePackets.Update.Flags.FlashingName);
                        attacker.FlashingNameStamp = Time32.Now;
                        attacker.FlashingNameTime = 10;
                    }
                }
                return true;
            }
        }
        public void Drop(Game.Entity killer)
        {
            //string cpsMethod = "" + Level + "" + PhoenixProject.Database.rates.cpsmethod + "" + PhoenixProject.Database.rates.CpsMethodNum + "";
            #region New Quests By Mr.Coder

            #region TC drop

            if (Owner.MapID == 1002 && ServerBase.Kernel.PercentSuccess(200))
            {
                uint Uid2 = 0;
                byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
                switch (type2)
                {
                    case 1: Uid2 = 50; break;
                    case 2: Uid2 = 100; break;
                }
                if (killer.DoubleExperienceTime > 0)
                {
                    killer.ConquerPoints += Uid2;
                }
                else
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 201);
                    switch (type)
                    {
                        case 1: Uid = 1000000; break;
                        case 2: Uid = 722117; break;
                        case 3: Uid = 1000000; break;
                        case 4: Uid = 1000000; break;
                        case 5: Uid = 1000000; break;
                        case 6: Uid = 1000000; break;
                        case 7: Uid = 1000000; break;
                        case 8: Uid = 1000000; break;
                        case 9: Uid = 1000000; break;
                        case 10: Uid = 1000000; break;
                        case 11: Uid = 1000000; break;
                        case 12: Uid = 1000000; break;
                        case 13: Uid = 1000000; break;
                        case 14: Uid = 722117; break;
                        case 15: Uid = 1000000; break;
                        case 16: Uid = 1000000; break;
                        case 17: Uid = 1000000; break;
                        case 18: Uid = 1000000; break;
                        case 19: Uid = 1000000; break;
                        case 20: Uid = 1000000; break;
                        case 21: Uid = 1000000; break;
                        case 22: Uid = 722117; break;
                        case 23: Uid = 1000000; break;
                        case 24: Uid = 1000000; break;
                        case 25: Uid = 1000000; break;
                        case 26: Uid = 1000000; break;
                        case 27: Uid = 1000000; break;
                        case 28: Uid = 1000000; break;
                        case 29: Uid = 1000000; break;
                        case 30: Uid = 1000000; break;
                        case 31: Uid = 1000000; break;
                        case 32: Uid = 1000000; break;
                        case 33: Uid = 722117; break;
                        case 34: Uid = 1000000; break;
                        case 35: Uid = 1000000; break;
                        case 36: Uid = 1000000; break;
                        case 37: Uid = 1000000; break;
                        case 38: Uid = 722117; break;
                        case 39: Uid = 1000000; break;
                        case 40: Uid = 1000000; break;
                        case 41: Uid = 1000000; break;
                        case 42: Uid = 1000000; break;
                        case 43: Uid = 1000000; break;
                        case 44: Uid = 1000000; break;
                        case 45: Uid = 1000000; break;
                        case 46: Uid = 1000000; break;
                        case 47: Uid = 1000000; break;
                        case 48: Uid = 1000000; break;
                        case 49: Uid = 1000000; break;
                        case 50: Uid = 1000000; break;
                        case 51: Uid = 1000000; break;
                        case 52: Uid = 1000000; break;
                        case 53: Uid = 1000000; break;
                        case 54: Uid = 1000000; break;
                        case 55: Uid = 1000000; break;
                        case 56: Uid = 1000000; break;
                        case 57: Uid = 1000000; break;
                        case 58: Uid = 1000000; break;
                        case 59: Uid = 1000000; break;
                        case 60: Uid = 1000000; break;
                        case 61: Uid = 1000000; break;
                        case 62: Uid = 1000000; break;
                        case 63: Uid = 722117; break;
                        case 64: Uid = 1000000; break;
                        case 65: Uid = 1000000; break;
                        case 66: Uid = 1000000; break;
                        case 67: Uid = 1000000; break;
                        case 68: Uid = 1000000; break;
                        case 69: Uid = 1000000; break;
                        case 70: Uid = 1000000; break;
                        case 71: Uid = 1000000; break;
                        case 72: Uid = 1000000; break;
                        case 73: Uid = 1000000; break;
                        case 74: Uid = 1000000; break;
                        case 75: Uid = 1000000; break;
                        case 76: Uid = 722117; break;
                        case 77: Uid = 1000000; break;
                        case 78: Uid = 1000000; break;
                        case 79: Uid = 1000000; break;
                        case 80: Uid = 1000000; break;
                        case 81: Uid = 1000000; break;
                        case 82: Uid = 1000000; break;
                        case 83: Uid = 1000000; break;
                        case 84: Uid = 1000000; break;
                        case 85: Uid = 1000000; break;
                        case 86: Uid = 1000000; break;
                        case 87: Uid = 1000000; break;
                        case 88: Uid = 1000000; break;
                        case 89: Uid = 1000000; break;
                        case 90: Uid = 722117; break;
                        case 91: Uid = 1000000; break;
                        case 92: Uid = 1000000; break;
                        case 93: Uid = 1000000; break;
                        case 94: Uid = 1000000; break;
                        case 95: Uid = 1000000; break;
                        case 96: Uid = 1000000; break;
                        case 97: Uid = 1000000; break;
                        case 98: Uid = 1000000; break;
                        case 99: Uid = 1000000; break;
                        case 100: Uid = 1000000; break;
                        case 101: Uid = 1000000; break;
                        case 102: Uid = 1000000; break;
                        case 103: Uid = 1000000; break;
                        case 104: Uid = 1000000; break;
                        case 105: Uid = 1000000; break;
                        case 106: Uid = 1000000; break;
                        case 107: Uid = 1000000; break;
                        case 108: Uid = 1000000; break;
                        case 109: Uid = 1000000; break;
                        case 110: Uid = 1000000; break;
                        case 111: Uid = 1000000; break;
                        case 112: Uid = 722117; break;
                        case 113: Uid = 1000000; break;
                        case 114: Uid = 1000000; break;
                        case 115: Uid = 1000000; break;
                        case 116: Uid = 1000000; break;
                        case 117: Uid = 1000000; break;
                        case 118: Uid = 1000000; break;
                        case 119: Uid = 1000000; break;
                        case 120: Uid = 1000000; break;
                        case 121: Uid = 1000000; break;
                        case 122: Uid = 1000000; break;
                        case 123: Uid = 1000000; break;
                        case 124: Uid = 1000000; break;
                        case 125: Uid = 1000000; break;
                        case 126: Uid = 1000000; break;
                        case 127: Uid = 1000000; break;
                        case 128: Uid = 1000000; break;
                        case 129: Uid = 1000000; break;
                        case 130: Uid = 1000000; break;
                        case 131: Uid = 1000000; break;
                        case 132: Uid = 1000000; break;
                        case 133: Uid = 1000000; break;
                        case 134: Uid = 1000000; break;
                        case 135: Uid = 1000000; break;
                        case 136: Uid = 1000000; break;
                        case 137: Uid = 1000000; break;
                        case 138: Uid = 1000000; break;
                        case 139: Uid = 722117; break;
                        case 140: Uid = 1000000; break;
                        case 141: Uid = 1000000; break;
                        case 142: Uid = 1000000; break;
                        case 143: Uid = 1000000; break;
                        case 144: Uid = 1000000; break;
                        case 145: Uid = 1000000; break;
                        case 146: Uid = 1000000; break;
                        case 147: Uid = 1000000; break;
                        case 148: Uid = 1000000; break;
                        case 149: Uid = 722117; break;
                        case 150: Uid = 1000000; break;
                        case 151: Uid = 1000000; break;
                        case 152: Uid = 1000000; break;
                        case 153: Uid = 1000000; break;
                        case 154: Uid = 1000000; break;
                        case 155: Uid = 1000000; break;
                        case 156: Uid = 1000000; break;
                        case 157: Uid = 1000000; break;
                        case 158: Uid = 1000000; break;
                        case 159: Uid = 1000000; break;
                        case 160: Uid = 1000000; break;
                        case 161: Uid = 1000000; break;
                        case 162: Uid = 722117; break;
                        case 163: Uid = 1000000; break;
                        case 164: Uid = 1000000; break;
                        case 165: Uid = 1000000; break;
                        case 166: Uid = 1000000; break;
                        case 167: Uid = 1000000; break;
                        case 168: Uid = 1000000; break;
                        case 169: Uid = 1000000; break;
                        case 170: Uid = 722117; break;
                        case 171: Uid = 1000000; break;
                        case 172: Uid = 1000000; break;
                        case 173: Uid = 1000000; break;
                        case 174: Uid = 1000000; break;
                        case 175: Uid = 1000000; break;
                        case 176: Uid = 1000000; break;
                        case 177: Uid = 1000000; break;
                        case 178: Uid = 1000000; break;
                        case 179: Uid = 1000000; break;
                        case 180: Uid = 1000000; break;
                        case 181: Uid = 1000000; break;
                        case 182: Uid = 722117; break;
                        case 183: Uid = 1000000; break;
                        case 184: Uid = 1000000; break;
                        case 185: Uid = 1000000; break;
                        case 186: Uid = 1000000; break;
                        case 187: Uid = 1000000; break;
                        case 188: Uid = 1000000; break;
                        case 189: Uid = 1000000; break;
                        case 190: Uid = 1000000; break;
                        case 191: Uid = 1000000; break;
                        case 192: Uid = 1000000; break;
                        case 193: Uid = 722117; break;
                        case 194: Uid = 1000000; break;
                        case 195: Uid = 1000000; break;
                        case 196: Uid = 1000000; break;
                        case 197: Uid = 1000000; break;
                        case 198: Uid = 1000000; break;
                        case 199: Uid = 1000000; break;
                        case 200: Uid = 1000000; break;
                    }
                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = (uint)Uid;
                            floorItem.Item.MaximDurability = 65355;
                            floorItem.Item.MobDropped = true;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = (uint)Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            #endregion TC drop

            #region PH drop

            if (Owner.MapID == 1011 && ServerBase.Kernel.PercentSuccess(200))
            {
                uint Uid2 = 0;
                byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
                switch (type2)
                {
                    case 1: Uid2 = 50; break;
                    case 2: Uid2 = 100; break;
                }
                if (killer.DoubleExperienceTime > 0)
                {
                    killer.ConquerPoints += Uid2;
                }
                else
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 201);
                    switch (type)
                    {
                        case 1: Uid = 1000000; break;
                        case 2: Uid = 722118; break;
                        case 3: Uid = 1000000; break;
                        case 4: Uid = 1000000; break;
                        case 5: Uid = 1000000; break;
                        case 6: Uid = 1000000; break;
                        case 7: Uid = 1000000; break;
                        case 8: Uid = 1000000; break;
                        case 9: Uid = 1000000; break;
                        case 10: Uid = 1000000; break;
                        case 11: Uid = 1000000; break;
                        case 12: Uid = 1000000; break;
                        case 13: Uid = 1000000; break;
                        case 14: Uid = 722118; break;
                        case 15: Uid = 1000000; break;
                        case 16: Uid = 1000000; break;
                        case 17: Uid = 1000000; break;
                        case 18: Uid = 1000000; break;
                        case 19: Uid = 1000000; break;
                        case 20: Uid = 1000000; break;
                        case 21: Uid = 1000000; break;
                        case 22: Uid = 722118; break;
                        case 23: Uid = 1000000; break;
                        case 24: Uid = 1000000; break;
                        case 25: Uid = 1000000; break;
                        case 26: Uid = 1000000; break;
                        case 27: Uid = 1000000; break;
                        case 28: Uid = 1000000; break;
                        case 29: Uid = 1000000; break;
                        case 30: Uid = 1000000; break;
                        case 31: Uid = 1000000; break;
                        case 32: Uid = 1000000; break;
                        case 33: Uid = 722118; break;
                        case 34: Uid = 1000000; break;
                        case 35: Uid = 1000000; break;
                        case 36: Uid = 1000000; break;
                        case 37: Uid = 1000000; break;
                        case 38: Uid = 722118; break;
                        case 39: Uid = 1000000; break;
                        case 40: Uid = 1000000; break;
                        case 41: Uid = 1000000; break;
                        case 42: Uid = 1000000; break;
                        case 43: Uid = 1000000; break;
                        case 44: Uid = 1000000; break;
                        case 45: Uid = 1000000; break;
                        case 46: Uid = 1000000; break;
                        case 47: Uid = 1000000; break;
                        case 48: Uid = 1000000; break;
                        case 49: Uid = 1000000; break;
                        case 50: Uid = 1000000; break;
                        case 51: Uid = 1000000; break;
                        case 52: Uid = 1000000; break;
                        case 53: Uid = 1000000; break;
                        case 54: Uid = 1000000; break;
                        case 55: Uid = 1000000; break;
                        case 56: Uid = 1000000; break;
                        case 57: Uid = 1000000; break;
                        case 58: Uid = 1000000; break;
                        case 59: Uid = 1000000; break;
                        case 60: Uid = 1000000; break;
                        case 61: Uid = 1000000; break;
                        case 62: Uid = 1000000; break;
                        case 63: Uid = 722118; break;
                        case 64: Uid = 1000000; break;
                        case 65: Uid = 1000000; break;
                        case 66: Uid = 1000000; break;
                        case 67: Uid = 1000000; break;
                        case 68: Uid = 1000000; break;
                        case 69: Uid = 1000000; break;
                        case 70: Uid = 1000000; break;
                        case 71: Uid = 1000000; break;
                        case 72: Uid = 1000000; break;
                        case 73: Uid = 1000000; break;
                        case 74: Uid = 1000000; break;
                        case 75: Uid = 1000000; break;
                        case 76: Uid = 722118; break;
                        case 77: Uid = 1000000; break;
                        case 78: Uid = 1000000; break;
                        case 79: Uid = 1000000; break;
                        case 80: Uid = 1000000; break;
                        case 81: Uid = 1000000; break;
                        case 82: Uid = 1000000; break;
                        case 83: Uid = 1000000; break;
                        case 84: Uid = 1000000; break;
                        case 85: Uid = 1000000; break;
                        case 86: Uid = 1000000; break;
                        case 87: Uid = 1000000; break;
                        case 88: Uid = 1000000; break;
                        case 89: Uid = 1000000; break;
                        case 90: Uid = 722118; break;
                        case 91: Uid = 1000000; break;
                        case 92: Uid = 1000000; break;
                        case 93: Uid = 1000000; break;
                        case 94: Uid = 1000000; break;
                        case 95: Uid = 1000000; break;
                        case 96: Uid = 1000000; break;
                        case 97: Uid = 1000000; break;
                        case 98: Uid = 1000000; break;
                        case 99: Uid = 1000000; break;
                        case 100: Uid = 1000000; break;
                        case 101: Uid = 1000000; break;
                        case 102: Uid = 1000000; break;
                        case 103: Uid = 1000000; break;
                        case 104: Uid = 1000000; break;
                        case 105: Uid = 1000000; break;
                        case 106: Uid = 1000000; break;
                        case 107: Uid = 1000000; break;
                        case 108: Uid = 1000000; break;
                        case 109: Uid = 1000000; break;
                        case 110: Uid = 1000000; break;
                        case 111: Uid = 1000000; break;
                        case 112: Uid = 722118; break;
                        case 113: Uid = 1000000; break;
                        case 114: Uid = 1000000; break;
                        case 115: Uid = 1000000; break;
                        case 116: Uid = 1000000; break;
                        case 117: Uid = 1000000; break;
                        case 118: Uid = 1000000; break;
                        case 119: Uid = 1000000; break;
                        case 120: Uid = 1000000; break;
                        case 121: Uid = 1000000; break;
                        case 122: Uid = 1000000; break;
                        case 123: Uid = 1000000; break;
                        case 124: Uid = 1000000; break;
                        case 125: Uid = 1000000; break;
                        case 126: Uid = 1000000; break;
                        case 127: Uid = 1000000; break;
                        case 128: Uid = 1000000; break;
                        case 129: Uid = 1000000; break;
                        case 130: Uid = 1000000; break;
                        case 131: Uid = 1000000; break;
                        case 132: Uid = 1000000; break;
                        case 133: Uid = 1000000; break;
                        case 134: Uid = 1000000; break;
                        case 135: Uid = 1000000; break;
                        case 136: Uid = 1000000; break;
                        case 137: Uid = 1000000; break;
                        case 138: Uid = 1000000; break;
                        case 139: Uid = 722118; break;
                        case 140: Uid = 1000000; break;
                        case 141: Uid = 1000000; break;
                        case 142: Uid = 1000000; break;
                        case 143: Uid = 1000000; break;
                        case 144: Uid = 1000000; break;
                        case 145: Uid = 1000000; break;
                        case 146: Uid = 1000000; break;
                        case 147: Uid = 1000000; break;
                        case 148: Uid = 1000000; break;
                        case 149: Uid = 722118; break;
                        case 150: Uid = 1000000; break;
                        case 151: Uid = 1000000; break;
                        case 152: Uid = 1000000; break;
                        case 153: Uid = 1000000; break;
                        case 154: Uid = 1000000; break;
                        case 155: Uid = 1000000; break;
                        case 156: Uid = 1000000; break;
                        case 157: Uid = 1000000; break;
                        case 158: Uid = 1000000; break;
                        case 159: Uid = 1000000; break;
                        case 160: Uid = 1000000; break;
                        case 161: Uid = 1000000; break;
                        case 162: Uid = 722118; break;
                        case 163: Uid = 1000000; break;
                        case 164: Uid = 1000000; break;
                        case 165: Uid = 1000000; break;
                        case 166: Uid = 1000000; break;
                        case 167: Uid = 1000000; break;
                        case 168: Uid = 1000000; break;
                        case 169: Uid = 1000000; break;
                        case 170: Uid = 722118; break;
                        case 171: Uid = 1000000; break;
                        case 172: Uid = 1000000; break;
                        case 173: Uid = 1000000; break;
                        case 174: Uid = 1000000; break;
                        case 175: Uid = 1000000; break;
                        case 176: Uid = 1000000; break;
                        case 177: Uid = 1000000; break;
                        case 178: Uid = 1000000; break;
                        case 179: Uid = 1000000; break;
                        case 180: Uid = 1000000; break;
                        case 181: Uid = 1000000; break;
                        case 182: Uid = 722118; break;
                        case 183: Uid = 1000000; break;
                        case 184: Uid = 1000000; break;
                        case 185: Uid = 1000000; break;
                        case 186: Uid = 1000000; break;
                        case 187: Uid = 1000000; break;
                        case 188: Uid = 1000000; break;
                        case 189: Uid = 1000000; break;
                        case 190: Uid = 1000000; break;
                        case 191: Uid = 1000000; break;
                        case 192: Uid = 1000000; break;
                        case 193: Uid = 722118; break;
                        case 194: Uid = 1000000; break;
                        case 195: Uid = 1000000; break;
                        case 196: Uid = 1000000; break;
                        case 197: Uid = 1000000; break;
                        case 198: Uid = 1000000; break;
                        case 199: Uid = 1000000; break;
                        case 200: Uid = 1000000; break;
                    }
                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = (uint)Uid;
                            floorItem.Item.MaximDurability = 65355;
                            floorItem.Item.MobDropped = true;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = (uint)Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            #endregion TC drop

            #region Ape drop

            if (Owner.MapID == 1020 && ServerBase.Kernel.PercentSuccess(200))
            {
                uint Uid2 = 0;
                byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
                switch (type2)
                {
                    case 1: Uid2 = 50; break;
                    case 2: Uid2 = 100; break;
                }
                if (killer.DoubleExperienceTime > 0)
                {
                    killer.ConquerPoints += Uid2;
                }
                else
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 201);
                    switch (type)
                    {
                        case 1: Uid = 1000000; break;
                        case 2: Uid = 722112; break;
                        case 3: Uid = 1000000; break;
                        case 4: Uid = 1000000; break;
                        case 5: Uid = 1000000; break;
                        case 6: Uid = 1000000; break;
                        case 7: Uid = 1000000; break;
                        case 8: Uid = 1000000; break;
                        case 9: Uid = 1000000; break;
                        case 10: Uid = 1000000; break;
                        case 11: Uid = 1000000; break;
                        case 12: Uid = 1000000; break;
                        case 13: Uid = 1000000; break;
                        case 14: Uid = 722112; break;
                        case 15: Uid = 1000000; break;
                        case 16: Uid = 1000000; break;
                        case 17: Uid = 1000000; break;
                        case 18: Uid = 1000000; break;
                        case 19: Uid = 1000000; break;
                        case 20: Uid = 1000000; break;
                        case 21: Uid = 1000000; break;
                        case 22: Uid = 722112; break;
                        case 23: Uid = 1000000; break;
                        case 24: Uid = 1000000; break;
                        case 25: Uid = 1000000; break;
                        case 26: Uid = 1000000; break;
                        case 27: Uid = 1000000; break;
                        case 28: Uid = 1000000; break;
                        case 29: Uid = 1000000; break;
                        case 30: Uid = 1000000; break;
                        case 31: Uid = 1000000; break;
                        case 32: Uid = 1000000; break;
                        case 33: Uid = 722112; break;
                        case 34: Uid = 1000000; break;
                        case 35: Uid = 1000000; break;
                        case 36: Uid = 1000000; break;
                        case 37: Uid = 1000000; break;
                        case 38: Uid = 722112; break;
                        case 39: Uid = 1000000; break;
                        case 40: Uid = 1000000; break;
                        case 41: Uid = 1000000; break;
                        case 42: Uid = 1000000; break;
                        case 43: Uid = 1000000; break;
                        case 44: Uid = 1000000; break;
                        case 45: Uid = 1000000; break;
                        case 46: Uid = 1000000; break;
                        case 47: Uid = 1000000; break;
                        case 48: Uid = 1000000; break;
                        case 49: Uid = 1000000; break;
                        case 50: Uid = 1000000; break;
                        case 51: Uid = 1000000; break;
                        case 52: Uid = 1000000; break;
                        case 53: Uid = 1000000; break;
                        case 54: Uid = 1000000; break;
                        case 55: Uid = 1000000; break;
                        case 56: Uid = 1000000; break;
                        case 57: Uid = 1000000; break;
                        case 58: Uid = 1000000; break;
                        case 59: Uid = 1000000; break;
                        case 60: Uid = 1000000; break;
                        case 61: Uid = 1000000; break;
                        case 62: Uid = 1000000; break;
                        case 63: Uid = 722112; break;
                        case 64: Uid = 1000000; break;
                        case 65: Uid = 1000000; break;
                        case 66: Uid = 1000000; break;
                        case 67: Uid = 1000000; break;
                        case 68: Uid = 1000000; break;
                        case 69: Uid = 1000000; break;
                        case 70: Uid = 1000000; break;
                        case 71: Uid = 1000000; break;
                        case 72: Uid = 1000000; break;
                        case 73: Uid = 1000000; break;
                        case 74: Uid = 1000000; break;
                        case 75: Uid = 1000000; break;
                        case 76: Uid = 722112; break;
                        case 77: Uid = 1000000; break;
                        case 78: Uid = 1000000; break;
                        case 79: Uid = 1000000; break;
                        case 80: Uid = 1000000; break;
                        case 81: Uid = 1000000; break;
                        case 82: Uid = 1000000; break;
                        case 83: Uid = 1000000; break;
                        case 84: Uid = 1000000; break;
                        case 85: Uid = 1000000; break;
                        case 86: Uid = 1000000; break;
                        case 87: Uid = 1000000; break;
                        case 88: Uid = 1000000; break;
                        case 89: Uid = 1000000; break;
                        case 90: Uid = 722112; break;
                        case 91: Uid = 1000000; break;
                        case 92: Uid = 1000000; break;
                        case 93: Uid = 1000000; break;
                        case 94: Uid = 1000000; break;
                        case 95: Uid = 1000000; break;
                        case 96: Uid = 1000000; break;
                        case 97: Uid = 1000000; break;
                        case 98: Uid = 1000000; break;
                        case 99: Uid = 1000000; break;
                        case 100: Uid = 1000000; break;
                        case 101: Uid = 1000000; break;
                        case 102: Uid = 1000000; break;
                        case 103: Uid = 1000000; break;
                        case 104: Uid = 1000000; break;
                        case 105: Uid = 1000000; break;
                        case 106: Uid = 1000000; break;
                        case 107: Uid = 1000000; break;
                        case 108: Uid = 1000000; break;
                        case 109: Uid = 1000000; break;
                        case 110: Uid = 1000000; break;
                        case 111: Uid = 1000000; break;
                        case 112: Uid = 722112; break;
                        case 113: Uid = 1000000; break;
                        case 114: Uid = 1000000; break;
                        case 115: Uid = 1000000; break;
                        case 116: Uid = 1000000; break;
                        case 117: Uid = 1000000; break;
                        case 118: Uid = 1000000; break;
                        case 119: Uid = 1000000; break;
                        case 120: Uid = 1000000; break;
                        case 121: Uid = 1000000; break;
                        case 122: Uid = 1000000; break;
                        case 123: Uid = 1000000; break;
                        case 124: Uid = 1000000; break;
                        case 125: Uid = 1000000; break;
                        case 126: Uid = 1000000; break;
                        case 127: Uid = 1000000; break;
                        case 128: Uid = 1000000; break;
                        case 129: Uid = 1000000; break;
                        case 130: Uid = 1000000; break;
                        case 131: Uid = 1000000; break;
                        case 132: Uid = 1000000; break;
                        case 133: Uid = 1000000; break;
                        case 134: Uid = 1000000; break;
                        case 135: Uid = 1000000; break;
                        case 136: Uid = 1000000; break;
                        case 137: Uid = 1000000; break;
                        case 138: Uid = 1000000; break;
                        case 139: Uid = 722112; break;
                        case 140: Uid = 1000000; break;
                        case 141: Uid = 1000000; break;
                        case 142: Uid = 1000000; break;
                        case 143: Uid = 1000000; break;
                        case 144: Uid = 1000000; break;
                        case 145: Uid = 1000000; break;
                        case 146: Uid = 1000000; break;
                        case 147: Uid = 1000000; break;
                        case 148: Uid = 1000000; break;
                        case 149: Uid = 722112; break;
                        case 150: Uid = 1000000; break;
                        case 151: Uid = 1000000; break;
                        case 152: Uid = 1000000; break;
                        case 153: Uid = 1000000; break;
                        case 154: Uid = 1000000; break;
                        case 155: Uid = 1000000; break;
                        case 156: Uid = 1000000; break;
                        case 157: Uid = 1000000; break;
                        case 158: Uid = 1000000; break;
                        case 159: Uid = 1000000; break;
                        case 160: Uid = 1000000; break;
                        case 161: Uid = 1000000; break;
                        case 162: Uid = 722112; break;
                        case 163: Uid = 1000000; break;
                        case 164: Uid = 1000000; break;
                        case 165: Uid = 1000000; break;
                        case 166: Uid = 1000000; break;
                        case 167: Uid = 1000000; break;
                        case 168: Uid = 1000000; break;
                        case 169: Uid = 1000000; break;
                        case 170: Uid = 722112; break;
                        case 171: Uid = 1000000; break;
                        case 172: Uid = 1000000; break;
                        case 173: Uid = 1000000; break;
                        case 174: Uid = 1000000; break;
                        case 175: Uid = 1000000; break;
                        case 176: Uid = 1000000; break;
                        case 177: Uid = 1000000; break;
                        case 178: Uid = 1000000; break;
                        case 179: Uid = 1000000; break;
                        case 180: Uid = 1000000; break;
                        case 181: Uid = 1000000; break;
                        case 182: Uid = 722112; break;
                        case 183: Uid = 1000000; break;
                        case 184: Uid = 1000000; break;
                        case 185: Uid = 1000000; break;
                        case 186: Uid = 1000000; break;
                        case 187: Uid = 1000000; break;
                        case 188: Uid = 1000000; break;
                        case 189: Uid = 1000000; break;
                        case 190: Uid = 1000000; break;
                        case 191: Uid = 1000000; break;
                        case 192: Uid = 1000000; break;
                        case 193: Uid = 722112; break;
                        case 194: Uid = 1000000; break;
                        case 195: Uid = 1000000; break;
                        case 196: Uid = 1000000; break;
                        case 197: Uid = 1000000; break;
                        case 198: Uid = 1000000; break;
                        case 199: Uid = 1000000; break;
                        case 200: Uid = 1000000; break;
                    }
                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = (uint)Uid;
                            floorItem.Item.MaximDurability = 65355;
                            floorItem.Item.MobDropped = true;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = (uint)Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            #endregion TC drop

            #region Desert drop

            if (Owner.MapID == 1000 && ServerBase.Kernel.PercentSuccess(200))
            {
                uint Uid2 = 0;
                byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
                switch (type2)
                {
                    case 1: Uid2 = 50; break;
                    case 2: Uid2 = 100; break;
                }
                if (killer.DoubleExperienceTime > 0)
                {
                    killer.ConquerPoints += Uid2;
                }
                else
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 201);
                    switch (type)
                    {
                        case 1: Uid = 1000000; break;
                        case 2: Uid = 722113; break;
                        case 3: Uid = 1000000; break;
                        case 4: Uid = 1000000; break;
                        case 5: Uid = 1000000; break;
                        case 6: Uid = 1000000; break;
                        case 7: Uid = 1000000; break;
                        case 8: Uid = 1000000; break;
                        case 9: Uid = 1000000; break;
                        case 10: Uid = 1000000; break;
                        case 11: Uid = 1000000; break;
                        case 12: Uid = 1000000; break;
                        case 13: Uid = 1000000; break;
                        case 14: Uid = 722113; break;
                        case 15: Uid = 1000000; break;
                        case 16: Uid = 1000000; break;
                        case 17: Uid = 1000000; break;
                        case 18: Uid = 1000000; break;
                        case 19: Uid = 1000000; break;
                        case 20: Uid = 1000000; break;
                        case 21: Uid = 1000000; break;
                        case 22: Uid = 722113; break;
                        case 23: Uid = 1000000; break;
                        case 24: Uid = 1000000; break;
                        case 25: Uid = 1000000; break;
                        case 26: Uid = 1000000; break;
                        case 27: Uid = 1000000; break;
                        case 28: Uid = 1000000; break;
                        case 29: Uid = 1000000; break;
                        case 30: Uid = 1000000; break;
                        case 31: Uid = 1000000; break;
                        case 32: Uid = 1000000; break;
                        case 33: Uid = 722113; break;
                        case 34: Uid = 1000000; break;
                        case 35: Uid = 1000000; break;
                        case 36: Uid = 1000000; break;
                        case 37: Uid = 1000000; break;
                        case 38: Uid = 722113; break;
                        case 39: Uid = 1000000; break;
                        case 40: Uid = 1000000; break;
                        case 41: Uid = 1000000; break;
                        case 42: Uid = 1000000; break;
                        case 43: Uid = 1000000; break;
                        case 44: Uid = 1000000; break;
                        case 45: Uid = 1000000; break;
                        case 46: Uid = 1000000; break;
                        case 47: Uid = 1000000; break;
                        case 48: Uid = 1000000; break;
                        case 49: Uid = 1000000; break;
                        case 50: Uid = 1000000; break;
                        case 51: Uid = 1000000; break;
                        case 52: Uid = 1000000; break;
                        case 53: Uid = 1000000; break;
                        case 54: Uid = 1000000; break;
                        case 55: Uid = 1000000; break;
                        case 56: Uid = 1000000; break;
                        case 57: Uid = 1000000; break;
                        case 58: Uid = 1000000; break;
                        case 59: Uid = 1000000; break;
                        case 60: Uid = 1000000; break;
                        case 61: Uid = 1000000; break;
                        case 62: Uid = 1000000; break;
                        case 63: Uid = 722113; break;
                        case 64: Uid = 1000000; break;
                        case 65: Uid = 1000000; break;
                        case 66: Uid = 1000000; break;
                        case 67: Uid = 1000000; break;
                        case 68: Uid = 1000000; break;
                        case 69: Uid = 1000000; break;
                        case 70: Uid = 1000000; break;
                        case 71: Uid = 1000000; break;
                        case 72: Uid = 1000000; break;
                        case 73: Uid = 1000000; break;
                        case 74: Uid = 1000000; break;
                        case 75: Uid = 1000000; break;
                        case 76: Uid = 722113; break;
                        case 77: Uid = 1000000; break;
                        case 78: Uid = 1000000; break;
                        case 79: Uid = 1000000; break;
                        case 80: Uid = 1000000; break;
                        case 81: Uid = 1000000; break;
                        case 82: Uid = 1000000; break;
                        case 83: Uid = 1000000; break;
                        case 84: Uid = 1000000; break;
                        case 85: Uid = 1000000; break;
                        case 86: Uid = 1000000; break;
                        case 87: Uid = 1000000; break;
                        case 88: Uid = 1000000; break;
                        case 89: Uid = 1000000; break;
                        case 90: Uid = 722113; break;
                        case 91: Uid = 1000000; break;
                        case 92: Uid = 1000000; break;
                        case 93: Uid = 1000000; break;
                        case 94: Uid = 1000000; break;
                        case 95: Uid = 1000000; break;
                        case 96: Uid = 1000000; break;
                        case 97: Uid = 1000000; break;
                        case 98: Uid = 1000000; break;
                        case 99: Uid = 1000000; break;
                        case 100: Uid = 1000000; break;
                        case 101: Uid = 1000000; break;
                        case 102: Uid = 1000000; break;
                        case 103: Uid = 1000000; break;
                        case 104: Uid = 1000000; break;
                        case 105: Uid = 1000000; break;
                        case 106: Uid = 1000000; break;
                        case 107: Uid = 1000000; break;
                        case 108: Uid = 1000000; break;
                        case 109: Uid = 1000000; break;
                        case 110: Uid = 1000000; break;
                        case 111: Uid = 1000000; break;
                        case 112: Uid = 722113; break;
                        case 113: Uid = 1000000; break;
                        case 114: Uid = 1000000; break;
                        case 115: Uid = 1000000; break;
                        case 116: Uid = 1000000; break;
                        case 117: Uid = 1000000; break;
                        case 118: Uid = 1000000; break;
                        case 119: Uid = 1000000; break;
                        case 120: Uid = 1000000; break;
                        case 121: Uid = 1000000; break;
                        case 122: Uid = 1000000; break;
                        case 123: Uid = 1000000; break;
                        case 124: Uid = 1000000; break;
                        case 125: Uid = 1000000; break;
                        case 126: Uid = 1000000; break;
                        case 127: Uid = 1000000; break;
                        case 128: Uid = 1000000; break;
                        case 129: Uid = 1000000; break;
                        case 130: Uid = 1000000; break;
                        case 131: Uid = 1000000; break;
                        case 132: Uid = 1000000; break;
                        case 133: Uid = 1000000; break;
                        case 134: Uid = 1000000; break;
                        case 135: Uid = 1000000; break;
                        case 136: Uid = 1000000; break;
                        case 137: Uid = 1000000; break;
                        case 138: Uid = 1000000; break;
                        case 139: Uid = 722113; break;
                        case 140: Uid = 1000000; break;
                        case 141: Uid = 1000000; break;
                        case 142: Uid = 1000000; break;
                        case 143: Uid = 1000000; break;
                        case 144: Uid = 1000000; break;
                        case 145: Uid = 1000000; break;
                        case 146: Uid = 1000000; break;
                        case 147: Uid = 1000000; break;
                        case 148: Uid = 1000000; break;
                        case 149: Uid = 722113; break;
                        case 150: Uid = 1000000; break;
                        case 151: Uid = 1000000; break;
                        case 152: Uid = 1000000; break;
                        case 153: Uid = 1000000; break;
                        case 154: Uid = 1000000; break;
                        case 155: Uid = 1000000; break;
                        case 156: Uid = 1000000; break;
                        case 157: Uid = 1000000; break;
                        case 158: Uid = 1000000; break;
                        case 159: Uid = 1000000; break;
                        case 160: Uid = 1000000; break;
                        case 161: Uid = 1000000; break;
                        case 162: Uid = 722113; break;
                        case 163: Uid = 1000000; break;
                        case 164: Uid = 1000000; break;
                        case 165: Uid = 1000000; break;
                        case 166: Uid = 1000000; break;
                        case 167: Uid = 1000000; break;
                        case 168: Uid = 1000000; break;
                        case 169: Uid = 1000000; break;
                        case 170: Uid = 722113; break;
                        case 171: Uid = 1000000; break;
                        case 172: Uid = 1000000; break;
                        case 173: Uid = 1000000; break;
                        case 174: Uid = 1000000; break;
                        case 175: Uid = 1000000; break;
                        case 176: Uid = 1000000; break;
                        case 177: Uid = 1000000; break;
                        case 178: Uid = 1000000; break;
                        case 179: Uid = 1000000; break;
                        case 180: Uid = 1000000; break;
                        case 181: Uid = 1000000; break;
                        case 182: Uid = 722113; break;
                        case 183: Uid = 1000000; break;
                        case 184: Uid = 1000000; break;
                        case 185: Uid = 1000000; break;
                        case 186: Uid = 1000000; break;
                        case 187: Uid = 1000000; break;
                        case 188: Uid = 1000000; break;
                        case 189: Uid = 1000000; break;
                        case 190: Uid = 1000000; break;
                        case 191: Uid = 1000000; break;
                        case 192: Uid = 1000000; break;
                        case 193: Uid = 722113; break;
                        case 194: Uid = 1000000; break;
                        case 195: Uid = 1000000; break;
                        case 196: Uid = 1000000; break;
                        case 197: Uid = 1000000; break;
                        case 198: Uid = 1000000; break;
                        case 199: Uid = 1000000; break;
                        case 200: Uid = 1000000; break;
                    }
                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = (uint)Uid;
                            floorItem.Item.MaximDurability = 65355;
                            floorItem.Item.MobDropped = true;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = (uint)Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            #endregion TC drop

            #region Bird drop

            if (Owner.MapID == 1015 && ServerBase.Kernel.PercentSuccess(200))
            {
                uint Uid2 = 0;
                byte type2 = (byte)ServerBase.Kernel.Random.Next(1, 3);
                switch (type2)
                {
                    case 1: Uid2 = 50; break;
                    case 2: Uid2 = 100; break;
                }
                if (killer.DoubleExperienceTime > 0)
                {
                    killer.ConquerPoints += Uid2;
                }
                else
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 201);
                    switch (type)
                    {
                        case 1: Uid = 1000000; break;
                        case 2: Uid = 722114; break;
                        case 3: Uid = 1000000; break;
                        case 4: Uid = 1000000; break;
                        case 5: Uid = 1000000; break;
                        case 6: Uid = 1000000; break;
                        case 7: Uid = 1000000; break;
                        case 8: Uid = 1000000; break;
                        case 9: Uid = 1000000; break;
                        case 10: Uid = 1000000; break;
                        case 11: Uid = 1000000; break;
                        case 12: Uid = 1000000; break;
                        case 13: Uid = 1000000; break;
                        case 14: Uid = 722114; break;
                        case 15: Uid = 1000000; break;
                        case 16: Uid = 1000000; break;
                        case 17: Uid = 1000000; break;
                        case 18: Uid = 1000000; break;
                        case 19: Uid = 1000000; break;
                        case 20: Uid = 1000000; break;
                        case 21: Uid = 1000000; break;
                        case 22: Uid = 722114; break;
                        case 23: Uid = 1000000; break;
                        case 24: Uid = 1000000; break;
                        case 25: Uid = 1000000; break;
                        case 26: Uid = 1000000; break;
                        case 27: Uid = 1000000; break;
                        case 28: Uid = 1000000; break;
                        case 29: Uid = 1000000; break;
                        case 30: Uid = 1000000; break;
                        case 31: Uid = 1000000; break;
                        case 32: Uid = 1000000; break;
                        case 33: Uid = 722114; break;
                        case 34: Uid = 1000000; break;
                        case 35: Uid = 1000000; break;
                        case 36: Uid = 1000000; break;
                        case 37: Uid = 1000000; break;
                        case 38: Uid = 722114; break;
                        case 39: Uid = 1000000; break;
                        case 40: Uid = 1000000; break;
                        case 41: Uid = 1000000; break;
                        case 42: Uid = 1000000; break;
                        case 43: Uid = 1000000; break;
                        case 44: Uid = 1000000; break;
                        case 45: Uid = 1000000; break;
                        case 46: Uid = 1000000; break;
                        case 47: Uid = 1000000; break;
                        case 48: Uid = 1000000; break;
                        case 49: Uid = 1000000; break;
                        case 50: Uid = 1000000; break;
                        case 51: Uid = 1000000; break;
                        case 52: Uid = 1000000; break;
                        case 53: Uid = 1000000; break;
                        case 54: Uid = 1000000; break;
                        case 55: Uid = 1000000; break;
                        case 56: Uid = 1000000; break;
                        case 57: Uid = 1000000; break;
                        case 58: Uid = 1000000; break;
                        case 59: Uid = 1000000; break;
                        case 60: Uid = 1000000; break;
                        case 61: Uid = 1000000; break;
                        case 62: Uid = 1000000; break;
                        case 63: Uid = 722114; break;
                        case 64: Uid = 1000000; break;
                        case 65: Uid = 1000000; break;
                        case 66: Uid = 1000000; break;
                        case 67: Uid = 1000000; break;
                        case 68: Uid = 1000000; break;
                        case 69: Uid = 1000000; break;
                        case 70: Uid = 1000000; break;
                        case 71: Uid = 1000000; break;
                        case 72: Uid = 1000000; break;
                        case 73: Uid = 1000000; break;
                        case 74: Uid = 1000000; break;
                        case 75: Uid = 1000000; break;
                        case 76: Uid = 722114; break;
                        case 77: Uid = 1000000; break;
                        case 78: Uid = 1000000; break;
                        case 79: Uid = 1000000; break;
                        case 80: Uid = 1000000; break;
                        case 81: Uid = 1000000; break;
                        case 82: Uid = 1000000; break;
                        case 83: Uid = 1000000; break;
                        case 84: Uid = 1000000; break;
                        case 85: Uid = 1000000; break;
                        case 86: Uid = 1000000; break;
                        case 87: Uid = 1000000; break;
                        case 88: Uid = 1000000; break;
                        case 89: Uid = 1000000; break;
                        case 90: Uid = 722114; break;
                        case 91: Uid = 1000000; break;
                        case 92: Uid = 1000000; break;
                        case 93: Uid = 1000000; break;
                        case 94: Uid = 1000000; break;
                        case 95: Uid = 1000000; break;
                        case 96: Uid = 1000000; break;
                        case 97: Uid = 1000000; break;
                        case 98: Uid = 1000000; break;
                        case 99: Uid = 1000000; break;
                        case 100: Uid = 1000000; break;
                        case 101: Uid = 1000000; break;
                        case 102: Uid = 1000000; break;
                        case 103: Uid = 1000000; break;
                        case 104: Uid = 1000000; break;
                        case 105: Uid = 1000000; break;
                        case 106: Uid = 1000000; break;
                        case 107: Uid = 1000000; break;
                        case 108: Uid = 1000000; break;
                        case 109: Uid = 1000000; break;
                        case 110: Uid = 1000000; break;
                        case 111: Uid = 1000000; break;
                        case 112: Uid = 722114; break;
                        case 113: Uid = 1000000; break;
                        case 114: Uid = 1000000; break;
                        case 115: Uid = 1000000; break;
                        case 116: Uid = 1000000; break;
                        case 117: Uid = 1000000; break;
                        case 118: Uid = 1000000; break;
                        case 119: Uid = 1000000; break;
                        case 120: Uid = 1000000; break;
                        case 121: Uid = 1000000; break;
                        case 122: Uid = 1000000; break;
                        case 123: Uid = 1000000; break;
                        case 124: Uid = 1000000; break;
                        case 125: Uid = 1000000; break;
                        case 126: Uid = 1000000; break;
                        case 127: Uid = 1000000; break;
                        case 128: Uid = 1000000; break;
                        case 129: Uid = 1000000; break;
                        case 130: Uid = 1000000; break;
                        case 131: Uid = 1000000; break;
                        case 132: Uid = 1000000; break;
                        case 133: Uid = 1000000; break;
                        case 134: Uid = 1000000; break;
                        case 135: Uid = 1000000; break;
                        case 136: Uid = 1000000; break;
                        case 137: Uid = 1000000; break;
                        case 138: Uid = 1000000; break;
                        case 139: Uid = 722114; break;
                        case 140: Uid = 1000000; break;
                        case 141: Uid = 1000000; break;
                        case 142: Uid = 1000000; break;
                        case 143: Uid = 1000000; break;
                        case 144: Uid = 1000000; break;
                        case 145: Uid = 1000000; break;
                        case 146: Uid = 1000000; break;
                        case 147: Uid = 1000000; break;
                        case 148: Uid = 1000000; break;
                        case 149: Uid = 722114; break;
                        case 150: Uid = 1000000; break;
                        case 151: Uid = 1000000; break;
                        case 152: Uid = 1000000; break;
                        case 153: Uid = 1000000; break;
                        case 154: Uid = 1000000; break;
                        case 155: Uid = 1000000; break;
                        case 156: Uid = 1000000; break;
                        case 157: Uid = 1000000; break;
                        case 158: Uid = 1000000; break;
                        case 159: Uid = 1000000; break;
                        case 160: Uid = 1000000; break;
                        case 161: Uid = 1000000; break;
                        case 162: Uid = 722114; break;
                        case 163: Uid = 1000000; break;
                        case 164: Uid = 1000000; break;
                        case 165: Uid = 1000000; break;
                        case 166: Uid = 1000000; break;
                        case 167: Uid = 1000000; break;
                        case 168: Uid = 1000000; break;
                        case 169: Uid = 1000000; break;
                        case 170: Uid = 722114; break;
                        case 171: Uid = 1000000; break;
                        case 172: Uid = 1000000; break;
                        case 173: Uid = 1000000; break;
                        case 174: Uid = 1000000; break;
                        case 175: Uid = 1000000; break;
                        case 176: Uid = 1000000; break;
                        case 177: Uid = 1000000; break;
                        case 178: Uid = 1000000; break;
                        case 179: Uid = 1000000; break;
                        case 180: Uid = 1000000; break;
                        case 181: Uid = 1000000; break;
                        case 182: Uid = 722114; break;
                        case 183: Uid = 1000000; break;
                        case 184: Uid = 1000000; break;
                        case 185: Uid = 1000000; break;
                        case 186: Uid = 1000000; break;
                        case 187: Uid = 1000000; break;
                        case 188: Uid = 1000000; break;
                        case 189: Uid = 1000000; break;
                        case 190: Uid = 1000000; break;
                        case 191: Uid = 1000000; break;
                        case 192: Uid = 1000000; break;
                        case 193: Uid = 722114; break;
                        case 194: Uid = 1000000; break;
                        case 195: Uid = 1000000; break;
                        case 196: Uid = 1000000; break;
                        case 197: Uid = 1000000; break;
                        case 198: Uid = 1000000; break;
                        case 199: Uid = 1000000; break;
                        case 200: Uid = 1000000; break;
                    }
                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = (uint)Uid;
                            floorItem.Item.MaximDurability = 65355;
                            floorItem.Item.MobDropped = true;
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = (uint)Uid;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                        }
                    }
                }
            }

            #endregion TC drop

            #endregion

            if (killer.Name.Contains("Guard"))
            {
                goto kimoz;
            }
            if (Owner.Name.Contains("Guard"))
            {

                return;
            }

            if (Name == "Naga")
            {
                {
                    killer.DisKO += 1;
                    killer.Owner.Send(new Message("Congratulations! You have got 1 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Azure, Message.Monster));
                   // return;
                }
            }

            if (ID == killer.kilid)
            {
                if (killer.Owner.Inventory.Contains(750000, 1))
                {

                    killer.Status4 += 1;
                }
            }
            if (ID == 83)
            {
                if (killer.kilid == 58)
                {
                    if (killer.Owner.Inventory.Contains(750000, 1))
                    {

                        killer.Status4 += 1;
                    }
                }
            }
            if (ID == 8319)
            {
                if (killer.kilid == 58)
                {
                    if (killer.Owner.Inventory.Contains(750000, 1))
                    {

                        killer.Status4 += 1;
                    }
                }
            }
            #region CPs  20

            if (ServerBase.Kernel.Rate(100))
            {
                killer.ConquerPoints += 100;
                killer.Owner.Send(new Network.GamePackets.Message("You have found 100 Cps ! BLackLisT ", System.Drawing.Color.Yellow, 2005));
            }

            #endregion CPs  50

            #region Error

            if (this.Name == "FireDevil(Error)")
            {
                uint Uid = 0;
                byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
                switch (type)
                {
                    case 1: Uid = 722158; break;
                    case 2: Uid = 722134; break;
                    case 3: Uid = 722133; break;
                    case 4: Uid = 722132; break;
                    case 5: Uid = 722131; break;
                    case 6: Uid = 722131; break;
                    case 7: Uid = 722132; break;
                    case 8: Uid = 722133; break;
                    case 9: Uid = 722134; break;
                    case 10: Uid = 722158; break;
                    case 11: Uid = 721962; break;
                    case 12: Uid = 722131; break;
                    case 13: Uid = 722132; break;
                    case 14: Uid = 722133; break;
                    case 15: Uid = 722134; break;
                    case 16: Uid = 722158; break;
                    case 17: Uid = 722134; break;
                    case 18: Uid = 722133; break;
                    case 19: Uid = 722132; break;
                    case 20: Uid = 722131; break;
                    case 21: Uid = 721962; break;
                }

                killer.Owner.Inventory.Add(Uid, 0, 1);

                //killer.ConquerPoints += 100;
                //killer.SubClasses.StudyPoints += 100;
                ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + "Has Killed " + Owner.Name + "", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
            }

            #endregion LavaBeast  SwordMaster

            #region Error1

            if (this.Name == "SkeletonA(Error)")
            {
                uint Uid = 0;
                byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
                switch (type)
                {
                    case 1: Uid = 722316; break;
                    case 2: Uid = 722316; break;
                    case 3: Uid = 722316; break;
                    case 4: Uid = 722316; break;
                    case 5: Uid = 722316; break;
                    case 6: Uid = 722316; break;
                    case 7: Uid = 722316; break;
                    case 8: Uid = 722316; break;
                    case 9: Uid = 722316; break;
                    case 10: Uid = 722316; break;
                    case 11: Uid = 722316; break;
                    case 12: Uid = 722316; break;
                    case 13: Uid = 722316; break;
                    case 14: Uid = 722317; break;
                    case 15: Uid = 722317; break;
                    case 16: Uid = 722317; break;
                    case 17: Uid = 722318; break;
                    case 18: Uid = 722318; break;
                    case 19: Uid = 722319; break;
                    case 20: Uid = 722319; break;
                    case 21: Uid = 722320; break;
                }

                killer.Owner.Inventory.Add(Uid, 0, 1);

                //killer.ConquerPoints += 100;
                //killer.SubClasses.StudyPoints += 100;
                ServerBase.Kernel.SendWorldMessage(new Network.GamePackets.Message("  " + killer.Name + "Has Killed " + Owner.Name + "", System.Drawing.Color.Yellow, 2011), ServerBase.Kernel.GamePool.Values);
            }

            #endregion LavaBeast  SwordMaster

            if (Name == "ThrillingSpook")
            {
                {
                    killer.ConquerPoints += Database.rates.ThrillingSpook;
                    PhoenixProject.ServerBase.Kernel.SendWorldMessage(new PhoenixProject.Network.GamePackets.Message("Congratulations! " + killer.Name + " Has Killed ThrillingSpook and got " + Database.rates.ThrillingSpook + " cps!", System.Drawing.Color.IndianRed, 2600), PhoenixProject.ServerBase.Kernel.GamePool.Values);
                   // return;
                }
            }
            if (Name == "LavaBeast")
            {
                {
                    killer.SubClasses.StudyPoints += 20;
                    killer.Owner.Send(new Message("Congratulations You have got 20 StudyPoints!", System.Drawing.Color.Red, Network.GamePackets.Message.study));
                    PhoenixProject.ServerBase.Kernel.SendWorldMessage(new PhoenixProject.Network.GamePackets.Message("Congratulations! " + killer.Name + " Has Killed LavaBeast and got 20 StudyPoints!", System.Drawing.Color.White, 2600), PhoenixProject.ServerBase.Kernel.GamePool.Values);
                    Data data = new Data(true);
                    data.ID = Data.OpenCustom;
                    data.UID =  killer.Owner.Entity.UID;
                    data.TimeStamp = Time32.Now;
                    data.dwParam = 3179;
                    data.wParam1 =  killer.Owner.Entity.X;
                    data.wParam2 =  killer.Owner.Entity.Y;
                    killer.Owner.Send(data);
                   // return;
                }
            }
            if (Name == "Temptress")
            {
                {
                    killer.DisKO += 1;
                    killer.Owner.Send(new Message("Congratulations! You have got 1 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Azure, Message.Monster));
                   // return;
                }
            }
            if (Name == "Centicore")
            {
                {
                    killer.DisKO += 1;
                    killer.Owner.Send(new Message("Congratulations! You have got 1 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Azure, Message.Monster));
                  //  return;
                }
            }
            if (Name == "DemonCave[1]")
            {
                {
                    killer.DemonCave1 += 1;
                    killer.Owner.Send(new Message("Congratulations! You have got 1 Kill you have Now " + killer.DemonCave1 + " Stage[1] Points", System.Drawing.Color.Azure, Message.Monster));
                  //  return;
                }
            }
            if (Name == "DemonCave[2]")
            {
                {
                    killer.DemonCave2 += 1;
                    killer.Owner.Send(new Message("Congratulations! You have got 1 Kill you have Now " + killer.DemonCave2 + " Stage[2] Points", System.Drawing.Color.Azure, Message.Monster));
                   // return;
                }
            }
            if (Name == "DemonCave[3]")
            {
                {
                    killer.DemonCave3 += 1;
                    killer.Owner.Send(new Message("Congratulations! You have got 1 Kill you have Now " + killer.DemonCave3 + " Stage[3] Points", System.Drawing.Color.Azure, Message.Monster));
                   // return;
                }
            }
            if (Name == "HellTroll")
            {
                {
                    killer.DisKO += 3;
                    killer.Owner.Send(new Message("Congratulations! You have got 3 Kill you have Now " + killer.DisKO + " DisKo Points", System.Drawing.Color.Azure, Message.Monster));
                  //  return;
                }
            }
            if (Name == "SnowBanshee")
            {
                {
                    killer.Owner.Inventory.Add(723694, 0, 1);
                    killer.ConquerPoints += Database.rates.SnowBanshe;
                    killer.Owner.Send(new Message("Congratulations! " + killer.Name + " has defeated SnowBanshee in BirdIsland and got PermanentStone and " + Database.rates.SnowBanshe + " CPS!", System.Drawing.Color.Azure, Message.Monster));
                   // return;
                }
            }
            if (Name == "SwordMaster")
            {
                {
                    uint randsouls = (uint)PhoenixProject.ServerBase.Kernel.Random.Next(1, (int)Database.DROP_SOULS.Count_souls);
                    //Database.Monster.Souls[randsouls].item_id
                    uint ItemID = Database.DROP_SOULS.Souls[randsouls].item_id;
                    var infos = Database.ConquerItemInformation.BaseInformations[ItemID];
                    if (infos == null) return;
                    ushort X = Owner.X, Y = Owner.Y;
                    Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                    if (Map.SelectCoordonates(ref X, ref Y))
                    {
                        Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                        floorItem.Item = new Network.GamePackets.ConquerItem(true);
                        floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                        floorItem.Item.ID = ItemID;
                        floorItem.Item.MaximDurability = infos.Durability;

                        floorItem.Item.Durability = (ushort)(ServerBase.Kernel.Random.Next(infos.Durability / 10));

                        if (!Network.PacketHandler.IsEquipment(ItemID) && infos.ConquerPointsWorth == 0)
                        {
                            floorItem.Item.StackSize = 1;
                            floorItem.Item.MaxStackSize = infos.StackSize;
                        }
                        floorItem.Item.MobDropped = true;
                        floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                        floorItem.ItemID = ItemID;
                        floorItem.MapID = Owner.MapID;
                        floorItem.MapObjType = Game.MapObjectType.Item;
                        floorItem.X = X;
                        floorItem.Y = Y;
                        floorItem.Owner = killer.Owner;
                        floorItem.Type = Network.GamePackets.FloorItem.Drop;
                        floorItem.OnFloor = Time32.Now;
                        floorItem.ItemColor = floorItem.Item.Color;
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;

                        while (Map.Npcs.ContainsKey(floorItem.UID))
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                        Map.AddFloorItem(floorItem);
                        SendScreenSpawn(floorItem);
                    }
                    killer.Owner.Send(new Message("Congratulations! " + killer.Name + " has defeated SwordMaster in His/Her House and Dropped " + Database.ConquerItemInformation.BaseInformations[ItemID].Name + " !", System.Drawing.Color.Azure, Message.Monster));
                   // return;
                }
            }
            if (Name == "GoldenOctopus")
            {
                {
                    killer.ConquerPoints += 20000;
                    killer.Owner.Send(new Message("Congratulations! " + killer.Name + " has defeated GoldenOctopus in PirateSea Map and got 20,000 CPS!", System.Drawing.Color.Azure, Message.Monster));
                  ///  return;
                }
            }
            if (Name == "TeratoDragon")
            {
                byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
                byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
                for (byte i = 0; i < times; i++)
                {
                    uint Uid = 0;
                    byte type = (byte)ServerBase.Kernel.Random.Next(1, 50);
                    switch (type)
                    {
                        case 1:
                            Uid = 800320;
                            break;

                        case 2:
                            Uid = 822054;
                            break;

                        case 3:
                            Uid = 800110;
                            break;

                        case 4:
                            Uid = 820056;
                            break;

                        case 5:
                            Uid = 822056;
                            break;

                        case 6:
                            Uid = 822057;
                            break;

                        case 7:
                            Uid = 822053;
                            break;

                        case 8:
                            Uid = 800019;
                            break;

                        case 9:
                            Uid = 800050;
                            break;

                        case 10:
                            Uid = 800015;
                            break;

                        case 11:
                            Uid = 800090;
                            break;

                        case 12:
                            Uid = 800513;
                            break;

                        case 13:
                            Uid = 800017;
                            break;

                        case 14:
                            Uid = 800071;
                            break;

                        case 15:
                            Uid = 800016;
                            break;

                        case 16:
                            Uid = 823051;
                            break;

                        case 17:
                            Uid = 800130;
                            break;

                        case 18:
                            Uid = 800140;
                            break;

                        case 19:
                            Uid = 800141;
                            break;

                        case 20:
                            Uid = 800200;
                            break;

                        case 21:
                            Uid = 800310;
                            break;

                        case 22:
                            Uid = 800014;
                            break;

                        case 23:
                            Uid = 800214;
                            break;

                        case 24:
                            Uid = 800230;
                            break;

                        case 25:
                            Uid = 800414;
                            break;

                        case 26:
                            Uid = 822052;
                            break;

                        case 27:
                            Uid = 800420;
                            break;

                        case 28:
                            Uid = 800401;
                            break;

                        case 29:
                            Uid = 800512;
                            break;

                        case 30:
                            Uid = 823043;
                            break;

                        case 31:
                            Uid = 800514;
                            break;

                        case 32:
                            Uid = 800520;
                            break;

                        case 33:
                            Uid = 800521;
                            break;

                        case 34:
                            Uid = 800613;
                            break;

                        case 35:
                            Uid = 800614;
                            break;

                        case 36:
                            Uid = 800615;
                            break;

                        case 37:
                            Uid = 824001;
                            break;

                        case 38:
                            Uid = 800617;
                            break;

                        case 39:
                            Uid = 800720;
                            break;

                        case 40:
                            Uid = 800721;
                            break;

                        case 41:
                            Uid = 800070;
                            break;

                        case 42:
                            Uid = 800723;
                            break;

                        case 43:
                            Uid = 800724;
                            break;

                        case 44:
                            Uid = 800018;
                            break;

                        case 45:
                            Uid = 820001;
                            break;

                        case 46:
                            Uid = 820052;
                            break;

                        case 47:
                            Uid = 820053;
                            break;

                        case 48:
                            Uid = 820054;
                            break;

                        case 49:
                            Uid = 820055;
                            break;

                        case 50:
                            Uid = 800722;
                            break;
                    }

                    if (Uid != 0)
                    {
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            killer.Owner.Inventory.Add(Uid, 0, 1);
                            PhoenixProject.ServerBase.Kernel.SendWorldMessage(new PhoenixProject.Network.GamePackets.Message("Congratulations! " + killer.Name + " Has Defeated " + Name + " and dropped! " + Database.ConquerItemInformation.BaseInformations[Uid].Name + " and "+Database.rates.TeratoDragon+" CPS!", System.Drawing.Color.White, 2600), PhoenixProject.ServerBase.Kernel.GamePool.Values);
                            killer.ConquerPoints += Database.rates.TeratoDragon;
                           // return;
                        }
                    }
                }
            }

            kimoz:

            byte morepercent = 0;
            byte lessrate = 0;
            if (killer.VIPLevel > 0)
                morepercent = (byte)(killer.VIPLevel * 5);
            if (killer.Level <= 10 && killer.MapID == 1002)
                morepercent += 100;
            if (killer.VIPLevel != 6 && killer.Class >= 40 && killer.Class <= 45)
                lessrate = 3;
            if (killer.VIPLevel != 6 && killer.Level >= 132 && killer.ContainsFlag(Network.GamePackets.Update.Flags.ShurikenVortex))
                lessrate = 3;

            if (ServerBase.Kernel.Rate(ServerBase.Constants.MoneyDropRate - lessrate + morepercent))
            {

                uint amount = (uint)ServerBase.Kernel.Random.Next(1000, 5000);
               // amount *= ServerBase.Constants.MoneyDropMultiple;

                if (amount > 1000000)
                    amount = 5000;

                if (amount == 0)
                    return;
               /* if (killer.VIPLevel > 0)
                {
                    int percent = 10;
                    percent += killer.VIPLevel * 5 - 5;
                    amount += (uint)(amount * percent / 100);
                }
                if (killer.VIPLevel > 4)
                {
                    killer.Money += amount;
                    goto next;
                }*/
                uint ItemID = Network.PacketHandler.MoneyItemID(amount);
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money;
                    floorItem.Value = amount;
                    floorItem.ItemID = ItemID;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }
            }
               // next:

            if (ServerBase.Kernel.Rate(ServerBase.Constants.ConquerPointsDropRate - lessrate))
            {
                // uint amount = (uint)ServerBase.Kernel.Random.Next((int)((Level / 4) * ServerBase.Constants.ConquerPointsDropMultiple), (int)((Level / 2) * ServerBase.Constants.ConquerPointsDropMultiple));
                // if (amount == 0)
                //     amount = 2;
                // if (amount > 300)
                //      amount = 10;
                //  amount /= 2;

                uint amount = (uint)Level /PhoenixProject.Database.rates.CpsMethodNum;
                if (amount < PhoenixProject.Database.rates.minicps)
                    amount = PhoenixProject.Database.rates.minicps;
                if (amount > PhoenixProject.Database.rates.maxcps)
                    amount = PhoenixProject.Database.rates.maxcps;
                // if (killer.VIPLevel > 4)
                // {
                if (killer != null && killer.Owner != null)
                {
                    if (killer.Owner.Map.BaseID == 1354)
                    {
                        amount = PhoenixProject.Database.rates.maxcps;
                    }
                }
                if (killer != null && killer.Owner != null)
                {
                    //killer.Owner.Send(ServerBase.Constants.PickupConquerPoints(amount));
                    killer.ConquerPoints += (uint)amount;
                    killer.Owner.Send(new Network.GamePackets.Message("You received " + amount + " ConquerPoints! for Kill " + Name + "", System.Drawing.Color.Red, Network.GamePackets.Message.TopLeft).ToArray());
                   // return;
                }
                //  }

                #region CPBag

                //uint ItemID = 729911;
                //ushort X = Owner.X, Y = Owner.Y;
                //Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                //if (Map.SelectCoordonates(ref X, ref Y))
                //{
                //    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                //    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
                //    floorItem.Value = amount;
                //    floorItem.ItemID = ItemID;
                //    floorItem.MapID = Owner.MapID;
                //    floorItem.MapObjType = Game.MapObjectType.Item;
                //    floorItem.X = X;
                //    floorItem.Y = Y;
                //    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                //    floorItem.OnFloor = Time32.Now;
                //    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                //    while (Map.Npcs.ContainsKey(floorItem.UID))
                //        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                //    Map.AddFloorItem(floorItem);
                //    SendScreenSpawn(floorItem);
                //}
                #endregion
            }
            else if (ServerBase.Kernel.Rate(OwnItemRate + morepercent) && OwnItemID != 0)
            {
                if (killer.VIPLevel > 6)
                {
                    if (killer.Owner.Inventory.Count <= 39)
                    {
                        killer.Owner.Inventory.Add((uint)OwnItemID, 0, 1);
                        //return;
                    }
                }
                var infos = Database.ConquerItemInformation.BaseInformations[(uint)OwnItemID];
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.Item = new Network.GamePackets.ConquerItem(true);
                    floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                    floorItem.Item.ID = (uint)OwnItemID;
                    floorItem.Item.MaximDurability = infos.Durability;
                    if (!Network.PacketHandler.IsEquipment(OwnItemID) && infos.ConquerPointsWorth == 0)
                    {
                        floorItem.Item.StackSize = 1;
                        floorItem.Item.MaxStackSize = infos.StackSize;
                    }
                    floorItem.Item.MobDropped = true;
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                    floorItem.ItemID = (uint)OwnItemID;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Owner = killer.Owner;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.ItemColor = floorItem.Item.Color;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }
            }
            else if (ServerBase.Kernel.Rate(ServerBase.Constants.ItemDropRate + morepercent))
            {
                int quality = 3;
                for (int count = 0; count < 5; count++)
                {
                    int rate = int.Parse(ServerBase.Constants.ItemDropQualityRates[count]);
                    if (ServerBase.Kernel.Rate(rate, 1000))
                    {
                        quality = count + 5;
                        break;
                    }
                }
                int times = 50;
                byte lvl = Owner.Level;
                if (LabirinthDrop)
                    lvl = 20;
                List<uint> itemdroplist = ItemDropCache[lvl];
                if (Boss)
                    itemdroplist = SoulItemCache[lvl];
            retry:
                times--;
                int generateItemId = ServerBase.Kernel.Random.Next(itemdroplist.Count);
                uint id = itemdroplist[generateItemId];
                if (!Boss)
                {
                    if (Database.ConquerItemInformation.BaseInformations[id].Level > 121 && times > 0)
                        goto retry;
                    id = (id / 10) * 10 + (uint)quality;
                }
                if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(id))
                {
                    id = itemdroplist[generateItemId];
                }
                if (killer.VIPLevel > 6)
                {
                    if (killer.Owner.Inventory.Count <= 39)
                    {
                        if (id % 10 > 7)
                        {
                            killer.Owner.Inventory.Add(id, 0, 1);
                            return;
                        }
                    }
                }
                var infos = Database.ConquerItemInformation.BaseInformations[id];
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.Item = new Network.GamePackets.ConquerItem(true);
                    floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                    floorItem.Item.ID = id;
                    floorItem.Item.MaximDurability = infos.Durability;
                    if (quality >= 6)
                        floorItem.Item.Durability = (ushort)(infos.Durability - ServerBase.Kernel.Random.Next(500));
                    else
                        floorItem.Item.Durability = (ushort)(ServerBase.Kernel.Random.Next(infos.Durability / 10));
                    if (!Network.PacketHandler.IsEquipment(id) && infos.ConquerPointsWorth == 0)
                    {
                        floorItem.Item.StackSize = 1;
                        floorItem.Item.MaxStackSize = infos.StackSize;
                    }
                    floorItem.Item.MobDropped = true;
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                    floorItem.ItemID = id;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.Owner = killer.Owner;
                    floorItem.ItemColor = floorItem.Item.Color;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }
            }
            else if (ServerBase.Kernel.Rate(20 + morepercent))
            {
                if (HPPotionID == 0)
                    return;
                var infos = Database.ConquerItemInformation.BaseInformations[(uint)HPPotionID];
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.Item = new Network.GamePackets.ConquerItem(true);
                    floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                    floorItem.Item.ID = (uint)HPPotionID;
                    floorItem.Item.MobDropped = true;
                    floorItem.Item.MaximDurability = infos.Durability;
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                    if (!Network.PacketHandler.IsEquipment(HPPotionID))
                    {
                        floorItem.Item.StackSize = 1;
                        floorItem.Item.MaxStackSize = infos.StackSize;
                    }
                    floorItem.ItemID = (uint)HPPotionID;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.Owner = killer.Owner;
                    floorItem.ItemColor = floorItem.Item.Color;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }
            }
            else if (ServerBase.Kernel.Rate(20 + morepercent))
            {
                if (MPPotionID == 0)
                    return;
                var infos = Database.ConquerItemInformation.BaseInformations[(uint)MPPotionID];
                ushort X = Owner.X, Y = Owner.Y;
                Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                if (Map.SelectCoordonates(ref X, ref Y))
                {
                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                    floorItem.Item = new Network.GamePackets.ConquerItem(true);
                    floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                    floorItem.Item.ID = (uint)MPPotionID;
                    floorItem.Item.MaximDurability = infos.Durability;
                    floorItem.Item.MobDropped = true;
                    floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                    if (!Network.PacketHandler.IsEquipment(MPPotionID))
                    {
                        floorItem.Item.StackSize = 1;
                        floorItem.Item.MaxStackSize = infos.StackSize;
                    }
                    floorItem.ItemID = (uint)MPPotionID;
                    floorItem.MapID = Owner.MapID;
                    floorItem.MapObjType = Game.MapObjectType.Item;
                    floorItem.X = X;
                    floorItem.Y = Y;
                    floorItem.Type = Network.GamePackets.FloorItem.Drop;
                    floorItem.OnFloor = Time32.Now;
                    floorItem.Owner = killer.Owner;
                    floorItem.ItemColor = floorItem.Item.Color;
                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    while (Map.Npcs.ContainsKey(floorItem.UID))
                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                    Map.AddFloorItem(floorItem);
                    SendScreenSpawn(floorItem);
                }
            }
            else
            {
                foreach (SpecialItemDrop sitem in SpecialItemDropList)
                {
                    if (sitem.Map != 0 && Owner.MapID != sitem.Map)
                        continue;
                    if (ServerBase.Kernel.Rate(sitem.Rate + morepercent, sitem.Discriminant))
                    {
                        if (killer.VIPLevel > 6)
                        {
                            if (killer.Owner.Inventory.Count <= 39)
                            {
                                killer.Owner.Inventory.Add((uint)sitem.ItemID, 0, 1);
                                return;
                            }
                        }
                        var infos = Database.ConquerItemInformation.BaseInformations[(uint)sitem.ItemID];
                        ushort X = Owner.X, Y = Owner.Y;
                        Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
                        if (Map.SelectCoordonates(ref X, ref Y))
                        {
                            Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
                            floorItem.Item = new Network.GamePackets.ConquerItem(true);
                            floorItem.Item.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                            floorItem.Item.ID = (uint)sitem.ItemID;
                            floorItem.Item.MaximDurability = infos.Durability;
                            floorItem.Item.MobDropped = true;
                            if (!Network.PacketHandler.IsEquipment(sitem.ItemID) && infos.ConquerPointsWorth == 0)
                            {
                                floorItem.Item.StackSize = 1;
                                floorItem.Item.MaxStackSize = infos.StackSize;
                            }
                            floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
                            floorItem.ItemID = (uint)sitem.ItemID;
                            floorItem.MapID = Owner.MapID;
                            floorItem.MapObjType = Game.MapObjectType.Item;
                            floorItem.X = X;
                            floorItem.Y = Y;
                            floorItem.Type = Network.GamePackets.FloorItem.Drop;
                            floorItem.OnFloor = Time32.Now;
                            floorItem.ItemColor = floorItem.Item.Color;
                            floorItem.Owner = killer.Owner;
                            floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            while (Map.Npcs.ContainsKey(floorItem.UID))
                                floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                            Map.AddFloorItem(floorItem);
                            SendScreenSpawn(floorItem);
                            break;
                        }
                    }
                }
            }
        }
        public static bool CanAttack(Game.Entity attacker, Game.Entity attacked, Database.SpellInformation spell, bool melee)
        {
            if (attacker.EntityFlag == EntityFlag.Player)
            {
                if (attacked.EntityFlag == EntityFlag.Player)
                {
                    if (attacker.MapID == 2060)
                    {
                        if (attacked.Owner.CaptureB && attacker.Owner.CaptureB)
                        {
                            return false;
                        }
                        if (attacked.Owner.CaptureW && attacker.Owner.CaptureW)
                        {
                            return false;
                        }
                        if (attacked.Owner.CaptureBL && attacker.Owner.CaptureBL)
                        {
                            return false;
                        }
                        if (attacked.Owner.CaptureR && attacker.Owner.CaptureR)
                        {
                            return false;
                        }
                    }
                }
            }
           
            if (attacker.EntityFlag == EntityFlag.Player)
            {
                if (attacked.EntityFlag == EntityFlag.Monster)
                {
                    if (attacked.MonsterInfo.Name == "StigGuard")
                    {
                        return false;
                    }
                }
            }
            if (attacker.EntityFlag == EntityFlag.Monster)
            {
                if (attacked.EntityFlag == EntityFlag.Monster)
                {
                    if (attacked.MonsterInfo.Name == "StigGuard")
                    {
                        return false;
                    }
                }
            }
            if (attacker.EntityFlag == EntityFlag.Player)
            {
                if (attacked.EntityFlag == EntityFlag.Monster)
                {
                    if (attacked.MonsterInfo.Name == "RevGuard")
                    {
                        return false;
                    }
                }
            }
            if (attacker.EntityFlag == EntityFlag.Monster)
            {
                if (attacked.EntityFlag == EntityFlag.Monster)
                {
                    if (attacked.MonsterInfo.Name == "RevGuard")
                    {
                        return false;
                    }
                }
            }
            if (spell != null)
                if (spell.CanKill == 1 && attacker.EntityFlag == EntityFlag.Player && ServerBase.Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID) && attacked.EntityFlag == EntityFlag.Player)
                    return false;
            if (attacker.EntityFlag == EntityFlag.Player)
                if (attacker.Owner.WatchingGroup != null)
                    return false;
            if (attacked == null)
                return false;
            if (attacked.Dead)
            {
                attacker.AttackPacket = null;
                return false;
            }
            if (attacked.EntityFlag == EntityFlag.Monster)
            {
                if (attacked.Companion)
                {
                    if (ServerBase.Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID))
                    {
                        if (attacked.Owner == attacker.Owner)
                            return false;
                        if (attacker.PKMode != PhoenixProject.Game.Enums.PKMode.PK &&
                         attacker.PKMode != PhoenixProject.Game.Enums.PKMode.Team)
                            return false;
                        else
                        {
                            attacker.AddFlag(Network.GamePackets.Update.Flags.FlashingName);
                            attacker.FlashingNameStamp = Time32.Now;
                            attacker.FlashingNameTime = 10;

                            return true;
                        }
                    }
                }
                if (attacked.Name.Contains("Guard"))
                {
                    if (attacker.PKMode != PhoenixProject.Game.Enums.PKMode.PK &&
                    attacker.PKMode != PhoenixProject.Game.Enums.PKMode.Team)
                        return false;
                    else
                    {
                        attacker.AddFlag(Network.GamePackets.Update.Flags.FlashingName);
                        attacker.FlashingNameStamp = Time32.Now;
                        attacker.FlashingNameTime = 10;

                        return true;
                    }
                }
                else
                    return true;
            }
            else
            {
                if (attacked.EntityFlag == EntityFlag.Player)
                    if (!attacked.Owner.Attackable)
                        return false;
                if (attacker.EntityFlag == EntityFlag.Player)
                    if (attacker.Owner.WatchingGroup == null)
                        if (attacked.EntityFlag == EntityFlag.Player)
                            if (attacked.Owner.WatchingGroup != null)
                                return false;

                if (spell != null)
                {
                    if (spell.ID != 8001)
                    {
                        if (spell.OnlyGround == 1)
                            if (attacked.ContainsFlag(Update.Flags.Fly))
                                return false;
                        if (melee && attacked.ContainsFlag(Update.Flags.Fly))
                            return false;
                    }
                }
                if (spell != null)
                {
                    if (spell.ID == 6010)
                    {
                            if (attacked.ContainsFlag(Update.Flags.Fly))
                                return false;
                    }
                }
                if (spell != null)
                {
                    if (spell.ID == 10381)
                    {
                        if (attacked.ContainsFlag(Update.Flags.Fly))
                            return false;
                    }
                }
                if (spell != null)
                {
                    if (spell.ID == 6000)
                    {
                        if (attacked.ContainsFlag(Update.Flags.Fly))
                            return false;
                    }
                }
                if (spell != null)
                {
                    if (spell.ID == 5030)
                    {
                        if (attacked.ContainsFlag(Update.Flags.Fly))
                            return false;
                    }
                }
                if (spell == null)
                {
                        if (attacked.ContainsFlag(Update.Flags.Fly))
                            return false;
                }

                if (attacked.ContainsFlag(Network.GamePackets.Update.Flags2.IceBlock))
                {
                    return false;
                }
                if (attacked.Owner.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameMaster)
                {
                    return false;
                }
                if (attacked.Owner.Account.State == PhoenixProject.Database.AccountTable.AccountState.ProjectManager)
                {
                    return false;
                }
                if (attacked.Owner.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameHelper)
                {
                    return false;
                }
                if (ServerBase.Constants.PKForbiddenMaps.Contains(attacker.Owner.Map.ID))
                {
                    if (attacker.PKMode == PhoenixProject.Game.Enums.PKMode.PK ||
                        attacker.PKMode == PhoenixProject.Game.Enums.PKMode.Team || (spell != null && spell.CanKill == 1))
                    {
                        attacker.Owner.Send(ServerBase.Constants.PKForbidden);
                        attacker.AttackPacket = null;
                    }
                    return false;
                }
                if (attacker.MapID >= 1000000)
                {
                    if (attacker.PKMode == PhoenixProject.Game.Enums.PKMode.PK ||
                        attacker.PKMode == PhoenixProject.Game.Enums.PKMode.Team || (spell != null && spell.CanKill == 1))
                    {
                        attacker.Owner.Send(ServerBase.Constants.PKForbidden);
                        attacker.AttackPacket = null;
                    }
                    return false;
                }
                if (attacker.PKMode == PhoenixProject.Game.Enums.PKMode.Capture)
                {
                    if (attacked.ContainsFlag(Update.Flags.FlashingName) || attacked.PKPoints > 99)
                    {
                        return true;
                    }
                }
                if (attacker.PKMode == PhoenixProject.Game.Enums.PKMode.Revenge)
                {
                    if (attacker.Owner.Enemy.ContainsKey(attacked.UID))
                    {
                        return true;
                    }
                }
                if (attacker.PKMode == PhoenixProject.Game.Enums.PKMode.Peace)
                {
                    if (attacker.PKMode == PhoenixProject.Game.Enums.PKMode.Peace)
                    {
                        return false;
                    }
                }
                if (attacker.Name == attacked.Name)
                {
                    if (attacker.Name == attacked.Name)
                    {
                        return false;
                    }
                }
                if (attacker.PKMode == PhoenixProject.Game.Enums.PKMode.Team)
                {
                    if (attacker.Owner.Team != null)
                        if (attacker.Owner.Team.IsTeammate(attacked.UID))
                        {
                            attacker.AttackPacket = null;
                            return false;
                        }
                    if (attacker.Owner.Guild != null)
                    {
                        if (attacker.GuildID != 0)
                        {
                            if (attacked.GuildID != 0)
                            {
                                if (attacker.GuildID == attacked.GuildID)
                                {
                                    attacker.AttackPacket = null;
                                    return false;
                                }
                            }
                        }
                    }
                    if (attacker.ClanId != 0)
                    {
                        if (attacker.ClanId != 0)
                        {
                            if (attacked.ClanId != 0)
                            {
                                if (attacker.ClanId == attacked.ClanId)
                                {
                                    attacker.AttackPacket = null;
                                    return false;
                                }
                            }
                        }
                    }
                    if (attacker.Owner.Friends.ContainsKey(attacked.UID))
                    {
                        attacker.AttackPacket = null;
                        return false;
                    }
                    if (attacker.Owner.Guild != null)
                    {
                        if (attacker.GuildID != 0)
                        {
                            if (attacked.GuildID != 0)
                            {
                                if (attacker.Owner.Guild.Ally.ContainsKey(attacked.GuildID))
                                {
                                    attacker.AttackPacket = null;
                                    return false;
                                }
                            }
                        }
                    }
                    if (attacked.UID == attacker.UID)
                        return false;
                    if (attacker.Myclan != null)
                    {
                        if (attacker.ClanId != 0)
                        {
                            if (attacked.ClanId != 0)
                            {
                                if (attacker.Myclan.Allies.ContainsKey(attacked.ClanId))
                                {
                                    attacker.AttackPacket = null;
                                    return false;
                                }
                            }
                        }
                    }
                }

                if (spell != null)
                    if (spell.OnlyGround == 1)
                        if (attacked.ContainsFlag(Update.Flags.Fly))
                            return false;

                if (spell != null)
                    if (spell.CanKill == 0)
                        return true;

                if (attacker.PKMode != PhoenixProject.Game.Enums.PKMode.PK &&
                    attacker.PKMode != PhoenixProject.Game.Enums.PKMode.Team && attacked.PKPoints < 99)
                {
                    attacker.AttackPacket = null;
                    return false;
                }
                else
                {
                    if (!attacked.ContainsFlag(Update.Flags.FlashingName))
                    {
                        if (!attacked.ContainsFlag(Update.Flags.BlackName))
                        {
                            if (ServerBase.Constants.PKFreeMaps.Contains(attacker.MapID))
                                return true;
                            if (ServerBase.Constants.Damage1Map.Contains(attacker.MapID))
                                return true;
                            if (attacker.Owner.Map.BaseID == 700)
                                return true;
                            attacker.AddFlag(Network.GamePackets.Update.Flags.FlashingName);
                            attacker.FlashingNameStamp = Time32.Now;
                            attacker.FlashingNameTime = 10;
                        }
                    }
                }
                return true;
            }
        }