and here is my packets
| public static byte[] AddItem(Game.Item I, byte Pos) |
| { |
| byte[] Packet = new byte[8 + 48]; |
| COPacket P = new COPacket(Packet); |
| try |
| { |
| P.WriteUshortAddPos2((ushort)(Packet.Length - 8)); |
| P.WriteUshortAddPos2((ushort)0x3f0); |
| P.WriteUintAddPos4(I.UID); |
| P.WriteUintAddPos4(I.ID); |
| P.WriteUshortAddPos2(I.CurDur); |
| P.WriteUshortAddPos2(I.MaxDur); |
| P.WriteUshortAddPos2(1); |
| P.WriteUshortAddPos2(Pos); |
| P.WriteUintAddPos4(I.TalismanProgress); |
| P.WriteByteAddPos1((byte)I.Soc1); |
| P.WriteByteAddPos1((byte)I.Soc2); |
| P.WriteUshortAddPos2((ushort)I.Effect); |
| P.WriteByteAddPos1(I.Plus); |
| P.WriteByteAddPos1(I.Bless); |
| if (I.FreeItem) |
| P.WriteByteAddPos1(1); |
| else |
| P.WriteByteAddPos1(0); |
| P.WriteByteAddPos1(I.Enchant); |
| P.WriteUintAddPos4(0); |
| P.WriteUshortAddPos2(0); |
| //P.Move(6); |
| if (I.Locked == 1) |
| P.WriteUshortAddPos2(1); |
| else if (I.Locked == 2) |
| P.WriteUshortAddPos2(1); |
| else |
| P.WriteUshortAddPos2(0); |
| if (I.Color == 0) |
| I.Color = (Game.Item.ArmorColor)new Random().Next(1, 9); |
| P.WriteUintAddPos4((uint)I.Color); |
| P.WriteUintAddPos4(I.Progress); |
| } |
| catch (Exception Exc) { Program.WriteLine(Exc); } |
| return P.AddTQServer8Byte(); |
| } |
and this code for get items free
PHP Code:
case "#item":
{
uint ID = 0;
foreach (DatabaseItem DI in Database.DatabaseItems.Values)
if (DI.Name == Cmd[1])
{
ID = DI.ID;
Game.ItemIDManipulation e = new Game.ItemIDManipulation(ID);
Game.Item.ItemQuality Quality = e.Quality;
if (Cmd[2].ToLower() == "refined") Quality = Game.Item.ItemQuality.Refined;
else if (Cmd[2].ToLower() == "unique") Quality = Game.Item.ItemQuality.Unique;
else if (Cmd[2].ToLower() == "elite") Quality = Game.Item.ItemQuality.Elite;
else if (Cmd[2].ToLower() == "super") Quality = Game.Item.ItemQuality.Super;
else if (Cmd[2].ToLower() == "simple") Quality = Game.Item.ItemQuality.Simple;
else if (Cmd[2].ToLower() == "fixed") Quality = Game.Item.ItemQuality.Fixed;
else if (Cmd[2].ToLower() == "poor") Quality = Game.Item.ItemQuality.Poor;
else if (Cmd[2].ToLower() == "normal") Quality = Game.Item.ItemQuality.Normal;
if (e.Quality == Quality)
break;
}
if (ID != 0 && GC.MyChar.Inventory.Count < 40)
{
Game.ItemIDManipulation e = new Game.ItemIDManipulation(ID);
Game.Item.ItemQuality Quality = e.Quality;
bool change = true;
if (Cmd[2].ToLower() == "refined") Quality = Game.Item.ItemQuality.Refined;
else if (Cmd[2].ToLower() == "unique") Quality = Game.Item.ItemQuality.Unique;
else if (Cmd[2].ToLower() == "elite") Quality = Game.Item.ItemQuality.Elite;
else if (Cmd[2].ToLower() == "super") Quality = Game.Item.ItemQuality.Super;
else if (Cmd[2].ToLower() == "simple") Quality = Game.Item.ItemQuality.Simple;
else if (Cmd[2].ToLower() == "fixed") Quality = Game.Item.ItemQuality.Fixed;
else if (Cmd[2].ToLower() == "poor") Quality = Game.Item.ItemQuality.Poor;
else if (Cmd[2].ToLower() == "normal") Quality = Game.Item.ItemQuality.Normal;
else change = false;
if (change)
e.QualityChange(Quality);
ID = e.ToID();
if (!Database.DatabaseItems.ContainsKey(ID))
{
return;
}
Game.Item I = new NewestCOServer.Game.Item();
if (e.Part(0, 2) == 11 || e.Part(0, 2) == 13 || e.Part(0, 3) == 123 || e.Part(0, 3) == 141 || e.Part(0, 3) == 142)
I.Color = NewestCOServer.Game.Item.ArmorColor.Orange;
I.FreeItem = true;
I.ID = ID;
I.UID = (uint)Program.Rnd.Next(10000000);
try
{
I.MaxDur = I.DBInfo.Durability;
I.CurDur = I.MaxDur;
}
catch (Exception Exc) { Program.WriteLine(Exc); }
try
{
I.Plus = byte.Parse(Cmd[3]);
}
catch { }
try
{
I.Bless = byte.Parse(Cmd[4]);
}
catch { }
try
{
I.Enchant = byte.Parse(Cmd[5]);
}
catch { }
try
{
I.Soc1 = (Game.Item.Gem)byte.Parse(Cmd[6]);
}
catch { }
try
{
I.Soc2 = (Game.Item.Gem)byte.Parse(Cmd[7]);
}
catch { }
try
{
if (Cmd[8] == "Poison")
{
I.Effect = NewestCOServer.Game.Item.RebornEffect.Poison;
}
else if (Cmd[8] == "HP")
{
I.Effect = NewestCOServer.Game.Item.RebornEffect.HP;
}
else if (Cmd[8] == "MP")
{
I.Effect = NewestCOServer.Game.Item.RebornEffect.MP;
}
else if (Cmd[8] == "Shield")
{
I.Effect = NewestCOServer.Game.Item.RebornEffect.Shield;
}
else if (Cmd[8] == "Horsie")
{
I.Effect = NewestCOServer.Game.Item.RebornEffect.Horsie;
}
else
I.Effect = NewestCOServer.Game.Item.RebornEffect.None;
}
catch { }
GC.MyChar.AddFullItem(I.ID, I.Bless, I.Plus, I.Enchant, I.Soc1, I.Soc2, I.Color, I.Progress, I.TalismanProgress, I.Effect, I.FreeItem, I.CurDur, I.MaxDur, I.Suspicious, I.Locked, I.LockedDays, I.RBG[0], I.RBG[1], I.RBG[2], I.RBG[3]);
}
break;
}






