حل مشكلة السوكت والدامج Forging soultion and socket
اليوم انهارده حل مشكلة السوكت والدامج
الحل مناسب لسورس عبدو ماتركس
الحل سوف يكون في باكت 1009
case 40:
{
uint ItemAdd = BitConverter.ToUInt32(packet, 8);ConquerItem item_new = null;
if (client.Inventory.TryGetItem(ItemAdd, out item_new))
{
var itemtype = item_new.GetItemType();
if (itemtype == ConquerItem.ItemTypes.GemID)
return;
ushort pos = ItemPosition(item_new.ID);
if (pos == ConquerItem.Bottle || pos == ConquerItem.Fan || pos == ConquerItem.Garment || pos == ConquerItem.LeftWeaponAccessory || pos == ConquerItem.RightWeaponAccessory || pos == ConquerItem.Steed || pos == ConquerItem.SteedArmor || pos == ConquerItem.SteedCrop || pos == ConquerItem.Tower || pos == ConquerItem.Wings)
{
client.Send(new Message("Sorry can't bless this item !", System.Drawing.Color.Red, Message.Talk));
return;
}
if (item_new.Bless >= 7)
return;
Queue<uint> amount = new Queue<uint>(packet[24]);for (ushort i = 91; i < 91 + 4 * usage.dwExtraInfo; i += 4)
{
uint uid = BitConverter.ToUInt32(packet, i);
if (client.Inventory.ContainsUID(uid))
amount.Enqueue(uid);
else
return;
}
byte oldbless = item_new.Bless;
if (item_new.Bless == 0 && amount.Count == 5)
item_new.Bless = 1;
else if (item_new.Bless == 1 && amount.Count == 1)
item_new.Bless = 3;
else if (item_new.Bless == 3 && amount.Count == 3)
item_new.Bless = 5;
else if (item_new.Bless == 5 && amount.Count == 5)
item_new.Bless = 7;
if (oldbless == item_new.Bless)
return;while (amount.Count != 0)
client.Inventory.Remove(amount.Dequeue(), Conquer_Online_Server.Game.Enums.ItemUse.Remove, true);item_new.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update;
item_new.Send(client);
usage.dwParam = 1;
Database.ConquerItemTable.UpdateBless(item_new);
}
client.Send(packet);
break;
}
وده التعديل الاخير
public uint[] Batch
{
get
{
uint[] items = new uint[dwExtraInfo];
for (int i = 0; i < dwExtraInfo; i++)
{
items[i] = BitConverter.ToUInt32(Buffer, 91 + 4 * i);
}
return items;
}
set
{
if (value != null)
{
dwExtraInfo = (uint)value.Length;
for (int i = 0; i < dwExtraInfo; i++)
{
WriteUInt32(value[i], 91 + 4 * i, Buffer);
}
}
}
}
{
get
{
uint[] items = new uint[dwExtraInfo];
for (int i = 0; i < dwExtraInfo; i++)
{
items[i] = BitConverter.ToUInt32(Buffer, 91 + 4 * i);
}
return items;
}
set
{
if (value != null)
{
dwExtraInfo = (uint)value.Length;
for (int i = 0; i < dwExtraInfo; i++)
{
WriteUInt32(value[i], 91 + 4 * i, Buffer);
}
}
}
}

لا يوجد تعليقات على " حل مشكلة السوكت والدامج Forging soultion and socket "