|
|
أفضل جواب - كتبه Hassan Emprator
|
|
كود:
|
static void SocketItem(ItemUsage usage, Client.GameState client)
static void SocketItem(ItemUsage usage, Client.GameState client)
{
ConquerItem item = null;
ConquerItem[] Minors = null;
if (client.Inventory.TryGetItem(usage.UID, out item))
{
ushort pos = ItemPosition(item.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)
{
client.Send(new Message("Sorry can't make socket in this item !", System.Drawing.Color.Red, Message.Talk));
return;
}
Minors = new ConquerItem[usage.Batch.Length];
for (int i = 0; i < usage.Batch.Length; i++)
{
if (!client.Inventory.TryGetItem(usage.Batch[i], out Minors[i]))
return;
else
if (Minors[i].UID == item.UID)
return;
}
if (Minors.Length == 0)
return;
if (item.SocketOne == MrHassan.Game.Enums.Gem.NoSocket)
{
ushort cost = 1;
if (pos != ConquerItem.RightWeapon && pos != ConquerItem.LeftWeapon)
cost = 12;
if (client.Inventory.Contains(1088000, cost))
{
item.SocketOne = MrHassan.Game.Enums.Gem.EmptySocket;
item.Mode = MrHassan.Game.Enums.ItemMode.Update;
item.Send(client);
usage.dwParam = 1;
client.LoadItemStats();
Database.ConquerItemTable.UpdateSockets(item);
foreach (var xitem in Minors)
{
client.Inventory.Remove(xitem.UID, MrHassan.Game.Enums.ItemUse.Remove, true);
}
}
}
else if (item.SocketTwo == MrHassan.Game.Enums.Gem.NoSocket)
{
ushort cost = 5;
if (pos != ConquerItem.RightWeapon && pos != ConquerItem.LeftWeapon)
{
cost = 1;
var minor = Minors.FirstOrDefault();
if (minor.ID == 1200005)
{
if (client.Inventory.Contains(1200005, cost))
{
if (Kernel.Rate((double)30))
{
item.SocketTwo = MrHassan.Game.Enums.Gem.EmptySocket;
item.Mode = MrHassan.Game.Enums.ItemMode.Update;
item.Send(client);
usage.dwParam = 1;
client.LoadItemStats();
Database.ConquerItemTable.UpdateSockets(item);
}
else
{
usage.dwParam = 0;
client.Inventory.Add(1200006, 0, 1);
}
foreach (var xitem in Minors)
{
client.Inventory.Remove(xitem.UID, MrHassan.Game.Enums.ItemUse.Remove, true);
}
}
}
else if (minor.ID == 1200006)
{
cost = 7;
if (client.Inventory.Contains(1200006, cost))
{
item.SocketTwo = MrHassan.Game.Enums.Gem.EmptySocket;
item.Mode = MrHassan.Game.Enums.ItemMode.Update;
item.Send(client);
usage.dwParam = 1;
client.LoadItemStats();
Database.ConquerItemTable.UpdateSockets(item);
foreach (var xitem in Minors)
{
client.Inventory.Remove(xitem.UID, MrHassan.Game.Enums.ItemUse.Remove, true);
}
}
}
}
else
{
if (client.Inventory.Contains(1088000, cost))
{
item.SocketTwo = MrHassan.Game.Enums.Gem.EmptySocket;
item.Mode = MrHassan.Game.Enums.ItemMode.Update;
item.Send(client);
usage.dwParam = 1;
client.LoadItemStats();
Database.ConquerItemTable.UpdateSockets(item);
foreach (var xitem in Minors)
{
client.Inventory.Remove(xitem.UID, MrHassan.Game.Enums.ItemUse.Remove, true);
}
}
}
}
}
}
private static void SocketItem(EmbedScoket socket, Client.GameState client)
private static void SocketItem(EmbedScoket socket, Client.GameState client)
{
ConquerItem Item = null;
ConquerItem Gem = null;
if (client.Inventory.TryGetItem(socket.ItemUID, out Item) || client.Equipment.TryGetItem(socket.ItemUID) != null)
{
if (client.Equipment.TryGetItem(socket.ItemUID) != null)
Item = client.Equipment.TryGetItem(socket.ItemUID);
else if (!client.Inventory.TryGetItem(socket.ItemUID, out Item))
return;
ushort sock = ItemPosition(Item.ID);
if (sock == 7 || sock == 9 || sock > 11 && sock != 19)
{
client.Send(new Message("Sorry can't make socket in this item !", System.Drawing.Color.Red, Message.Talk));
return;
}
if (client.Inventory.TryGetItem(socket.GemUID, out Gem) || socket.Mode == EmbedScoket.Remove)
{
switch (socket.Mode)
{
case EmbedScoket.Add:
{
byte gemBase = (byte)(Gem.ID % 1000);
if (Enum.IsDefined(typeof(Game.Enums.Gem), gemBase))
{
switch (socket.Slot)
{
case EmbedScoket.SlotOne:
{
if ((byte)Item.SocketOne == 255)
{
var gem = (MrHassan.Game.Enums.Gem)(Gem.ID % 1000);
if ((Item.ID >= 201003 && Item.ID <= 201009) &&
gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem &&
gem != Enums.Gem.SuperThunderGem)
return;
if ((Item.ID >= 202003 && Item.ID <= 202009) &&
gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem &&
gem != Enums.Gem.SuperGloryGem)
return;
if ((Item.ID >= 204003 && Item.ID <= 204009) &&
(gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem &&
gem != Enums.Gem.SuperThunderGem))
return;
Item.SocketOne = gem;
Item.Mode = MrHassan.Game.Enums.ItemMode.Update;
Item.Send(client);
Database.ConquerItemTable.UpdateSockets(Item);
client.Inventory.Remove(Gem, MrHassan.Game.Enums.ItemUse.Remove);
break;
}
break;
}
case EmbedScoket.SlotTwo:
{
var gem = (MrHassan.Game.Enums.Gem)(Gem.ID % 1000);
if ((Item.ID >= 201003 && Item.ID <= 201009) &&
gem != Enums.Gem.NormalThunderGem && gem != Enums.Gem.RefinedThunderGem &&
gem != Enums.Gem.SuperThunderGem)
return;
if ((Item.ID >= 202003 && Item.ID <= 202009) &&
gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem &&
gem != Enums.Gem.SuperGloryGem)
return;
if ((Item.ID >= 204003 && Item.ID <= 204009) &&
(gem != Enums.Gem.NormalGloryGem && gem != Enums.Gem.RefinedGloryGem &&
gem != Enums.Gem.SuperGloryGem))
return;
if ((byte)Item.SocketOne > 0 && (byte)Item.SocketOne < 255)
{
if ((byte)Item.SocketTwo == 255)
{
Item.SocketTwo = gem;
Item.Mode = MrHassan.Game.Enums.ItemMode.Update;
Item.Send(client);
Database.ConquerItemTable.UpdateSockets(Item);
client.Inventory.Remove(Gem,
Game.Enums.ItemUse.Remove);
}
}
else if ((byte)Item.SocketOne == 255)
{
Item.SocketOne = gem;
Item.Mode = Game.Enums.ItemMode.Update;
Item.Send(client);
Database.ConquerItemTable.UpdateSockets(Item);
client.Inventory.Remove(Gem, Game.Enums.ItemUse.Remove);
}
break;
}
}
}
break;
}
case EmbedScoket.Remove:
{
switch (socket.Slot)
{
case EmbedScoket.SlotOne:
{
if ((byte)Item.SocketOne != 0)
{
Item.SocketOne = Game.Enums.Gem.EmptySocket;
if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
{
Item.SocketTwo = Item.SocketTwo;
Item.SocketOne = Game.Enums.Gem.EmptySocket;
}
Item.Mode = Game.Enums.ItemMode.Update;
Item.Send(client);
Database.ConquerItemTable.UpdateSockets(Item);
break;
}
break;
}
case EmbedScoket.SlotTwo:
{
if ((byte)Item.SocketTwo != 0 && (byte)Item.SocketTwo != 255)
{
Item.SocketTwo = Game.Enums.Gem.EmptySocket;
Item.Mode = MrHassan.Game.Enums.ItemMode.Update;
Item.Send(client);
Database.ConquerItemTable.UpdateSockets(Item);
}
else
{
if ((byte)Item.SocketOne != 0)
{
Item.SocketOne = Game.Enums.Gem.EmptySocket;
Item.Mode = Game.Enums.ItemMode.Update;
Item.Send(client);
Database.ConquerItemTable.UpdateSockets(Item);
}
}
break;
}
}
break;
}
}
}
client.Send(socket);
client.LoadItemStats();
}
}
| الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| ممكن حل | messi55 | مشكلات السيرفيرات كونكر الشخصيه | 6 | 2021-01-13 10:18 AM |
| ممكن حل | bahaa1 | مشكلات السيرفيرات كونكر الشخصيه | 3 | 2020-08-18 05:31 PM |
| ممكن حل | 469fb2a7c3 | مشكلات السيرفيرات كونكر الشخصيه | 5 | 2020-07-27 05:25 PM |
| ممكن حل | 469fb2a7c3 | مشكلات السيرفيرات كونكر الشخصيه | 5 | 2019-12-11 02:17 AM |
| ممكن طلب | loveosama | مشكلات السيرفيرات كونكر الشخصيه | 4 | 2019-09-10 02:10 AM |