Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void MagicAttack(Player player,ushort x, ushort y, uint spellid, uint TargetUID, ushort TargetX, ushort TargetY)
- {
- int magicType, magicLevel;
- InteractQuery pQuery = new InteractQuery();
- BitUnfold32(pQuery.Data[0], out magicType, out magicLevel);
- magicType = (ushort)(ExchangeShortBits((uint)spellid - 0x14be, 3) ^ player.UID ^ 0x915d);
- magicLevel = (ushort)((magicLevel + 0x100 * ((uint)DateTime.Now.GetHashCode() % 0x100)) ^ 0x3721);
- pQuery.Data[0] = BitFold32(magicType, magicLevel);
- TargetUID = (uint)ExchangeLongBits((((uint)TargetUID - 0x8b90b51a) ^ (uint)player.UID ^ 0x5f2d2463u), 32 - 13);
- x = (ushort)(ExchangeShortBits((uint)x - 0xdd12, 1) ^ player.UID ^ 0x2ed6);
- y = (ushort)(ExchangeShortBits((uint)y - 0x76de, 5) ^ player.UID ^ 0xb99b);
- byte[] packet = new byte[44 + 8];
- ReadWrite.WriteUInt16(44, 0, packet);
- ReadWrite.WriteUInt16(1022, 2, packet);
- ReadWrite.WriteUInt32((uint)DateTime.Now.GetHashCode(), 4, packet);
- ReadWrite.WriteUInt32(player.UID, 12, packet);
- ReadWrite.WriteUInt32((uint)TargetUID, 16, packet);
- ReadWrite.WriteUInt16(x, 20, packet); //Getting the same value of x ! WTF !!
- ReadWrite.WriteUInt16(y, 22, packet);
- ReadWrite.WriteUInt16(24, 24, packet); //attacktype
- ReadWrite.WriteUInt16((ushort)pQuery.Data[0], 28, packet); // What is 0 Index ?!!
- ReadWrite.WriteString("TQClient", 44, packet);
- player.SendToServer(packet);
- }
- public static void BitUnfold32(int bits32, out int lower16, out int upper16)
- {
- lower16 = (int)(bits32 & UInt16.MaxValue);
- upper16 = (int)(bits32 >> 16);
- }
- public static int BitFold32(int lower16, int higher16)
- {
- return (lower16) | (higher16 << 16);
- }
- private static uint ExchangeShortBits(uint data, int bits)
- {
- data &= 0xffff;
- return ((data >> bits) | (data << (16 - bits))) & 0xffff;
- }
- private static uint ExchangeLongBits(uint data, int bits)
- {
- return (data >> bits) | (data << (32 - bits));
- }
- public unsafe struct InteractQuery
- {
- public fixed int Data[4]; // ?!!
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement