and canany 1 tell me what should i write to do it inside game
Code:
case "dropevent": { Interfaces.IConquerItem Item = null; #region Get Item string ItemName = Data[1]; bool SpecialItem = true; uint SpecialID = 0; if (ItemName.Contains("cp") || ItemName.Contains("met") || ItemName.Contains("db")) { if (ItemName.Contains("cp")) SpecialID = 729911; else if (ItemName.Contains("db")) SpecialID = 1088000; else if (ItemName.Contains("met")) SpecialID = 1088001; SpecialItem = true; goto PrepareDrop; } if (ItemName.ToLower() == "exp") { foreach (Interfaces.IMapObject ClientObj in client.Screen.Objects) { if (ClientObj != null) { if (ClientObj is Game.Entity) { if (ClientObj.MapObjType == Conquer_Online_Server.Game.MapObjectType.Player) { ClientObj.Owner.IncreaseExperience(ClientObj.Owner.ExpBall, false); } } } } break; } Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3; if (Data.Length > 2) { switch (Data[3].ToLower()) { case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break; case "normal": Quality = Game.Enums.ItemQuality.Normal; break; case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break; case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break; case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break; case "refined": Quality = Game.Enums.ItemQuality.Refined; break; case "unique": Quality = Game.Enums.ItemQuality.Unique; break; case "elite": Quality = Game.Enums.ItemQuality.Elite; break; case "super": Quality = Game.Enums.ItemQuality.Super; break; case "other": Quality = Game.Enums.ItemQuality.Other; break; default: { Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int.Parse(Data[4]); break; } } } Database.ConquerItemBaseInformation CIBI = null; foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values) { if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10)) { CIBI = infos; } else { if (infos.Name.ToLower() == ItemName.ToLower()) CIBI = infos; } } if (CIBI == null) break; Item = new GamePackets.ConquerItem(true); Item.ID = CIBI.ID; Item.Durability = CIBI.Durability; Item.MaximDurability = CIBI.Durability; if (Data.Length > 3) Item.Plus = byte.Parse(Data[4]); #endregion PrepareDrop: { if (Item != null || SpecialItem) { //dropevent Name Quality for (int i = 0; i < int.Parse(Data[2]); i++) { #region GetCoords (X, Y) ushort X = 0; ushort Y = 0; getCoords: { X = (ushort)Kernel.Random.Next(client.Entity.X - 20, client.Entity.X + 20); Y = (ushort)Kernel.Random.Next(client.Entity.Y - 20, client.Entity.Y + 20); } while (!client.Map.SelectCoordonates(ref X, ref Y)) goto getCoords; #endregion #region Drop Floor Item FloorItem floorItem = new FloorItem(true); if (SpecialItem) { if (SpecialID == 729911) { floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints; floorItem.Value = 20; } floorItem.ItemID = SpecialID; floorItem.Item = new ConquerItem(true); floorItem.Item.ID = SpecialID; floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = floorItem.Item.UID; floorItem.Item.MobDropped = true; while (client.Map.Npcs.ContainsKey(floorItem.Item.UID)) { floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = FloorItem.FloorUID.Next; } } else { floorItem.Item = new ConquerItem(true); floorItem.Item.Color = Item.Color; floorItem.Item.Durability = Item.Durability; floorItem.Item.ID = Item.ID; floorItem.Item.Mode = Game.Enums.ItemMode.Default; floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = floorItem.Item.UID; floorItem.Item.MobDropped = true; floorItem.ItemColor = Item.Color; floorItem.ItemID = Item.ID; while (client.Map.Npcs.ContainsKey(floorItem.Item.UID)) { floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = FloorItem.FloorUID.Next; } } floorItem.MapID = client.Map.ID; floorItem.MapObjType = Game.MapObjectType.Item; floorItem.X = X; floorItem.Y = Y; floorItem.Type = FloorItem.Drop; floorItem.OnFloor = Time32.Now; client.SendScreenSpawn(floorItem, true); client.Map.AddFloorItem(floorItem); } } #endregion } break;