رد: ابجريد 6133 وحل جميع المشاكل من ماندووووووو
[info]شغلك تمام اوووي[/info]
اقتباس:
المشاركة الأصلية كتبت بواسطة mandopopo
[CENTER][SIZE="5"]
اهلا بكل اعضاء ايجى نت
اولا الشرح منقول للافادة يعنى مش بتاعى تمام
النهارده معانا شرح اضافة ابجريد 6133
وحل جميع مشاكله كمان يلا بينا نبدا
اولاً افتح Equipment.cs
وابحث عن
بدل بى دول
كود 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 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,
ضيف ده تحتيه على طول
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()); } } }
كود 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:
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.
الباتش ده هتفكو فى السورس
المحتوى المخفي لايقتبس
وده فى الباتش بتاع السورس
المحتوى المخفي لايقتبس
ملوحوظه لو جبلك ايرو فى GameClient غيرو الى GameState والعكس صحيح بروضو
وبكدا مبروك الابجريد كامل 100%
ارجو التقييم+التثبيت
|
|