المشاركة الأصلية كتبت بواسطة Ahmed Mosalam
(المشاركة 54168)
أولا انا كتبت باللغة المعاقة ديه عشان مكنتش لسا معرب الكيبورد , ثانيا اذا كنت حضرتك هستاعدني فا ساعدني , لكن متحسسنيش انك بتتفضل عليا عشان بتديني معلومة يمكن انا معرفهاش , اللي انت شايفة بالنسبالك ممكن يكون صعب بالنسبة لغيرك , فا بدل متحسس الي قدامك بجهله , خليك انت احسن و اشرحله .
دلوقتي انا لقيت ال CharacterInfo packet و لقيت ال Window stats و مش عارف الغلط فيين لان الOffset شكله صح مش غلط , فا لو حضرتك هتقدر تساعد هكون شاكر , مش هتقدر يبقي كتر خيرك علي وقتك و مجهودك
كود PHP:
using System;
namespace PlayConquer.Network.GamePackets
{
public class CharacterInfo : Writer, Interfaces.IPacket
{
Client.GameState client;
public CharacterInfo(Client.GameState _client)
{
client = _client;
}
public void Deserialize(byte[] buffer)
{
throw new NotImplementedException();
}
public byte[] ToArray()
{
byte[] Packet = new byte[144 + client.Entity.Spouse.Length + client.Entity.Name.Length + 8];
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);
Write(client.Entity.Money, 20, Packet);
Write(client.Entity.ConquerPoints, 28, Packet);
Writer.Write(client.Entity.Experience, 32, Packet);
Writer.Write(client.Entity.Strength, 60, Packet);
Writer.Write(client.Entity.Agility, 62, Packet);
Writer.Write(client.Entity.Vitality, 64, Packet);
Writer.Write(client.Entity.Spirit, 66, Packet);
Writer.Write(client.Entity.Atributes, 68, Packet);
Write(client.Entity.Hitpoints, 70, Packet);
Writer.Write(client.Entity.Mana, 74, Packet);
Writer.Write(client.Entity.PKPoints, 72, 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;
Writer.Write(client.Entity.Windwalker, 89, Packet);
Writer.Write((ushort)(client.Entity.EnlightenPoints * 100), 93, Packet);
Write(client.Entity.BoundCps, 107, Packet);
Write(client.Entity.SubClasses.Active, 111, Packet);
Write(client.Entity.SubClasses.GetHashPoint(), 112, Packet);
Writer.Write((UInt16)client.Entity.MyTitle, 103, Packet);
Writer.Write((ushort)client.Entity.CountryID, 124, Packet);
Writer.Write(3, 130 + 8, Packet);
Packet[139] = (byte)client.Entity.Name.Length;
Writer.Write(client.Entity.Name, 140, Packet);
Writer.Write((byte)client.Entity.Spouse.Length, 141 + client.Entity.Name.Length, Packet);
Writer.Write(client.Entity.Spouse, 142 + client.Entity.Name.Length, Packet);
return Packet;
}
public void Send(Client.GameState client)
{
client.Send(ToArray());
}
}
}
كود PHP:
using System;
using PlayConquer;
using PlayConquer.Client;
using PlayConquer.Network;
namespace PlayConquer.Network.GamePackets
{
public class WindowsStats : Writer, Interfaces.IPacket
{
byte[] array;
public WindowsStats(Client.GameState client)
{
array = new Byte[144 + 8];
Writer.Write((UInt16)(array.Length - 8), 0, array);
Writer.Write((UInt16)1040, 2, array);
Writer.Write((UInt32)Time32.timeGetTime().GetHashCode(), 4, array);
Writer.Write(client.Entity.UID, 8, array);
Writer.Write(client.Entity.MaxHitpoints, 12, array);
Writer.Write((UInt32)client.Entity.MaxMana, 16, array);
Writer.Write((UInt32)client.Entity.MaxAttack, 20, array);
Writer.Write((UInt32)client.Entity.MinAttack, 24, array);
Writer.Write((UInt32)client.Entity.Defence, 28, array);
Writer.Write((UInt32)client.Entity.MagicAttack, 32, array);
Writer.Write((UInt32)client.Entity.MagicDefence, 36, array);
Writer.Write((UInt32)client.Entity.Dodge, 40, array);
Writer.Write((UInt32)client.Entity.Agility + client.Entity.HitRate, 44, array);
Writer.Write((UInt32)(client.Entity.Accuracy), 48, array);
Writer.Write((UInt32)(client.Entity.Gems[1]), 52, array);
Writer.Write((UInt32)(client.Entity.Gems[0]), 56, array);
Writer.Write((UInt32)(client.Entity.MagicDefencePercent), 60, array);
Writer.Write((UInt32)(client.Entity.Gems[7]), 64, array);
Writer.Write((UInt32)((1 - client.Entity.ItemBless) * 100), 68, array);
Writer.Write((UInt32)client.Entity.CriticalStrike, 72, array);
Writer.Write((UInt32)client.Entity.SkillCStrike, 76, array);
Writer.Write((UInt32)client.Entity.Immunity, 80, array);
Writer.Write((UInt32)client.Entity.Penetration, 84, array);
Writer.Write((UInt32)client.Entity.Block, 88, array);
Writer.Write((UInt32)client.Entity.Breaktrough, 92, array);
Writer.Write((UInt32)client.Entity.Counteraction, 96, array);
Writer.Write((UInt32)client.Entity.Detoxication, 100, array);
Writer.Write((UInt32)client.Entity.PhysicalDamageIncrease, 104, array);
Writer.Write((UInt32)client.Entity.MagicDamageIncrease, 108, array);
Writer.Write((UInt32)client.Entity.PhysicalDamageDecrease, 112, array);
Writer.Write((UInt32)client.Entity.MagicDamageDecrease, 116, array);
Writer.Write((UInt32)client.Entity.MetalResistance, 120, array);
Writer.Write((UInt32)client.Entity.WoodResistance, 124, array);
Writer.Write((UInt32)client.Entity.WaterResistance, 128, array);
Writer.Write((UInt32)client.Entity.FireResistance, 132, array);
Writer.Write((UInt32)client.Entity.EarthResistance, 136, array);
Writer.Write((UInt16)client.Equipment.TotalStars, 140, array);
}
public void Send(Client.GameState client)
{
client.Send(array);
}
public byte[] ToArray()
{
return array;
}
public void Deserialize(byte[] buffer)
{
array = buffer;
}
}
}
|