اهلا بكل اعضاء ايجى نت اولا الشرح منقول للافادة يعنى مش بتاعى تمام النهارده معانا شرح اضافة ابجريد 6133 وحل جميع مشاكله كمان يلا بينا نبدا اولاً افتح Equipment.cs وابحث عن PHP: #region Offsets بدل بى دول PHP: #region Offsets public const int Head = 48 + 4, Garment = 52 + 4, Armor = 56 + 4, LeftWeapon = 60 + 4, RightWeapon = 64 + 4, LeftWeaponAccessory = 68 + 4, RightWeaponAccessory = 72 + 4, Steed = 76 + 4, MountArmor = 80 + 4, ArmorColor = 141 + 4 + 9, LeftWeaponColor = 143 + 4 + 9, HeadColor = 145 + 4 + 9, SteedPlus = 151 + 4 + 9, SteedColor = 157 + 4 + 9, HeadSoul = 200 + 4 + 9, Wing = 88, WingPlus = 92, ArmorSoul = 204 + 4 + 9, LeftWeaponSoul = 208 + 4 + 9, RightWeaponSoul = 212 + 4 + 9; #endregion فى نفس الملف ابحث عن PHP: switch ((ushort)item.Position) هتلاقى الكود ده PHP: case Network.GamePackets.ConquerItem.SteedArmor: Network.......r.......UInt32(item.ID, MountArmor, Owner.Entity.SpawnPacket); break; ضيف ده تحتو على طول PHP: case Network.GamePackets.ConquerItem.Wing: Network.......r.......UInt32(item.ID, 88, Owner.Entity.SpawnPacket); Network.......r.......UInt16((byte)item.Plus, WingPlus, Owner.Entity.SpawnPacket); break; 2_ افتح Entity.cs ابحث عن PHP: #region offsets بدل الى فى بدول PHP: #region offsets public static int num = 4; public static int _Mesh = 4 + num, _UID = 8 + num, _GuildID = 12 + num, _GuildRank = 16 + num, _StatusFlag = 22 + num, _StatusFlag2 = 30 + num, _StatusFlag3 = 38 + num, _AppearanceType = 42 + num + 4, _Hitpoints = 86 + num + 4 + 9, _MonsterLevel = 92 + 4 + num + 9, _X = 94 + num + 4 + 9, _Y = 96 + num + 4 + 9, _HairStyle = 98 + num + 4 + 9, _Facing = 100 + num + 4 + 9, _Action = 101 + num + 4 + 9, _Reborn = 108 + num + 4 + 9, _Level = 109 + num + 4 + 9, _WindowSpawn = 111 + num + 4 + 9, _Away = 112 + num + 4 + 9, _ExtraBattlepower = 113 + num + 4 + 9, _FlowerIcon = 125 + num + 4 + 4 + 9, _NobilityRank = 133 + num + 4 + 9, _QuizPoints = 143 + num + 4 + 9, _ClanUID = 169 + num + 4 + 9, _ClanRank = 173 + num + 4 + 9, _Title = 181 + num + 4 + 9, _ShowArenaGlow = 192 + num + 4 + 9, _Boss = 195 + num + 4 + 9, _RaceItem = 197 + num + 4 + 9, _ActiveSubclass = 212 + num + 4 + 9, _FirstRebornClass = 221 + num + 4 + 9, _SecondRebornClass = 223 + num + 4 + 9, _Class = 225 + num + 4 + 9, _CountryCode = 227 + num + 4 + 9, _AssassinColor = 233 + 4 + 4 + 9, _JingHu_Talen = 241 + 4 + 9, _JiangHuActive = 242 + 4 + 9, _skillsoul = 240 + 4 + 9, _skillsoul2 = 243 + 4 + 9, _CUID = 249 + 8 + 9, _Names = 284; #endregion اول مشكله الى هى اللفن يلا نحل بقا نفس الملف Entity.cs ابحث عن وهتتحدد لحد PHP: _level = value; } } PHP: public byte Level هتبدل بى PHP: public byte Level { get { if (EntityFlag == EntityFlag.Player) { SpawnPacket[126] = _level; return _level; } else { SpawnPacket[109] = _level; return _level; } } set { if (EntityFlag == EntityFlag.Player) { Update(Network.GamePackets.Update.Level, value, true); Data _Data = new Data(true); _Data.UID = UID; _Data.ID = Data.Leveled; _Data.TimeStamp = Time32.Now; if (Owner != null) { (Owner as Client.GameClient).SendScreen(update, true); Owner.ArenaStatistic.Level = value; Owner.ArenaStatistic.ArenaPoints = 1000; } if (Owner != null) { if (Owner.AsMember != null) { Owner.AsMember.Level = value; } } SpawnPacket[126] = value; UpdateData....("Level", value); } else { SpawnPacket[109] = value; } _level = value; } } 3_افتح CharacterInfo.cs ابحت عن PHP: public byte[] ToArray() بدل بى PHP: public byte[] ToArray() { byte[] Packet = new byte[138 + client.Entity.Spouse.Length + client.Entity.Name.Length]; WriteUInt16((ushort)(Packet.Length - 8), 0, Packet); WriteUInt16(1006, 2, Packet); WriteUInt32((uint)Time32.timeGetTime().GetHashCode (), 4, Packet); WriteUInt32(client.Entity.UID, 8, Packet); WriteUInt32(client.Entity.Mesh, 14, Packet); WriteUInt16(client.Entity.HairStyle, 18, Packet); WriteUInt32(client.Entity.Money, 20, Packet); WriteUInt32((uint)client.Entity.ConquerPoints, 28, Packet); WriteUInt32(client.Entity.BoundCps, 107, Packet);//103 WriteUInt64(client.Entity.Experience, 32, Packet); WriteUInt16(client.Entity.Strength, 60, Packet); WriteUInt16(client.Entity.Agility, 62, Packet); WriteUInt16(client.Entity.Vitality, 64, Packet); WriteUInt16(client.Entity.Spirit, 66, Packet); WriteUInt16(client.Entity.Atributes, 68, Packet); WriteUInt32(client.Entity.Hitpoints, 70, Packet); WriteUInt16(client.Entity.Mana, 74, Packet); WriteUInt16(client.Entity.PKPoints, 76, Packet); Packet[78] = client.Entity.Level; Packet[79] = client.Entity.Class; Packet[80] = client.Entity.FirstRebornClass; Packet[81] = client.Entity.SecondRebornClass; Packet[83] = client.Entity.Reborn; WriteUInt32(client.Entity.QuizPoints, 85, Packet); WriteUInt32(1, 89, Packet); WriteUInt16(0/*enlightened time left*/, 93, Packet); WriteByte(client.Entity.SubClasses.Active, 111, Packet); WriteUInt32(client.Entity.SubClasses.GetHashPoint( ), 112, Packet); WriteUInt16((UInt16)client.Entity.MyTitle, 105, Packet); Packet[119] = 1; Packet[124] = 1; WriteUInt16((ushort)client.Entity.CountryID, 128, Packet); Writer.......Byte(3, 130, Packet); Packet[131] = (byte)client.Entity.Name.Length; Writer.......String(client.Entity.Name, 132, Packet); Writer.......Byte((byte)client.Entity.Spouse.Length , 133 + client.Entity.Name.Length, Packet); Writer.......String(client.Entity.Spouse, 134 + client.Entity.Name.Length, Packet); return Packet; } 3_ClientEquip.cs من تالت سطر وبدل علشان فى ناس جديد فى المجال PHP: public class ClientEquip : Interfaces.IPacket { private Byte[] mData; public ClientEquip() { this.mData = new Byte[103]; Writer.......UInt16((UInt16)(this.mData.Length - 8), 0, mData); Writer.......UInt16((UInt16)1009, 2, mData); Writer.......UInt32((uint)Time64.timeGetTime().GetH ashCode(), 4, mData); Writer.......UInt16((UInt16)46, 20, mData); } public ClientEquip(GameClient c) { this.mData = new Byte[96]; Writer.......UInt16((UInt16)(this.mData.Length - 8), 0, mData); Writer.......UInt16((UInt16)1009, 2, mData); Writer.......UInt32((uint)Time64.timeGetTime().GetH ashCode(), 4, mData); Writer.......UInt16((UInt16)46, 20, mData); DoEquips(c); } public void DoEquips(GameClient client) { if (client.Equipment == null) return; ConquerItem[] Items = client.Equipment.Objects; Writer.......UInt32((uint)Time64.timeGetTime().GetH ashCode(), 4, mData); Writer.......UInt32(client.Entity.UID, 8, mData); AlternativeEquipment = client.AlternateEquipment; foreach (var Item in client.Equipment.Objects) { if (Item == null) continue; if (Item.IsWorn) { switch (Item.Position) { #region Equipment case ConquerItem.Head: this.Helm = Item.UID; break; case ConquerItem.Wing: Wing = Item.UID; break; case ConquerItem.Necklace: this.Necklace = Item.UID; break; case ConquerItem.Armor: this.Armor = Item.UID; break; case ConquerItem.RightWeapon: this.RHand = Item.UID; break; case ConquerItem.LeftWeapon: this.LHand = Item.UID; break; case ConquerItem.Ring: this.Ring = Item.UID; break; case ConquerItem.Boots: this.Boots = Item.UID; break; case ConquerItem.Garment: this.Garment = Item.UID; break; case ConquerItem.Bottle: this.Talisman = Item.UID; break; case ConquerItem.RightWeaponAccessory: AccessoryOne = Item.UID; break; case ConquerItem.LeftWeaponAccessory: AccessoryTwo = Item.UID; break; case ConquerItem.SteedArmor: SteedArmor = Item.UID; break; case ConquerItem.SteedCrop: SteedTalisman = Item.UID; break; #endregion #region AlternateEquipment case ConquerItem.AlternateArmor: Armor = Item.UID; break; case ConquerItem.AlternateHead: Helm = Item.UID; break; case ConquerItem.AlternateNecklace: Necklace = Item.UID; break; case ConquerItem.AlternateRing: Ring = Item.UID; break; case ConquerItem.AlternateBoots: Boots = Item.UID; break; case ConquerItem.AlternateBottle: Talisman = Item.UID; break; case ConquerItem.AlternateGarment: this.Garment = Item.UID; break; case ConquerItem.AlternateLeftWeapon: LHand = Item.UID; break; case ConquerItem.AlternateRightWeapon: RHand = Item.UID; break; #endregion } } } if (client.ArmorLook > 0) Garment = Armor = uint.MaxValue - 1; if (client.HeadgearLook > 0) Helm = uint.MaxValue - 2; } public void Deserialize(byte[] buffer) { this.mData = buffer; } public byte[] ToArray() { return mData; } public void Send(Client.GameClient client) { client.Send(mData); } public bool AlternativeEquipment { get { return this.mData[12] == 1 ? true : false; } set { this.mData[12] = value ? (byte)1 : (byte)0; } } public UInt32 Helm { get { return BitConverter.ToUInt32(this.mData, 35); } set { Writer.......UInt32(value, 35, mData); } } public UInt32 Necklace { get { return BitConverter.ToUInt32(this.mData, 39); } set { Writer.......UInt32(value, 39, mData); } } public UInt32 Wing { get { return BitConverter.ToUInt32(mData, 87); } set { Writer.......UInt32(value, 87, mData); } } public UInt32 Armor { get { return BitConverter.ToUInt32(this.mData, 43); } set { Writer.......UInt32(value, 43, mData); } } public UInt32 RHand { get { return BitConverter.ToUInt32(this.mData, 47); } set { Writer.......UInt32(value, 47, mData); } } public UInt32 LHand { get { return BitConverter.ToUInt32(this.mData, 51); } set { Writer.......UInt32(value, 51, mData); } } public UInt32 Ring { get { return BitConverter.ToUInt32(this.mData, 55); } set { Writer.......UInt32(value, 55, mData); } } public UInt32 Talisman { get { return BitConverter.ToUInt32(this.mData, 59); } set { Writer.......UInt32(value, 59, mData); } } public UInt32 Boots { get { return BitConverter.ToUInt32(this.mData, 63); } set { Writer.......UInt32(value, 63, mData); } } public UInt32 Garment { get { return BitConverter.ToUInt32(this.mData, 67); } set { Writer.......UInt32(value, 67, mData); } } public uint AccessoryOne { get { return BitConverter.ToUInt32(mData, 71); } set { Writer.......UInt32(value, 71, mData); } } public uint AccessoryTwo { get { return BitConverter.ToUInt32(mData, 75); } set { Writer.......UInt32(value, 75, mData); } } public UInt32 SteedArmor { get { return BitConverter.ToUInt32(this.mData, 79); } set { Writer.......UInt32(value, 79, mData); } } public UInt32 SteedTalisman { get { return BitConverter.ToUInt32(this.mData, 83); } set { Writer.......UInt32(value, 83, mData); } } } } 4_ افتح ConquerItem.cs ابحث عن PHP: SteedArmor = 17, ضيف ده تحتيه على طول PHP: Wing = 19, 5_افتح GroundMovement.cs بدل الى في كلو PHP: using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace Conquer_Online_Server.Network.GamePackets { public class GroundMovement : Writer, Interfaces.IPacket { public const uint Walk = 0, Run = 1, Slide = 9; public GroundMovement(bool CreateInstance) { } public byte[] CreateProtocolBuffer(params uint[] values) { List<byte> ptr = new List<byte>(); ptr.Add(8); for (int x = 0; x < values.Length; x++) { uint value = values[x]; while (value > 0x7F) { ptr.Add((byte)((value & 0x7F) | 0x80)); value >>= 7; } ptr.Add((byte)(value & 0x7F)); ptr.Add((byte)(8 * (x + 2))); if (x + 1 == values.Length) break; } return ptr.ToArray(); } public uint ReadFromProtocolUint32(uint position, BinaryReader reader) { byte key = reader.ReadByte(); if (key == position) { uint value = 0; int shift = 0; uint val = reader.ReadByte(); while (val > 0x7F) { value |= (val & 0x7F) << shift; shift += 7; val = reader.ReadByte(); } value |= (val & 0x7F) << shift; return value; } return 0; } public byte[] ToArray() { byte[] ptr = CreateProtocolBuffer((uint)Direction, UID, GroundMovementType, TimeStamp, MapID); List<byte> pack = new List<byte>(); for (int i = 0; i < (ptr.Length - 1); i++) { pack.Add(ptr[i]); } ptr = pack.ToArray(); byte[] buffer = new byte[12 + ptr.Length]; Writer.......UInt16((ushort)(buffer.Length - 8), 0, buffer); Writer.......UInt16(10005, 2, buffer); System.Array.Copy(ptr, 0, buffer, 4, ptr.Length); return buffer; } public void Deserialize(byte[] buffer) { var packet = new byte[buffer.Length - 4]; System.Array.Copy(buffer, 4, packet, 0, packet.Length); using (var Reader = new BinaryReader(new MemoryStream(packet))) { uint direction = 0; uint uid = 0; uint type = 0; uint tstamp = 0; uint mapid = 0; for (int i = 0; i < Reader.....Stream.Length; i++) { Reader.....Stream.Position = i; if (packet[i] == 8) { direction = ReadFromProtocolUint32(8, Reader); } if (packet[i] == 16) { uid = ReadFromProtocolUint32(16, Reader); } if (packet[i] == 24) { type = ReadFromProtocolUint32(24, Reader); } if (packet[i] == 32) { tstamp = ReadFromProtocolUint32(32, Reader); } if (packet[i] == 40) { mapid = ReadFromProtocolUint32(40, Reader); } } Direction = (Conquer_Online_Server.Game.Enums.ConquerAngle)direction; UID = uid; GroundMovementType = type; TimeStamp = tstamp; MapID = mapid; } } public Game.Enums.ConquerAngle Direction; public uint UID; public uint TimeStamp; public uint MapID; public uint GroundMovementType; public void Send(Client.GameClient client) { client.Send(ToArray()); } } } افتح Message.cs ابحث عن PHP: public void Deserialize(byte[] buffer) بدل بدول PHP: public void Deserialize(byte[] buffer) { Color = Color.FromArgb(BitConverter.ToInt32(buffer, 8)); ChatType = BitConverter.ToUInt32(buffer, 12); MessageUID1 = BitConverter.ToUInt32(buffer, 16); MessageUID2 = BitConverter.ToUInt32(buffer, 20); Mesh = BitConverter.ToUInt32(buffer, 24); _From = Encoding.Default.GetString(buffer, 35, buffer[34]); _To = Encoding.Default.GetString(buffer, 36 + _From.Length, buffer[35 + _From.Length]); __Message = Encoding.Default.GetString(buffer, (38 + _From.Length) + _To.Length, buffer[(37 + _From.Length) + _To.Length]); } public byte[] ToArray() { byte[] Packet = new byte[(((32 + _From.Length) + _To.Length) + __Message.Length) + 18]; Writer.......UInt16((ushort)(Packet.Length - 8), 0, Packet); Writer.......UInt32((uint)Time32.timeGetTime().GetHashCode(), 4, Packet); Writer.......UInt16(1004, 2, Packet); Writer.......UInt32((uint)Color.ToArgb(), 8, Packet); Writer.......UInt32(ChatType, 12, Packet); Writer.......UInt32(MessageUID1, 16, Packet); Writer.......UInt32(MessageUID2, 20, Packet); Writer.......UInt32(Mesh, 24, Packet); Writer.......StringList(new List<string>() { _From, _To, "", __Message }, 33, Packet); return Packet; } ركز بقى فى الكلام الى جى دة علشان دة المهم افتح PacketHandler.cs ابحث عن PHP: public static byte ItemMaxLevel(ushort postion) هتلاقى الكود ده PHP: case 0: return 0; ضيف ده تحتى على طول PHP: case ConquerItem.Wing: return 100; ابحث عن PHP: public static byte ItemMinLevel(ushort postion) هتلاقى نفس الكود السابق ضيف ده تحتى PHP: case ConquerItem.Wing: return 0; ابحث عن PHP: public static Positions GetPositionFromID(UInt32 itemid) هتلاقى الكود ده تحت شويه PHP: return Positions.LeftAccessory; ضيف ده تحتو على طول PHP: else if (iType == 204) return Positions.Wing; ابحث عن PHP: public static ushort ItemPosition(uint ID) هتلاقى الكود ده تحت شويه PHP: return ConquerItem.SteedArmor; ضيف ده تحتو على طول PHP: else if (ID >= 204005 && ID <= 204009) return ConquerItem.Wing; ابحث عن PHP: public enum Positions : byte هتنزل شوية هتلاقي الكود ده PHP: SteedArmor = 17 ضيف جنب 17 العلامه دى , ضيف ده تحتو PHP: Wing = 19 ابحث عن PHP: public static Positions ItemPositionFromID(UInt32 itemid) هتنزل شوية هتلاقي الكود ده PHP: else if (iType == 380) return Positions.LeftAccessory; حط الكود ده تحتو PHP: else if (iType == 204) return Positions.Wing; يلا بقا نضيف الجناح فى الشوب ميل افتح Items.txt حط دول اخر حاجه فى الملف PHP: 204003@@TempestWing@@0@@0@@100@@0@@0@@0@@0@@0@@0@@ 0@@37818@@0@@0@@0@@0@@0@@0@@0@@0@@6698@@6698@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ImperialTalism an@@A~rare~talisman.~When~you~upgrade~it~to~Super~ quality,~you`ll~grow~a~pair~of~wings.@@5@@0@@0@@0@ @7040@@500@@200@@100@@100@@50@@0@@ 204004@@TempestWing@@0@@0@@100@@0@@0@@0@@0@@0@@0@@ 0@@37818@@0@@0@@0@@0@@0@@0@@0@@0@@6698@@6698@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ImperialTalism an@@A~rare~talisman.~When~you~upgrade~it~to~Super~ quality,~you`ll~grow~a~pair~of~wings.@@5@@0@@0@@0@ @7040@@500@@200@@100@@100@@50@@0@@ 204005@@TempestWing@@0@@0@@100@@0@@0@@0@@0@@0@@0@@ 0@@37818@@0@@0@@0@@0@@0@@0@@0@@0@@6698@@6698@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ImperialTalism an@@A~rare~talisman.~When~you~upgrade~it~to~Super~ quality,~you`ll~grow~a~pair~of~wings.@@5@@0@@0@@0@ @7040@@500@@200@@100@@100@@50@@0@@ 204006@@TempestWing@@0@@0@@100@@0@@0@@0@@0@@0@@0@@ 0@@37818@@0@@0@@0@@0@@0@@0@@0@@0@@6698@@6698@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ImperialTalism an@@A~rare~talisman.~When~you~upgrade~it~to~Super~ quality,~you`ll~grow~a~pair~of~wings.@@5@@0@@0@@0@ @7040@@500@@300@@200@@200@@150@@0@@ 204007@@TempestWing@@0@@0@@100@@0@@0@@0@@0@@0@@0@@ 0@@37818@@0@@0@@0@@0@@0@@0@@0@@0@@6698@@6698@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ImperialTalism an@@A~rare~talisman.~When~you~upgrade~it~to~Super~ quality,~you`ll~grow~a~pair~of~wings.@@5@@0@@0@@0@ @7040@@500@@500@@300@@400@@250@@0@@ 204008@@TempestWing@@0@@0@@100@@0@@0@@0@@0@@0@@0@@ 0@@37818@@0@@0@@0@@0@@0@@0@@0@@0@@6698@@6698@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@ImperialTalism an@@A~rare~talisman.~When~you~upgrade~it~to~Super~ quality,~you`ll~grow~a~pair~of~wings.@@5@@0@@0@@0@ @7040@@500@@700@@400@@600@@350@@0@@ 204009@@TempestWing@@0@@0@@100@@0@@0@@0@@0@@0@@0@@ 0@@37818@@0@@0@@0@@0@@0@@0@@0@@0@@6698@@6698@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1290@@1290@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@Imperial Talisman@@In~one~screen,~the~hero~has~wings~of~the ~highest~bonus~level~above~+6:~spread~wings;~2-6~heroes:~fold~wings;~others:~no~effect.@@9@@0@@0@ @0@@7040@@500@@1000@@550@@900@@450@@0@@ افتح emoneyShopV2 PHP: 204009 equip|new In~one~screen,~the~hero~has~wings~of~the~highest~b onus~level~above~+6:~spread~wings;~2-6~heroes:~fold~wings;~others:~no~effect. الباتش ده هتفكو فى السورس http://www.mediafire.com/download/xm4c1njwcrjbx56/Map+in+source+and+ItemsPlus.zip وده فى الباتش بتاع السورس http://www.mediafire.com/download/8w58o8zqti6rogg/Patch+In+Client.rar ملوحوظه لو جبلك ايرو فى GameClient غيرو الى GameState والعكس صحيح بروضو وبكدا مبروك الابجريد كامل 100% ارجو التقييم+التثبيت