محمودمحمدسالم
2020-02-14, 08:02 PM
المشكلة دي قبلتي في سورس رايزو مهظم الناس بتقفل و لما تفتح العبه بتقف في نص الشريط و الصطف متبقاش معا
و بتحصل في متركس بس الاكونت بيفتح لاكن الصطف مبتبقاش معا
الحل هتخش علي ConquerItemTable.cs
هتيجي عند public static void LoadItems(Client.GameState client)
و تغيرو كله بي public static void LoadItems(Client.GameState client)
{
client.Entity.StorageItems = new Dictionary<uint, ConquerItem>();
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("items").Where("EntityID", client.Entity.UID))
using (var reader = new MySqlReader(cmd))
{
while (reader.Read())
{
var item = deserialzeItem(reader);
if (item == null)
continue;
if (!ConquerItemInformation.BaseInformations.Contains Key(item.ID))
continue;
HandleInscribing(item, client);
if (item.InWardRobe)
{
client.WardRobe.Load(item);
continue;
}
ItemAddingTable.GetAddingsForItem(item);
if ((byte)Network.PacketHandler.GetPositionFromID(ite m.ID) == ConquerItem.Garment || (byte)Network.PacketHandler.GetPositionFromID(item .UID) == ConquerItem.SteedArmor || (byte)Network.PacketHandler.GetPositionFromID(item .UID) == ConquerItem.Bottle)
{
if (item.SocketOne != Game.Enums.Gem.NoSocket || item.SocketTwo != Game.Enums.Gem.NoSocket)
{
item.SocketOne = Game.Enums.Gem.NoSocket;
item.SocketTwo = Game.Enums.Gem.NoSocket;
UpdateSockets(item);
}
}
#region Checking Wind & Tower & Fan & Crop
/*if (PacketHandler.IsWing(item.ID))
{
if (item.SocketOne != Enums.Gem.EmptySocket || item.SocketOne != Enums.Gem.NoSocket)
{
if (item.SocketOne != Enums.Gem.NormalThunderGem || item.SocketOne != Enums.Gem.RefinedThunderGem || item.SocketOne != Enums.Gem.SuperThunderGem)
{
item.SocketOne = Enums.Gem.EmptySocket;
}
if (item.SocketTwo != Enums.Gem.EmptySocket || item.SocketTwo != Enums.Gem.NoSocket)
{
if (item.SocketTwo != Enums.Gem.NormalGloryGem || item.SocketTwo != Enums.Gem.RefinedGloryGem || item.SocketTwo != Enums.Gem.SuperGloryGem)
{
item.SocketTwo = Enums.Gem.EmptySocket;
}
}
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1; Database.ConquerItemTable.UpdateBless(item);
}
}
if (PacketHandler.IsTower(item.ID))
{
if (item.SocketOne != Enums.Gem.EmptySocket || item.SocketOne != Enums.Gem.NoSocket)
{
if (item.SocketOne != Enums.Gem.NormalGloryGem || item.SocketOne != Enums.Gem.RefinedGloryGem || item.SocketOne != Enums.Gem.SuperGloryGem)
{
item.SocketOne = Enums.Gem.EmptySocket;
}
if (item.SocketTwo != Enums.Gem.EmptySocket || item.SocketTwo != Enums.Gem.NoSocket)
{
if (item.SocketTwo != Enums.Gem.NormalGloryGem || item.SocketTwo != Enums.Gem.RefinedGloryGem || item.SocketTwo != Enums.Gem.SuperGloryGem)
{
item.SocketTwo = Enums.Gem.EmptySocket;
}
}
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1;
Database.ConquerItemTable.UpdateBless(item);
}
}
if (PacketHandler.IsFan(item.ID))
{
if (item.SocketOne != Enums.Gem.EmptySocket || item.SocketOne != Enums.Gem.NoSocket)
{
if (item.SocketOne != Enums.Gem.NormalThunderGem || item.SocketOne != Enums.Gem.RefinedThunderGem || item.SocketOne != Enums.Gem.SuperThunderGem)
{
item.SocketOne = Enums.Gem.EmptySocket;
}
if (item.SocketTwo != Enums.Gem.EmptySocket || item.SocketTwo != Enums.Gem.NoSocket)
{
if (item.SocketTwo != Enums.Gem.NormalThunderGem || item.SocketTwo != Enums.Gem.RefinedThunderGem || item.SocketTwo != Enums.Gem.SuperThunderGem)
{
item.SocketTwo = Enums.Gem.EmptySocket;
}
}
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1;
Database.ConquerItemTable.UpdateBless(item);
}
}
if (PacketHandler.IsCrop(item.ID))
{
if (item.SocketTwo != Enums.Gem.NoSocket)
{
item.SocketTwo = Enums.Gem.NoSocket;
if (item.SocketTwo != Enums.Gem.NoSocket)
item.SocketTwo = Enums.Gem.NoSocket;
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1;
Database.ConquerItemTable.UpdateBless(item);
}
}*/
#endregion
#region WareHouse
if (item.Warehouse == 0)//mr.ConquerVirusX
{
switch (item.Position)
{
case 0:
{
client.Inventory.Add(item, Game.Enums.ItemUse.None);
break;
}
case 101:
case 102:
case 103:
case 104:
case 105:
case 121:
case 122:
case 123:
case 124:
case 125:
case 211:
{
if (item.Position == 101)
{
client.Entity.Sacrifice = reader.ReadUInt16("Skill0_40");
item.Skill0_40 = reader.ReadUInt16("Skill0_40");
}
item.SkillID = RuneItems.RuneSkillID(item.ID);
client.Entity.RuneItem.Add(item.UID, item);
item.Mode = Game.Enums.ItemMode.Default;
item.Send(client);
ItemUsage ItemRune = new ItemUsage(true);
ItemRune.UID = item.UID;
ItemRune.ID = 61;
client.Send(ItemRune);
break;
}
default:
{
if (item.Position > 40) continue;
if (client.Equipment.Free((byte)item.Position))
client.Equipment.Add(item, Game.Enums.ItemUse.None);
else
{
if (client.Inventory.Count < 40)
{
item.Position = 0;
client.Inventory.Add(item, Game.Enums.ItemUse.None);
UpdatePosition(item);
}
}
break;
}
}
}
else
{
if (item != null)
{
ConquerVirusX.Game.ConquerStructures.Warehouse.War ehouseID whID = (Game.ConquerStructures.Warehouse.WarehouseID)item .Warehouse;
if (client.Warehouses.ContainsKey(whID))
{
client.Warehouses[whID].Add(item);
}
else
{
using (var cmdx = new MySqlCommand(MySqlCommandType.SELECT).Select("items").Where("Uid", (uint)item.Warehouse))
using (var readerx = new MySqlReader(cmdx))
if (readerx.Read())
{
client.Warehouses.Add((ConquerVirusX.Game.ConquerS tructures.Warehouse.WarehouseID)(uint)item.Warehou se, new ConquerVirusX.Game.ConquerStructures.Warehouse(cli ent, (ConquerVirusX.Game.ConquerStructures.Warehouse.Wa rehouseID)(uint)item.Warehouse));
client.Warehouses[(ConquerVirusX.Game.ConquerStructures.Warehouse.Wa rehouseID)(uint)whID].Add(item);
}
}
}
}
#endregion*WareHouse*
if (item.ID == 720828)
{
string str = reader.ReadString("agate");
uint key = 0;
string[] strArray = str.Split(new char[] { '#' });
foreach (string str2 in strArray)
{
if (str2.Length > 6)
{
item.Agate_map.Add(key, str2);
key++;
}
}
}
}
}
}
و بكدا المشكلة اتحلت
محدش ردي يسعدني خالص في الموضوع ده بتوفيق للجميع
و بتحصل في متركس بس الاكونت بيفتح لاكن الصطف مبتبقاش معا
الحل هتخش علي ConquerItemTable.cs
هتيجي عند public static void LoadItems(Client.GameState client)
و تغيرو كله بي public static void LoadItems(Client.GameState client)
{
client.Entity.StorageItems = new Dictionary<uint, ConquerItem>();
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("items").Where("EntityID", client.Entity.UID))
using (var reader = new MySqlReader(cmd))
{
while (reader.Read())
{
var item = deserialzeItem(reader);
if (item == null)
continue;
if (!ConquerItemInformation.BaseInformations.Contains Key(item.ID))
continue;
HandleInscribing(item, client);
if (item.InWardRobe)
{
client.WardRobe.Load(item);
continue;
}
ItemAddingTable.GetAddingsForItem(item);
if ((byte)Network.PacketHandler.GetPositionFromID(ite m.ID) == ConquerItem.Garment || (byte)Network.PacketHandler.GetPositionFromID(item .UID) == ConquerItem.SteedArmor || (byte)Network.PacketHandler.GetPositionFromID(item .UID) == ConquerItem.Bottle)
{
if (item.SocketOne != Game.Enums.Gem.NoSocket || item.SocketTwo != Game.Enums.Gem.NoSocket)
{
item.SocketOne = Game.Enums.Gem.NoSocket;
item.SocketTwo = Game.Enums.Gem.NoSocket;
UpdateSockets(item);
}
}
#region Checking Wind & Tower & Fan & Crop
/*if (PacketHandler.IsWing(item.ID))
{
if (item.SocketOne != Enums.Gem.EmptySocket || item.SocketOne != Enums.Gem.NoSocket)
{
if (item.SocketOne != Enums.Gem.NormalThunderGem || item.SocketOne != Enums.Gem.RefinedThunderGem || item.SocketOne != Enums.Gem.SuperThunderGem)
{
item.SocketOne = Enums.Gem.EmptySocket;
}
if (item.SocketTwo != Enums.Gem.EmptySocket || item.SocketTwo != Enums.Gem.NoSocket)
{
if (item.SocketTwo != Enums.Gem.NormalGloryGem || item.SocketTwo != Enums.Gem.RefinedGloryGem || item.SocketTwo != Enums.Gem.SuperGloryGem)
{
item.SocketTwo = Enums.Gem.EmptySocket;
}
}
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1; Database.ConquerItemTable.UpdateBless(item);
}
}
if (PacketHandler.IsTower(item.ID))
{
if (item.SocketOne != Enums.Gem.EmptySocket || item.SocketOne != Enums.Gem.NoSocket)
{
if (item.SocketOne != Enums.Gem.NormalGloryGem || item.SocketOne != Enums.Gem.RefinedGloryGem || item.SocketOne != Enums.Gem.SuperGloryGem)
{
item.SocketOne = Enums.Gem.EmptySocket;
}
if (item.SocketTwo != Enums.Gem.EmptySocket || item.SocketTwo != Enums.Gem.NoSocket)
{
if (item.SocketTwo != Enums.Gem.NormalGloryGem || item.SocketTwo != Enums.Gem.RefinedGloryGem || item.SocketTwo != Enums.Gem.SuperGloryGem)
{
item.SocketTwo = Enums.Gem.EmptySocket;
}
}
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1;
Database.ConquerItemTable.UpdateBless(item);
}
}
if (PacketHandler.IsFan(item.ID))
{
if (item.SocketOne != Enums.Gem.EmptySocket || item.SocketOne != Enums.Gem.NoSocket)
{
if (item.SocketOne != Enums.Gem.NormalThunderGem || item.SocketOne != Enums.Gem.RefinedThunderGem || item.SocketOne != Enums.Gem.SuperThunderGem)
{
item.SocketOne = Enums.Gem.EmptySocket;
}
if (item.SocketTwo != Enums.Gem.EmptySocket || item.SocketTwo != Enums.Gem.NoSocket)
{
if (item.SocketTwo != Enums.Gem.NormalThunderGem || item.SocketTwo != Enums.Gem.RefinedThunderGem || item.SocketTwo != Enums.Gem.SuperThunderGem)
{
item.SocketTwo = Enums.Gem.EmptySocket;
}
}
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1;
Database.ConquerItemTable.UpdateBless(item);
}
}
if (PacketHandler.IsCrop(item.ID))
{
if (item.SocketTwo != Enums.Gem.NoSocket)
{
item.SocketTwo = Enums.Gem.NoSocket;
if (item.SocketTwo != Enums.Gem.NoSocket)
item.SocketTwo = Enums.Gem.NoSocket;
Database.ConquerItemTable.UpdateSockets(item);
}
if (item.Bless > 1)
{
item.Bless = 1;
Database.ConquerItemTable.UpdateBless(item);
}
}*/
#endregion
#region WareHouse
if (item.Warehouse == 0)//mr.ConquerVirusX
{
switch (item.Position)
{
case 0:
{
client.Inventory.Add(item, Game.Enums.ItemUse.None);
break;
}
case 101:
case 102:
case 103:
case 104:
case 105:
case 121:
case 122:
case 123:
case 124:
case 125:
case 211:
{
if (item.Position == 101)
{
client.Entity.Sacrifice = reader.ReadUInt16("Skill0_40");
item.Skill0_40 = reader.ReadUInt16("Skill0_40");
}
item.SkillID = RuneItems.RuneSkillID(item.ID);
client.Entity.RuneItem.Add(item.UID, item);
item.Mode = Game.Enums.ItemMode.Default;
item.Send(client);
ItemUsage ItemRune = new ItemUsage(true);
ItemRune.UID = item.UID;
ItemRune.ID = 61;
client.Send(ItemRune);
break;
}
default:
{
if (item.Position > 40) continue;
if (client.Equipment.Free((byte)item.Position))
client.Equipment.Add(item, Game.Enums.ItemUse.None);
else
{
if (client.Inventory.Count < 40)
{
item.Position = 0;
client.Inventory.Add(item, Game.Enums.ItemUse.None);
UpdatePosition(item);
}
}
break;
}
}
}
else
{
if (item != null)
{
ConquerVirusX.Game.ConquerStructures.Warehouse.War ehouseID whID = (Game.ConquerStructures.Warehouse.WarehouseID)item .Warehouse;
if (client.Warehouses.ContainsKey(whID))
{
client.Warehouses[whID].Add(item);
}
else
{
using (var cmdx = new MySqlCommand(MySqlCommandType.SELECT).Select("items").Where("Uid", (uint)item.Warehouse))
using (var readerx = new MySqlReader(cmdx))
if (readerx.Read())
{
client.Warehouses.Add((ConquerVirusX.Game.ConquerS tructures.Warehouse.WarehouseID)(uint)item.Warehou se, new ConquerVirusX.Game.ConquerStructures.Warehouse(cli ent, (ConquerVirusX.Game.ConquerStructures.Warehouse.Wa rehouseID)(uint)item.Warehouse));
client.Warehouses[(ConquerVirusX.Game.ConquerStructures.Warehouse.Wa rehouseID)(uint)whID].Add(item);
}
}
}
}
#endregion*WareHouse*
if (item.ID == 720828)
{
string str = reader.ReadString("agate");
uint key = 0;
string[] strArray = str.Split(new char[] { '#' });
foreach (string str2 in strArray)
{
if (str2.Length > 6)
{
item.Agate_map.Add(key, str2);
key++;
}
}
}
}
}
}
و بكدا المشكلة اتحلت
محدش ردي يسعدني خالص في الموضوع ده بتوفيق للجميع