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); } } } }
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; } }