احصائياتى

الردود
0

المشاهدات
26
 
Hazem
.:: المدير العام::.

    متواجد  الان

المشاركات
2,308

+التقييم
0.84

تاريخ التسجيل
Apr 2019

الاقامة
Egypt

نظام التشغيل
windows 7

رقم العضوية
1
2021-08-16, 02:02 PM
المشاركة 1
2021-08-16, 02:02 PM
المشاركة 1
افتراضي بسم الله الرحمن الرحيم معانا انهارد سيستم الجرمنتات كامل بنسبه 98% السيستم بنظام سور



كود:
bin/Debug/database 

وحط فيهم الملفين دول

عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع

بعد كده هتخش هنا Database
وتعمل كلاس جديد باسم Wrap.cs

وامسح كل الي فيه وبدلو بده

كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 
Conquer_Online_Server.Database
{
    public class 
WarDrobe
    
{
        public static 
Dictionary<StorageType, StorageItems> Storage = new Dictionary<StorageType, StorageItems>();
        public static 
Dictionary<string, Wrap> Items = new Dictionary<string, Wrap>();
        public static 
void Load()
        {
            
string File = "database\\WrapTypeData.ini";
            
IniFile IniFile = new IniFile(File);
            var 
Count = IniFile.ReadUInt32("Wrap", "WrapCount");
            for (
uint i = 0; i < Count; i++)
            {
                
Wrap Wrap = new Wrap();
                
Wrap.ID = IniFile.ReadUInt16(i.ToString(), "WrapID");
                
Wrap.ItemID = IniFile.ReadUInt32(i.ToString(), "ItemType");
                
Wrap.Type = (WrapType)IniFile.ReadByte(i.ToString(), "WrapType", 0);
                var 
item = Database.ConquerItemInformation.BaseInformations.Values.Where(p => p.ID == Wrap.ItemID).FirstOrDefault();
                if (
item != null)
                {
                    if (!
Items.ContainsKey(item.Name.ToLower()))
                    {
                        
Items.Add(item.Name.ToLower(), Wrap);
                    }
                }
                else
                {
                    
Console.WriteLine("[Wrap] Couldn't load item:" + Wrap.ItemID);
                }
            }
            
LoadStorage();
        }
        public static 
void LoadStorage()
        {
            
string File = "database\\Storage.ini";
            
IniFile IniFile = new IniFile(File);
            var 
Count = IniFile.ReadUInt32("Storage", "StorageTypeCount");
            for (
uint i = 1; i < Count + 1; i++)
            {

                
StorageItems item = new StorageItems();
                
item.Type = (StorageType)IniFile.ReadUInt16(i.ToString(), "Type");
                
item.ID = IniFile.ReadUInt32(i.ToString() + "-1", "ID");
                
Storage.Add(item.Type, item);
            }
        }
        public 
struct Wrap
        
{
            public 
ushort ID;
            public 
WrapType Type;
            public 
uint ItemID;
        }
        public 
enum WrapType : byte
        
{
            
Garment = 1,
            
Mount = 2
        
}
        public 
struct StorageItems
        
{
            public 
StorageType Type;
            public 
uint ID;
            public 
ulong Time;
        }
        public 
enum StorageType : uint
        
{
            
OverLord = 1,
            
GrandMaster = 2018,
            
RisingStar = 2001,
            
Victor = 2002,
            
Conqueror = 2003,
            
Talent = 2004,
            
Fashionist = 2005,
            
SwiftChaser = 2006,
            
Fairy = 2020,
            
Goddess = 2021,
            
Beauty = 2022,
            
Scholar = 2023,
            
Handsome = 2024,
            
Wise = 2025,
            
EarthKnight = 2028,
            
SkyKnight = 2029,
            
GloryKnight = 2030,
            
Paladin = 2031,
            
SolarDragon = 4001,
            
InfernalBeast = 6001,
            
RadiantWings = 6002,
            
StarlightWings = 6003,
            
MoonlightWings = 6004,
            
FairyWings = 6005
        
}
    }

} 

بعد كده هتخش المسار ده


كود:
Game/ConquerStructures 

وتعمل كلاس جديد باسم
WarDrobe.cs


وامسح كل الي فيه وبدله بده

كود:
using System;
using System.Linq;
using Conquer_Online_Server.Client;
using System.Collections.Generic;
using Conquer_Online_Server.Network.GamePackets;

namespace 
Conquer_Online_Server.Game.ConquerStructures
{
    public 
unsafe class WarDrobe
    
{
        
Dictionary<uint, ConquerItem> WarDrobeItems;
        
ConquerItem[] objects;
        
Client.GameState Owner;
        public 
WarDrobe(Client.GameState client)
        {
            
Owner = client;
            
WarDrobeItems = new Dictionary<uint, ConquerItem>();
            
objects = new ConquerItem[0];
        }
        public 
ConquerItem[] Objects
        
{
            
get { return objects; }
        }
        public 
byte Count
        
{
            
get { return (byte)Objects.Length; }
        }
        public 
bool Remove(ConquerItem item)
        {
            if (
WarDrobeItems.ContainsKey(item.UID))
            {
                if (
item.Position == 0)
                {
                    
item.IsWrap = false;
                    
WarDrobeItems.Remove(item.UID);
                    
objects = WarDrobeItems.Values.ToArray();
                    
item.Mode = Enums.ItemMode.Default;
                    
Database.ConquerItemTable.UpdateWrap(item);
                    
Owner.Inventory.Add(item, Enums.ItemUse.Move);
                    
Owner.Send(item);
                    return 
true;
                }
            }
            return 
false;
        }
        public 
bool TryGetItem(uint UID, out ConquerItem item)
        {
            return 
WarDrobeItems.TryGetValue(UID, out item);
        }
        public 
bool Add(ConquerItem item)
        {

            if (!
WarDrobeItems.ContainsKey(item.UID))
            {
                var 
Info = Database.ConquerItemInformation.BaseInformations.Values.Where(p => p.ID == item.ID).FirstOrDefault();
                if (
Info != null)
                {
                    if (
Database.WarDrobe.Items.ContainsKey(Info.Name.ToLower()))
                    {
                        
item.IsWrap = true;
                        
WarDrobeItems.Add(item.UID, item);
                        
objects = WarDrobeItems.Values.ToArray();
                        
item.Mode = Enums.ItemMode.Default;
                        
Database.ConquerItemTable.UpdateWrap(item);
                        
Owner.Inventory.Remove(item, Enums.ItemUse.IntoWrap);
                        return 
true;
                    }
                    else
                    {
                        
Owner.Entity.SendSysMesage("Couldn't found this item into our database");
                    }
                }
                else
                {
                    
Owner.Entity.SendSysMesage("Couldn't found this item into our database");
                }
            }
            return 
false;
        }
    }
} 

بعد كده هتخش المسار ده بردو

كود:
Network/GamePackets 

وتعمل كلاس جديد باسمWarDrobe.cs

وامسح كل الي فيه وبدلو بده

كود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ProtoBuf;
using System.IO;
namespace 
Conquer_Online_Server.Network.GamePackets
{
    [
ProtoContract]
    public class 
ItemPacket
    
{
        [
ProtoMember(1, IsRequired = true)]
        public 
uint UID;
        [
ProtoMember(2, IsRequired = true)]
        public 
uint ID;
        [
ProtoMember(3, IsRequired = true)]
        public 
uint Unknowen1;
        [
ProtoMember(4, IsRequired = true)]
        public 
uint Socket1;
        [
ProtoMember(5, IsRequired = true)]
        public 
uint Socket2;
        [
ProtoMember(6, IsRequired = true)]
        public 
uint Unknowen4;
        [
ProtoMember(7, IsRequired = true)]
        public 
uint Unknowen5;
        [
ProtoMember(8, IsRequired = true)]
        public 
uint Plus;
        [
ProtoMember(9, IsRequired = true)]
        public 
uint Bless;
        [
ProtoMember(10, IsRequired = true)]
        public 
uint Bound;
        [
ProtoMember(11, IsRequired = true)]
        public 
uint HP;
        [
ProtoMember(12, IsRequired = true)]
        public 
uint Unknowen10;
        [
ProtoMember(13, IsRequired = true)]
        public 
uint Unknowen11;
        [
ProtoMember(14, IsRequired = true)]
        public 
uint Lock;
        [
ProtoMember(15, IsRequired = true)]
        public 
uint Unknowen13;
        [
ProtoMember(16, IsRequired = true)]
        public 
uint Unknowen14;
        [
ProtoMember(17, IsRequired = true)]
        public 
uint Unknowen15;
        [
ProtoMember(18, IsRequired = true)]
        public 
uint Unknowen16;
        [
ProtoMember(19, IsRequired = true)]
        public 
uint Unknowen17;
        [
ProtoMember(20, IsRequired = true)]
        public 
uint Unknowen18;
        [
ProtoMember(21, IsRequired = true)]
        public 
uint Unknowen19;
        [
ProtoMember(22, IsRequired = true)]
        public 
uint Dura;
        [
ProtoMember(23, IsRequired = true)]
        public 
uint MaxDura;

    }
    [
ProtoContract]
    public class 
WarDrobePacket
    
{
        [
ProtoMember(1, IsRequired = true)]
        public 
WarDrobe.ActionType Action;
        [
ProtoMember(2, IsRequired = true)]
        public 
uint UID;
        [
ProtoMember(3, IsRequired = true)]
        public 
uint Data;
        [
ProtoMember(4, IsRequired = true)]
        public 
uint Unknowen;
    }
    [
ProtoContract]
    public class 
StoragePacket
    
{
        [
ProtoMember(1, IsRequired = true)]
        public 
uint Action;
        [
ProtoMember(2, IsRequired = true)]
        public 
uint Param;
        [
ProtoMember(3, IsRequired = true)]
        public 
uint Param1;
        [
ProtoMember(4, IsRequired = true)]
        public 
ulong Param2;
        [
ProtoMember(5, IsRequired = true)]
        public 
ulong Param3;
    }
    public class 
WarDrobe
    
{
        public 
enum ActionType : uint
        
{
            Default = 
0,
            
Add = 1,
            
Remove = 2,
            
Equip = 5,
            
UnEquip = 6
        
}
        public 
ActionType Action;
        public 
uint UID;
        public 
uint Data;
        public 
uint Unknowen;
        public 
byte[] Buffer;
        public 
WarDrobe(byte[] buff)
        {
            
Buffer = buff;
        }
        public 
void Deserialize()
        {
            
byte[] Packet = new byte[Buffer.Length - 12];
            
System.Buffer.BlockCopy(Buffer, 4, Packet, 0, Buffer.Length - 12);
            var 
result = Serializer.Deserialize<WarDrobePacket>(new MemoryStream(Packet));
            
this.Action = result.Action;
            
this.UID = result.UID;
            
this.Data = result.Data;
            
this.Unknowen = result.Unknowen;

        }
        public 
void Serialize()
        {
            
WarDrobePacket Packet = new WarDrobePacket();
            
Packet.Action = this.Action;
            
Packet.UID = this.UID;
            
Packet.Data = this.Data;
            
Packet.Unknowen = this.Unknowen;
            
byte[] buffer;
            
using (var ms = new MemoryStream())
            {
                
Serializer.Serialize(ms, Packet);
                
buffer = ms.ToArray();
            }
            
byte[] Array = new byte[buffer.Length + 12];
            
System.Buffer.BlockCopy(buffer, 0, Array, 4, buffer.Length);
            
Writer.WriteUInt16((ushort)(Array.Length - 8), 0, Array);
            
Writer.WriteUInt16(3300, 2, Array);
            
this.Buffer = Array;
        }
        public static 
void Process(byte[] Data, Client.GameState client)
        {

            
WarDrobe Packet = new WarDrobe(Data);
            
Packet.Deserialize();
            switch (
Packet.Action)
            {
                case 
ActionType.Add:
                    {
                        
ConquerItem item;
                        if (
client.Inventory.TryGetItem(Packet.UID, out item))
                        {
                            if (
client.WarDrobe.Add(item))
                            {
                                
WarDrobe res = new WarDrobe(null);
                                
res.Action = ActionType.Add;
                                
res.UID = item.UID;
                                
res.Data = item.ID;
                                
res.Unknowen = 0;
                                
res.Serialize();
                                
client.Send(res.Buffer);
                            }
                        }
                        break;
                    }
                case 
ActionType.Remove:
                    {
                        
ConquerItem item = null;
                        if (
client.WarDrobe.TryGetItem(Packet.UID, out item))
                        {
                            if (
client.WarDrobe.Remove(item))
                            {
                                
WarDrobe res = new WarDrobe(null);
                                
res.Action = ActionType.Remove;
                                
res.UID = item.UID;
                                
res.Data = item.ID;
                                
res.Unknowen = 0;
                                
res.Serialize();
                                
client.Send(res.Buffer);
                            }
                        }
                        break;
                    }
                case 
ActionType.Equip:
                    {
                        
ConquerItem item = null;
                        if (
client.WarDrobe.TryGetItem(Packet.UID, out item))
                        {
                            if (
PacketHandler.Equipable(item, client))
                            {
                                
WarDrobe res = new WarDrobe(null);
                                
res.Action = ActionType.Equip;
                                
res.UID = item.UID;
                                
res.Data = item.ID;
                                
res.Unknowen = 0;
                                
res.Serialize();
                                
client.Send(res.Buffer);
                                
ItemUsage usage = new ItemUsage(true);
                                
usage.dwParam = Packet.Data;
                                
usage.UID = Packet.UID;
                                
PacketHandler.EquipItem(usage, client);

                            }
                        }
                        break;
                    }
                case 
ActionType.UnEquip:
                    {
                        
ConquerItem item = null;
                        if (
client.WarDrobe.TryGetItem(Packet.UID, out item))
                        {
                            
WarDrobe res = new WarDrobe(null);
                            
res.Action = ActionType.UnEquip;
                            
res.UID = item.UID;
                            
res.Data = item.ID;
                            
res.Unknowen = 0;
                            
res.Serialize();
                            
client.Send(res.Buffer);
                            
ItemUsage usage = new ItemUsage(true);
                            
usage.dwParam = Packet.Data;
                            
PacketHandler.UnequipItem(usage, client);
                        }
                        break;
                    }
                default:
                    {
                        
client.Entity.SendSysMesage("3300: unknowen type " + Packet.Action);
                        break;
                    }
            }
        }
        public static 
void SendItems(Client.GameState client)
        {

            var 
Items = client.WarDrobe.Objects.ToList();
            
int i = 0;
            
i = Items.Count;
        
laple_121:
            
byte[] buffer = null;
            
int done = 1;
            List<
ItemPacket> packets = new List<ItemPacket>();
            while (
i > 0 && done < 10)
            {
                var 
Wrap = client.WarDrobe.Objects[i - 1];
                if (
Wrap.Position == 0)
                {
                    
ItemPacket item = new ItemPacket();
                    
item.ID = Wrap.ID;
                    
item.Socket1 = (uint)Wrap.SocketOne;
                    
item.Socket2 = (uint)Wrap.SocketTwo;
                    
item.Plus = (uint)Wrap.Plus;
                    
item.Bless = (uint)Wrap.Bless;
                    
item.Bound = (uint)(Wrap.Bound ? 1 : 0);
                    
item.HP = Wrap.Enchant;
                    
item.Lock = Wrap.Lock;
                    
item.UID = Wrap.UID;
                    
item.Dura = Wrap.Durability;
                    
item.MaxDura = Wrap.MaximDurability;
                    
packets.Add(item);
                }
                
done++;
                
i--;
            }
            
WarDrobe wardrobe = new WarDrobe(null);
            
wardrobe.Action = ActionType.Default;
            
wardrobe.Unknowen = 0;
            
wardrobe.Serialize();
            if (
packets.Count > 0)
            {
                
using (var ms = new System.IO.MemoryStream())
                {
                    
ProtoBuf.Serializer.Serialize<List<ItemPacket>>(ms, packets);
                    
buffer = ms.ToArray();
                    
uint value = buffer[1];
                    
int offset = 2;
                    while (
offset < buffer.Length)
                    {
                        
buffer[offset - 2] = 42;
                        
offset += buffer[offset - 1] + 2;
                    }
                }
            }
            if (
buffer != null)
            {
                
byte[] array = new byte[wardrobe.Buffer.Length + buffer.Length];
                
System.Buffer.BlockCopy(wardrobe.Buffer, 0, array, 0, wardrobe.Buffer.Length);
                
System.Buffer.BlockCopy(buffer, 0, array, wardrobe.Buffer.Length - 8, buffer.Length);
                
Writer.WriteUInt16((ushort)(array.Length - 8), 0, array);
                
client.Send(array);
            }
            else
            {
                
client.Send(wardrobe.Buffer);
            }
            if (
i > 0)
            {
                goto 
laple_121;
            }
        }
    }
    public class 
Storage
    
{

        public 
uint Action;
        public 
uint Param;
        public 
uint Param1;
        public 
ulong Param2;
        public 
byte[] Buffer;
        public 
Storage(byte[] buff)
        {
            
Buffer = buff;
        }
        public 
void Deserialize()
        {
            
byte[] Packet = new byte[Buffer.Length - 12];
            
System.Buffer.BlockCopy(Buffer, 4, Packet, 0, Buffer.Length - 12);
            var 
result = Serializer.Deserialize<StoragePacket>(new MemoryStream(Packet));
            
this.Action = (uint)result.Action;
            
this.Param = result.Param;
            
this.Param1 = result.Param1;
            
this.Param2 = result.Param2;

        }
        public static 
void Send(Client.GameState client)
        {
            
uint Points = 0;

            
byte[] buffer = null;
            List<
StoragePacket> packets = new List<StoragePacket>();
            foreach (var 
item in client.StorageItems.Values)
            {
                
StoragePacket packet = new StoragePacket()
                {

                    
Action = (uint)item.Type,
                    
Param = item.ID,
                    
Param1 = 0,
                    
Param2 = 0,
                    
Param3 = 0,
                };
                if (
client.Entity.TitleID == (uint)item.Type * 10000 + item.ID)
                {
                    
packet.Param1 = 1;
                }
                if (
client.Entity.WingID == (uint)item.Type * 10000 + item.ID)
                {
                    
packet.Param1 = 1;
                }
                if (
item.Type == Database.WarDrobe.StorageType.Conqueror || item.Type == Database.WarDrobe.StorageType.RisingStar)
                {
                    
Points += 300;
                }
                if (
item.Type == Database.WarDrobe.StorageType.GrandMaster)
                {
                    
Points += 500;
                }
                if (
item.Type == Database.WarDrobe.StorageType.Fashionist || item.Type == Database.WarDrobe.StorageType.OverLord
                    
|| item.Type == Database.WarDrobe.StorageType.Talent
                    
|| item.Type == Database.WarDrobe.StorageType.Victor
                    
|| item.Type == Database.WarDrobe.StorageType.SwiftChaser)
                {
                    
Points += 150;
                }
                if (
item.Type == Database.WarDrobe.StorageType.Fairy || item.Type == Database.WarDrobe.StorageType.Scholar)
                {
                    
Points += 300;
                }
                if (
item.Type == Database.WarDrobe.StorageType.Goddess || item.Type == Database.WarDrobe.StorageType.Handsome)
                {
                    
Points += 200;
                }
                if (
item.Type == Database.WarDrobe.StorageType.Beauty || item.Type == Database.WarDrobe.StorageType.Wise)
                {
                    
Points += 100;
                }
                if (
item.Type == Database.WarDrobe.StorageType.EarthKnight ||
                    
item.Type == Database.WarDrobe.StorageType.SkyKnight ||
                    
item.Type == Database.WarDrobe.StorageType.GloryKnight ||
                    
item.Type == Database.WarDrobe.StorageType.Paladin)
                {
                    
Points += 50;
                }
                
packets.Add(packet);
            }

            
Storage wardrobe = new Storage(null);
            
wardrobe.Action = 0;
            
wardrobe.Param = Points;
            
wardrobe.Param1 = 0;
            
wardrobe.Param2 = 0;
            
wardrobe.Serialize();
            if (
packets.Count > 0)
            {
                
using (var ms = new System.IO.MemoryStream())
                {
                    
ProtoBuf.Serializer.Serialize<List<StoragePacket>>(ms, packets);
                    
buffer = ms.ToArray();
                    
uint value = buffer[1];
                    
int offset = 2;
                    while (
offset < buffer.Length)
                    {
                        
buffer[offset - 2] = 42;
                        
offset += buffer[offset - 1] + 2;
                    }
                }
            }
            if (
buffer != null)
            {
                
byte[] array = new byte[wardrobe.Buffer.Length + buffer.Length];
                
System.Buffer.BlockCopy(wardrobe.Buffer, 0, array, 0, wardrobe.Buffer.Length);
                
System.Buffer.BlockCopy(buffer, 0, array, wardrobe.Buffer.Length - 8, buffer.Length);
                
Writer.WriteUInt16((ushort)(array.Length - 8), 0, array);
                
client.Send(array);
            }
            else
            {
                
client.Send(wardrobe.Buffer);
            }
        }
        public 
void Serialize()
        {
            
StoragePacket Packet = new StoragePacket();
            
Packet.Action = this.Action;
            
Packet.Param = this.Param;
            
Packet.Param1 = this.Param1;
            
Packet.Param2 = this.Param2;
            
byte[] buffer;
            
using (var ms = new MemoryStream())
            {
                
Serializer.Serialize(ms, Packet);
                
buffer = ms.ToArray();
            }
            
byte[] Array = new byte[buffer.Length + 12];
            
System.Buffer.BlockCopy(buffer, 0, Array, 4, buffer.Length);
            
Writer.WriteUInt16((ushort)(Array.Length - 8), 0, Array);
            
Writer.WriteUInt16(3301, 2, Array);
            
this.Buffer = Array;
        }
        public static 
void Process(byte[] packet, Client.GameState client)
        {
            
Storage Packet = new Storage(packet);
            
Packet.Deserialize();
            switch (
Packet.Action)
            {
                case 
4:
                    {
                        if (
client.StorageItems.ContainsKey((Database.WarDrobe.StorageType)Packet.Param1))
                        {
                            if (
Packet.Param1 == 4001 ||
                                
Packet.Param1 == 6001 ||
                                
Packet.Param1 == 6002 ||
                                
Packet.Param1 == 6003 ||
                                
Packet.Param1 == 6004)
                            {
                                
client.Entity.WingID = (uint)((Packet.Param1 * 10000) + Packet.Param2);
                                
client.Send(packet);
                            }
                            else
                            {
                                
client.Entity.TitleID = (uint)((Packet.Param1 * 10000) + Packet.Param2);
                                
client.Send(packet);
                            }
                        }
                        break;
                    }
                case 
5:
                    {
                        if (
client.StorageItems.ContainsKey((Database.WarDrobe.StorageType)Packet.Param1))
                        {
                            if (
Packet.Param1 == 4001 ||
                                
Packet.Param1 == 6001 ||
                                
Packet.Param1 == 6002 ||
                                
Packet.Param1 == 6003 ||
                                
Packet.Param1 == 6004)
                            {
                                
client.Entity.WingID = 0;
                                
client.Send(packet);
                            }
                            else
                            {
                                
client.Entity.TitleID = 0;
                                
client.Send(packet);
                            }
                        }
                        break;
                    }
            }

        }
    }

} 

كده احنا خلصنا من الكلاسات

هيظهر معاك ايرورات كتيره قوي بعد ما تضيف الكلاسات دي هتقوم جاي رافع الملف ده علي Referenc
رابط التحميل بتاعه اهو

عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
بعد كده بقا نيجي للاضافات العادييه والكواد الي فاضله

هتدخل الكلاس ده

كود:
ConquerItemTable.cs 

ابحث عن الكود ده

كود:
public static void LoadItems(Client.GameState client) 

اقفله من السالب وبدله بده

كود:
public static void LoadItems(Client.GameState client)
        {
            
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.IsWrap == true || item.Position == 17 || item.Position == 9)
                    {
                        if (
item.IsWrap == false)
                        {
                            
item.IsWrap = true;
                            
UpdateWrap(item);
                        }
                        
client.WarDrobe.Add(item);
                        switch (
item.Position)
                        {
                            case 
9:
                            case 
17:
                                {
                                    if (!
client.Equipment.Free((byte)item.Position))
                                    {
                                        break;
                                    }
                                    
client.Equipment.Add(item, Game.Enums.ItemUse.None);
                                    break;
                                }
                        }
                    }
                    else
                    {
                        if (!
ConquerItemInformation.BaseInformations.ContainsKey(item.ID))
                            continue;
                        
HandleInscribing(item, client);
                        
ItemAddingTable.GetAddingsForItem(item);
                        if ((
byte)Network.PacketHandler.GetPositionFromID(item.ID) == ConquerItem.Garment || (byte)Network.PacketHandler.GetPositionFromID(item.UID) == ConquerItem.SteedCrop || (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;
                            }

                        }
                        
#region WareHouse
                        
if (item.Warehouse == 0)
                        {
                            switch (
item.Position)
                            {
                                case 
0: client.Inventory.Add(item, Game.Enums.ItemUse.None); break;
                                default:
                                    if (
item.Position > 29) 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);
                                            if (
client.Warehouses[Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID.Market].Count < 20)
                                                
client.Warehouses[Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID.Market].Add(item);
                                            
UpdatePosition(item);
                                        }
                                    }
                                    break;
                            }
                        }
                        else
                        {
                            if (
item != null)
                            {
                                
Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID 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((Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID)(uint)item.Warehouse, new Conquer_Online_Server.Game.ConquerStructures.Warehouse(client, (Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID)(uint)item.Warehouse));
                                            
client.Warehouses[(Conquer_Online_Server.Game.ConquerStructures.Warehouse.WarehouseID)(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++;
                                }
                            }
                        }
                    }
                }
            }
        } 

هتبحث تاني في نفس الكلاس عن الكود ده

كود:
item.UID = reader.ReadUInt32("Uid"); 

ضيف تحتيه الكود ده

كود:
item.IsWrap = reader.ReadBoolean("IsWrap"); 

هتبحث برده في نفس الكلاس عن الكود ده

كود:
public static void AddItem(ref ConquerItem Item, Client.GameState client) 

ضيف فوقيه الكود ده

كود:
public static void UpdateWrap(ConquerItem Item)
{
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE))
cmd.Update("items").Set("IsWrap", Item.IsWrap)
.
Where("UID", Item.UID).Execute();
} 

كده خلصنا من الكلاس ده هنخش بقا علي الكلاس ده


كود:
PacketHandler.cs 

ابحث عن الكود ده

كود:
switch (ID)
{ 

تحت القوس علطول ضيف ده

كود:
#region [WarDrobe - Storage]
case 3300:
{
WarDrobe.Process(packet, client);
break;
}
case 
3301:
{
Storage.Process(packet, client);
break;
}
#endregion [WarDrobe - Storage] 

بعد كده هتبحث عن الكود ده

كود:
public static void EquipItem(ItemUsage itemUsage, Client.GameState client) 

اقفله من السالب وبدله بده

كود:
public static void EquipItem(ItemUsage itemUsage, Client.GameState client)
        {
            if (
itemUsage.dwParam == 17 || itemUsage.dwParam == 9)
            {
                
ConquerItem item = null;
                
client.Entity.AttackPacket = null;
                if (
client.WarDrobe.TryGetItem(itemUsage.UID, out item) && client.Booth == null)
                {
                    
uint original = (ushort)itemUsage.dwParam;
                    if (
item.Suspicious) return;
                    
Positions pos = GetPositionFromID(item.ID);
                    if (
itemUsage.dwParam > 20 && itemUsage.dwParam < 30 && (ushort)pos < 10)
                    {
                        
pos += 20;

                    }
                    if ((
ushort)pos == 4 && original == 5 || (ushort)pos == 24 && original == 25 || (ushort)pos == 15 && original == 16)
                    {
                        
pos += 1;
                    }
                    
itemUsage.dwParam = (ushort)pos;
                    if (
pos == Positions.Inventory)
                    {
                        
UseItem(item, client); return;
                    }
                    if (
ItemPosition(item.ID) == ConquerItem.Garment)
                        if (
client.Entity.Tournament_Signed) return;

                    
item.Position = (ushort)itemUsage.dwParam;
                    if (
client.Equipment.Free((byte)itemUsage.dwParam))
                    {
                        
item.Position = (byte)itemUsage.dwParam;
                        
client.Equipment.Add(item, true);
                        
item.Mode = Game.Enums.ItemMode.Update;

                    }
                    else
                    {
                        
client.Equipment.RemoveWrap((byte)itemUsage.dwParam);
                        
item.Position = (byte)itemUsage.dwParam;
                        
client.Equipment.Add(item, true);
                    }
                    
client.CalculateStatBonus();
                    
client.CalculateHPBonus();
                    
client.LoadItemStats();
                    
ClientEquip equips = new ClientEquip();
                    
equips.DoEquips(client);
                    
client.Send(equips);
                    
Database.ConquerItemTable.UpdateLocation(item, client);
                    
client.Equipment.UpdateEntityPacket();

                }
                return;
            }
            else
            {
                
ConquerItem item = null;
                
client.Entity.AttackPacket = null;
                if (
client.Inventory.TryGetItem(itemUsage.UID, out item) && client.Booth == null)
                {
                    if (
item.Suspicious)
                        return;

                    
Positions pos = GetPositionFromID(item.ID);
                    if (
pos == Positions.Inventory)
                    {
                        
UseItem(item, client);
                        return;
                    }

                    if (
ItemPosition(item.ID) == ConquerItem.Garment)
                        if (
client.Entity.Tournament_Signed)
                            return;
                    
#region Sanity checks
                    
bool can2hand = false;
                    
bool can2wpn = false;
                    
uint dwExtra = 0;
                    if (
itemUsage.dwParam > 20)
                        
dwExtra = 20;
                    if (
client.Entity.Class >= 11 && client.Entity.Class <= 75)
                        
can2hand = true;
                    if (
client.Entity.Class >= 11 && client.Entity.Class <= 15 || client.Entity.Class >= 51 && client.Entity.Class <= 55 || client.Entity.Class >= 61 && client.Entity.Class <= 65 || client.Entity.Class >= 71 && client.Entity.Class <= 75)
                        
can2wpn = true;
                    if (
client.Entity.Class >= 71 && client.Entity.Class <= 75 || client.Entity.Class >= 41 && client.Entity.Class <= 45)
                        
can2wpn = true;
                    if (
client.Entity.Class >= 50 && client.Entity.Class <= 55)
                    {
                        
can2hand = true;
                        
can2wpn = true;
                    }
                    if (
client.Entity.Class >= 130 && client.Entity.Class <= 135 || client.Entity.Class >= 140 && client.Entity.Class <= 145)
                    {
                        
can2hand = true;
                        
can2wpn = true;
                    }
                    if (
client.Entity.Class >= 80 && client.Entity.Class <= 85)
                    {
                        
can2hand = true;
                        
can2wpn = true;
                    }
                    
//if (client.Entity.Class >= 100)
                    //    can2wpn = false;
                    
if (!Equipable(item, client))
                        return;
                    if (
ItemPosition(item.ID) == 5)
                    {
                        
itemUsage.dwParam = 5 + dwExtra;
                        if (!
can2hand && !can2wpn)
                            return;
                        if (
client.Equipment.Free(4 + dwExtra) || (client.Equipment.TryGetItem(4 + dwExtra).ID / 1000 != 500 && IsArrow(item.ID)))
                            return;
                    }
                    if (
ItemPosition(item.ID) == 4)
                    {
                        if (
itemUsage.dwParam == 5 + dwExtra)
                            if (!
can2hand || !can2wpn)
                                return;
                    }
                    if (!((
itemUsage.dwParam == 4 + dwExtra || itemUsage.dwParam == 5 + dwExtra) && (ItemPosition(item.ID) == 4 || ItemPosition(item.ID) == 5)))
                    {
                        if (!
IsAccessory(item.ID))
                            
itemUsage.dwParam = ItemPosition(item.ID) + dwExtra;
                    }
                    
#region Hossu
                    
if (client.Entity.Class >= 130 && client.Entity.Class <= 135 || client.Entity.Class >= 140 && client.Entity.Class <= 145)
                    {
                        if ((
itemUsage.dwParam - dwExtra) == 5)
                        {
                            if ((
item.ID / 1000) == 421 || (item.ID / 1000) == 620)
                                return;
                            var 
rItem = client.Equipment.TryGetItem((byte)(4 + dwExtra));
                            if (
rItem != null)
                            {
                                if (
item.ID / 1000 == 619)
                                {
                                    if ((
rItem.ID / 1000) != 421 && (rItem.ID / 1000) != 620)
                                        return;
                                }
                                else
                                    return;

                            }
                        }
                        if ((
itemUsage.dwParam - dwExtra) == 4)
                        {
                            var 
rItem = client.Equipment.TryGetItem((byte)(5 + dwExtra));
                            if (
rItem != null)
                            {
                                if (
rItem.ID / 1000 == 619)
                                {
                                    if ((
item.ID / 1000) != 421 && (item.ID / 1000) != 620)
                                        return;
                                }

                            }
                        }
                    }
                    
#endregion Hossu
                    
bool twohand = IsTwoHand(item.ID);
                    if (!
twohand && itemUsage.dwParam == 4 + dwExtra)
                    {
                        if (!
client.Equipment.Free((byte)(5 + dwExtra)))
                        {
                            if (
client.Inventory.Count < 40)
                            {
                                if (
IsArrow(client.Equipment.TryGetItem((byte)(5 + dwExtra)).ID))
                                    
client.Equipment.Remove((byte)(5 + dwExtra));
                                else
                                {
                                    if (
client.Equipment.TryGetItem((byte)(4 + dwExtra)) != null)
                                    {
                                        if (
IsTwoHand(client.Equipment.TryGetItem((byte)(4 + dwExtra)).ID))
                                            
client.Equipment.Remove((byte)(4 + dwExtra));
                                    }
                                }
                            }
                        }
                    }

                    if ((
itemUsage.dwParam - dwExtra) == 5)
                    {
                        if ((
item.ID / 1000) == 421 || IsTwoHand(item.ID))
                            return;
                        var 
rItem = client.Equipment.TryGetItem((byte)(4 + dwExtra));
                        if (
rItem != null)
                        {
                            if (
rItem.IsTwoHander())
                            {
                                if (
IsArrow(item.ID))
                                {
                                    if (
rItem.ID / 1000 != 500) return;
                                }
                                else
                                {
                                    if (
IsShield(item.ID))
                                    {
                                        if ((
rItem.ID / 1000) == 421) return;
                                        if (!
client.Spells.ContainsKey(10311) && client.Entity.FirstRebornClass == 25 && client.Entity.SecondRebornClass == 25)//Perseverance
                                        
{
                                            
client.Send(new Message("You need to know Perseverance (Warrior Pure skill) to be able to wear 2-handed weapon and shield.", System.Drawing.Color.Red, Message.Talk));
                                            return;
                                        }
                                    }
                                    else if (
item.ID / 1000 == 619)
                                    {
                                        if ((
rItem.ID / 1000) != 421 && (rItem.ID / 1000) != 620)
                                            return;
                                    }
                                    else
                                        
itemUsage.dwParam = 4 + dwExtra;
                                }
                            }
                        }
                    }
                    if (
itemUsage.dwParam == 4 + dwExtra)
                        if (
client.Entity.ContainsFlag(Update.Flags.Fly))
                            if (
item.ID / 1000 != 500)
                                return;

                    if (!((
client.Entity.Class >= 50 && client.Entity.Class <= 55)))
                        if ((
item.ID / 1000) == 601)
                            if ((
itemUsage.dwParam - dwExtra) == 5)
                                return;
                    
#endregion

                    
if (client.Entity.ContainsFlag3(Update.Flags3.Assassin))
                        if (
item.ID / 1000 != 613)
                            return;

                    if (
client.Map.ID == 1039)
                        
client.Entity.AttackPacket = null;

                    
item.Position = (ushort)itemUsage.dwParam;
                    if (
ItemPosition(item.ID) == 5 && !IsArrow(item.ID))
                    {
                        if (
IsTwoHand(client.Equipment.TryGetItem((byte)(4 + dwExtra)).ID))
                        {
                            if (!
client.Spells.ContainsKey(10311))//Perseverance
                            
{
                                
client.Send(new Message("You need to know Perseverance (Warrior Pure skill) to be able to wear 2-handed weapon and shield.", System.Drawing.Color.Red, Message.Talk));
                                return;
                            }
                        }
                    }
                    
uint itemType = item.ID / 1000;
                    if (
itemType == 421)
                    {
//Backsword
                        
if (item.Position == 5 + dwExtra)
                        {
                            
item.Position = 0;
                            return;
                        }
                    }
                    if (
itemType == 900)
                    {
                        if (!(
client.Entity.Class >= 20 && client.Entity.Class <= 25))
                        {
                            
item.Position = 0;
                            return;
                        }
                    }
                    if (
itemUsage.dwParam == ConquerItem.RightWeaponAccessory)
                        if (
client.WeaponLook > 0)
                            return;
                    if (
itemUsage.dwParam == ConquerItem.LeftWeaponAccessory)
                        if (
client.WeaponLook2 > 0)
                            return;
                    
//Database.ConquerItemTable.ClearPosition(client.Entity.UID, (byte)itemUsage.dwParam);
                    
client.Inventory.Remove(item, Game.Enums.ItemUse.Move, true);
                    if (
client.Equipment.Free((byte)itemUsage.dwParam))
                    {
                        if (
twohand)
                            
client.Equipment.Remove((byte)(5 + dwExtra));
                        
item.Position = (byte)itemUsage.dwParam;
                        
client.Equipment.Add(item);
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(client);
                    }
                    else
                    {
                        if (
twohand)
                            
client.Equipment.Remove((byte)(5 + dwExtra));
                        if (
IsBow(client.Equipment.TryGetItem((byte)itemUsage.dwParam).ID))
                        {
                            
client.Entity.RemoveFlag(Update.Flags.Fly);
                        }
                        
client.Equipment.Remove((byte)itemUsage.dwParam);
                        
item.Position = (byte)itemUsage.dwParam;
                        
client.Equipment.Add(item);
                    }

                    var 
iu = new Network.GamePackets.ItemUsage(true);
                    
iu.ID = 5;
                    
iu.UID = itemUsage.UID;
                    
iu.dwParam = itemUsage.dwParam;
                    
client.Send(iu);

                    
client.CalculateStatBonus();
                    
client.CalculateHPBonus();
                    
client.LoadItemStats();
                    
ClientEquip equips = new ClientEquip();
                    
equips.DoEquips(client);
                    
client.Send(equips);

                    
Database.ConquerItemTable.UpdateLocation(item, client);
                    
client.Equipment.UpdateEntityPacket();
                    if (
itemUsage.dwParam == ConquerItem.Armor)
                        if (
client.ArmorLook > 0)
                            
client.SetNewArmorLook(client.ArmorLook);
                    if (
itemUsage.dwParam == ConquerItem.Head)
                        if (
client.HeadgearLook > 0)
                            
client.SetNewHeadgearLook(client.HeadgearLook);
                    if (
itemUsage.dwParam == ConquerItem.RightWeapon)
                        if (
client.WeaponLook > 0)
                            
client.SetNewWeaponLook(client.WeaponLook);
                    if (
itemUsage.dwParam == ConquerItem.LeftWeapon)
                        if (
client.WeaponLook2 > 0)
                            
client.SetNewWeaponLook2(client.WeaponLook2);
                }
            }
        } 

وابحث برده عن الكود ده

كود:
public static void UnequipItem(ItemUsage usage, Client.GameState client) 

اقفله من السالب وبدله بده

كود:
public static void UnequipItem(ItemUsage usage, Client.GameState client)
        {
            if (
usage.dwParam == (byte)9 || usage.dwParam == (byte)17)
            {

                if (!
client.Equipment.Free((byte)usage.dwParam))
                    if (
ItemPosition(client.Equipment.TryGetItem((byte)usage.dwParam).ID) == ConquerItem.Garment)
                        if (
client.Entity.Tournament_Signed) return;
                if (
client.Equipment.RemoveWrap((byte)usage.dwParam))
                {
                    if (
client.Map.ID == 1039)
                        
client.Entity.AttackPacket = null;
                    
client.CalculateStatBonus();
                    
client.CalculateHPBonus();
                    
client.LoadItemStats();
                    
ClientEquip equips = new ClientEquip();
                    
equips.DoEquips(client);
                    
client.Send(equips);
                }

                return;
            }
            if (
client.Entity.ContainsFlag3(Update.Flags3.Assassin))
                if (
usage.dwParam == 4)
                    return;
            if (!
client.Equipment.Free((byte)usage.dwParam))
                if (
ItemPosition(client.Equipment.TryGetItem((byte)usage.dwParam).ID) == ConquerItem.Garment)
                    if (
client.Entity.Tournament_Signed)
                        return;
            if (!
client.Equipment.Free((byte)usage.dwParam))
                if (
IsBow(client.Equipment.TryGetItem((byte)usage.dwParam).ID))
                    
client.Entity.RemoveFlag(Update.Flags.Fly);

            if (
client.Equipment.Remove((byte)usage.dwParam))
            {
                if (
client.Map.ID == 1039)
                    
client.Entity.AttackPacket = null;
                
client.CalculateStatBonus();
                
client.CalculateHPBonus();
                
client.LoadItemStats();
                
ClientEquip equips = new ClientEquip();
                
equips.DoEquips(client);
                
client.Send(equips);
            }
        } 

بعد كده ابحث عن الكود ده

كود:
client.Entity.UpdateEffects(true); 

ضيف تحتيه علطول الكودين دول

كود:
WarDrobe.SendItems(client);
            
Storage.Send(client); 

بعد كده هتبحث عن الكود ده

كود:
#region GMs PMs 

هتنزل فيه شويه وهتيجي تحت اي شفره وتضيف دول

كود:
case "reloadw":
                                {
                                    
Database.WarDrobe.Load();
                                    break;
                                }
                            case 
"addwing":
                                {
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Conqueror);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Fashionist);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.GrandMaster);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.InfernalBeast);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.MoonlightWings);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.RadiantWings);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.OverLord);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.RisingStar);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.SolarDragon);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.StarlightWings);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.SwiftChaser);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Talent);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Victor);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Beauty);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Fairy);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.FairyWings);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Goddess);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Handsome);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Scholar);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Wise);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.EarthKnight);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.SkyKnight);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.GloryKnight);
                                    
client.Entity.AddStorageItem(Database.WarDrobe.StorageType.Paladin);
                                    break;
                                } 

كده خلصنا الكلاس ده نيجي بقا للي بعدو
افتح الكلاس ده

كود:
Equipment.cs 

ابحث عن الكود ده

كود:
public bool Add(ConquerItem item, Enums.ItemUse use) 

اقفله من السالب وضيف تحتيه او فوقيه دول

كود:
public bool Add(ConquerItem item, bool nosend)
        {
            if (
objects.Length < item.Position)
                return 
false;
            if (
objects[item.Position - 1] == null)
            {
                
item.IsWorn = true;
                
UpdateItemview(item);
                
objects[item.Position - 1] = item;
                
item.Position = item.Position;
                if (!
nosend)
                {
                    
item.Send(Owner);
                }
                
Owner.LoadItemStats();
                
Owner.SendScreenSpawn(Owner.Entity, false);
                return 
true;
            }
            else return 
false;
        }
        public 
bool RemoveWrap(byte Position)
        {
            if (
objects[Position - 1] != null)
            {
                if (
Owner.Inventory.Count <= 39)
                {

                    
objects[Position - 1].Position = Position;
                    
objects[Position - 1].IsWorn = false;
                    
objects[Position - 1].Position = 0;
                    
ClearItemview(Position);
                    
Database.ConquerItemTable.UpdatePosition(objects[Position - 1]);
                    
objects[Position - 1] = null;
                    
Owner.SendScreenSpawn(Owner.Entity, false);
                    return 
true;

                }
                else
                {
                    
Owner.Send(new Network.GamePackets.Message("Not enough room in your inventory.", System.Drawing.Color.Red, Network.GamePackets.Message.TopLeft));
                }
            }
            return 
false;
        } 

بعد كده هتفتح الكلاس ده

كود:
ConquerItem.cs 

ابحث عن الكود ده

كود:
public bool IsWorn = false; 

ضيف تحتيه الكود ده

كود:
public bool IsWrap { get; set; } 

بعد كده هتدخل الكلاس ده

كود:
Entity.cs 

ابحث عن الكود ده

كود:
public uint CUID 

ضيف فوقيه الاكواد دي

كود:
public void LoadStorageitems()
        {
            
using (MySqlCommand Command = new MySqlCommand(MySqlCommandType.SELECT))
            {
                
Command.Select("StorageItems").Where("UID", UID).Execute();
                
using (MySqlReader Reader = new MySqlReader(Command))
                {
                    while (
Reader.Read())
                    {
                        
Database.WarDrobe.StorageItems item = new Database.WarDrobe.StorageItems();
                        
item.Type = (Database.WarDrobe.StorageType)Reader.ReadUInt32("Type");
                        
item.ID = Reader.ReadUInt32("ID");
                        
item.Time = Reader.ReadUInt64("Time");
                        
Owner.StorageItems.Add(item.Type, item);
                    }
                }
            }
        }
        public 
void AddStorageItem(Database.WarDrobe.StorageType Type, ulong Time = 0)
        {

            if (!
Owner.StorageItems.ContainsKey(Type))
            {
                var 
Item = Database.WarDrobe.Storage[Type];
                
Item.Time = Time;
                
Owner.StorageItems.Add(Item.Type, Item);
                
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.INSERT);
                
cmd.Insert("StorageItems").Insert("UID", (UInt32)UID).Insert("Time", Item.Time).Insert("ID", Item.ID).Insert("Type", (uint)Item.Type);
                
cmd.Execute();
            }
            else
            {
                
Owner.StorageItems.Remove(Type);
                var 
Item = Database.WarDrobe.Storage[Type];
                
Item.Time = Time;
                
Owner.StorageItems.Add(Item.Type, Item);
                
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE);
                
cmd.Update("StorageItems").Set("Time", Owner.StorageItems[Type].Time)
                    .
Where("Type", (uint)Owner.StorageItems[Type].Type).And("UID", (UInt32)UID);
                
cmd.Execute();
            }
            
Storage.Send(Owner);
        }
        
uint _titleid;
        
uint _wingid;
        public 
uint TitleID
        
{
            
get
            
{
                return 
_titleid;
            }
            
set
            
{
                
_titleid = value;
                
Writer.WriteUInt32(value, 284, SpawnPacket);
                
Writer.WriteUInt32(150, 288, SpawnPacket);
                
Owner.SendScreen(SpawnPacket, false);
                
UpdateDatabase("TitleID", value);
            }
        }
        public 
uint WingID
        
{
            
get
            
{
                return 
_wingid;
            }
            
set
            
{
                
_wingid = value;
                
Writer.WriteUInt32(value, 292, SpawnPacket);
                
Owner.SendScreen(SpawnPacket, false);
                
UpdateDatabase("WingID", value);
            }
        } 

بعد كده ابحث عن الكود ده

كود:
public uint MonstersPoints; 

ضيف تحتيه الكود ده

كود:
public uint HaveWardrobbe; 

بعد كده افتح الكلاس ده

كود:
EntityTable.cs 

ابحث عن الكود ده

كود:
client.Entity.MonstersPoints = reader.ReadUInt32("MonstersPoints"); 

ضيف تحتيه الكود ده

كود:
client.Entity.HaveWardrobbe = reader.ReadUInt32("HaveWardrobe"); 

بعد كده ابحث عن الكود ده

كود:
.Set("Money", e.Money) 

ضيف تحتيه الكود ده

كود:
.Set("HaveWardrobe", e.HaveWardrobbe) 

بعد كده ابحث عن الكود ده

كود:
client.Entity.LoadTopStatus(); 

ضيف فوقيه الكود ده

كود:
client.Entity.LoadStorageitems(); 

بعد كده هتدخل الكلاس ده

كود:
Enums.cs 

ابحث عن الكود ده

كود:
public enum ItemUse 

انزل فيه لحد الكود ده

كود:
Delete 

ضيف تحتيه الكود ده

كود:
IntoWrap 

ومتنساش تعمل دي , في الكود الي قبليه
بعد كده هتدخل الكلاس ده

كود:
GameState 

ابحث عن الكود ده

كود:
Equipment = new Game.ConquerStructures.Equipment(this); 

ضيف تحتيه الكود ده

كود:
WarDrobe = new Game.ConquerStructures.WarDrobe(this);
StorageItems = new Dictionary<Database.WarDrobe.StorageType, Database.WarDrobe.StorageItems>(); 

ابحث برده في نفس الكلاس عن الكود ده

كود:
public Game.ConquerStructures.Equipment Equipment; 

ضيف تحتيه الكود ده

كود:
public Game.ConquerStructures.WarDrobe WarDrobe;
public 
Dictionary<Database.WarDrobe.StorageType, Database.WarDrobe.StorageItems> StorageItems; 

بعد كده هتدخل الكلاس ده

كود:
Inventory.cs 

ابحث عن الكود ده

كود:
public bool Remove(ConquerItem item, Enums.ItemUse use) 

اقفله من السالب وبدله بده

كود:
public bool Remove(ConquerItem item, Enums.ItemUse use)
        {
            try
            {
                if (
inventory.ContainsKey(item.UID))
                {                   
                    switch (use)
                    {
                        case 
Enums.ItemUse.RemoveFromStack:
                            {
                                if (
item.StackSize > 1)
                                {
                                    
item.StackSize -= 1;
                                    
Database.ConquerItemTable.UpdateStack(item);
                                    
item.Mode = Game.Enums.ItemMode.Update;
                                    
item.Send(Owner);
                                    return 
true;
                                }
                                else
                                {
                                    
Database.ConquerItemTable.RemoveItem(item.UID);
                                }
                                break;
                            }
                        case 
Enums.ItemUse.IntoWrap:
                            
Database.ConquerItemTable.UpdateLocation(item, Owner);
                            break;
                        case 
Enums.ItemUse.Remove:
                        case 
Enums.ItemUse.Delete:
                            
Database.ConquerItemTable.RemoveItem(item.UID); break;
                        case 
Enums.ItemUse.Move: Database.ConquerItemTable.UpdateLocation(item, Owner); break;
                    }
                    
Database.ItemLog.LogItem(item.UID, Owner.Entity.UID, Conquer_Online_Server.Database.ItemLog.ItemLogAction.Remove);

                    
inventory.Remove(item.UID);
                    
objects = inventory.Values.ToArray();
                    if (use != 
Enums.ItemUse.IntoWrap)
                    {
                        
ItemUsage iu = new ItemUsage(true);
                        
iu.UID = item.UID;
                        
iu.ID = ItemUsage.RemoveInventory;
                        
Owner.Send(iu);
                    }
                    else
                    {

                        
ItemUsage iu = new ItemUsage(true);
                        
iu.UID = item.UID;
                        
iu.ID = 46;
                        
Owner.Send(iu);
                    }
                    return 
true;
                }
            }
            catch (
Exception e)
            {
                
Program.SaveException(e);
            }
            return 
false;
        } 

اخر حاجه افتح الكلاس ده

كود:
Program.cs 

ابحث عن الكود ده

كود:
Database.ChiTable.LoadAllChi(); 

ضيف تحتيه الكود ده

كود:
Database.WarDrobe.Load(); 




العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: بسم الله الرحمن الرحيم معانا انهارد سيستم الجرمنتات كامل بنسبه 98% السيستم بنظام سور
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
بسم الله الرحمن الرحيم سورس بتاع مصطفي سمير 6612 ElSaher سورسات كونكر 167 2021-09-13 08:50 AM
الان سيستم كامل فيكسد نظام الشخصية الزكية ممكن تلعب مع نفسك بمستويات مختلفة Mero تطوير سيرفرات كونكر 88 2021-02-16 09:38 PM
بخصوص اضافه الجرمنتات او المونتات Kimo مشكلات السيرفيرات كونكر الشخصيه 4 2020-09-01 04:52 AM
بسم الله الرحمن الرحيم معنا سيرفر لسه مفتزح دلوقتي 3d eslamElteyb اعلانات السيرفيرات الشخصية 0 2020-07-01 07:49 PM
بسم الله الرحمن الرحيم اي كويسته فكره حرب اي بتنجان عاوزوا خش midoazoz تطوير سيرفرات كونكر 25 2020-06-02 10:16 PM


الساعة الآن 08:09 PM