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;






