XConquer

MsgTIck System by Pezzi Tomas

Jun 2nd, 2020
1,349
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PacketHandler.cs o MsgHandler.cs (Adaptenlo :v)
  2. ---------------------------------------------------------------------------------------
  3.  [PacketHandlerType(PacketType.MsgTick)]
  4.         public void MsgTickHandler(Client client, byte[] packet)
  5.         {
  6.             var tick = new MsgTick(false);
  7.             tick.Deserialize(packet);
  8.             if (client.Entity.UID != tick.EntityID)
  9.             {
  10.                 client.Disconnect();
  11.             }
  12.  
  13.             if (HashName(client.Entity.Name) != tick.NameHash)
  14.             {
  15.                 client.Disconnect();
  16.             }
  17.  
  18.             uint EntityTick = tick.TimeStamp2 ^ tick.EntityID;
  19.  
  20.             if (client.Entity.LastClientTick == 0)
  21.                 client.Entity.LastClientTick = EntityTick;
  22.  
  23.             if (client.Entity.LastClientTick > EntityTick)
  24.             {
  25.                 client.Send(new Message("Tu Conexion es Muy Mala, Seràs desconectado!", System.Drawing.Color.Red, Message.TopLeft));
  26.                 client.Disconnect();
  27.             }
  28.  
  29.             client.Entity.LastClientTick = EntityTick;
  30.             client.Entity.LastRecClientTick = NativeTime32.Now.Value;
  31.  
  32.             if ((NativeTime32.Now.Value - client.Entity.LastRecClientTick) > 35000)
  33.             {
  34.                 client.Disconnect();
  35.             }
  36.             if ((NativeTime32.Now.Value - client.Entity.LastReqClientTick) >= 30000)
  37.             {
  38.                 var tick2 = new MsgTick(true);
  39.                 tick2.TimeStamp1 = (uint)Time32.timeGetTime().GetHashCode();
  40.                 tick2.EntityID = client.Entity.UID;
  41.                 tick2.TQCrypto1 = (uint)MyMath.Generate(0x1FFFFFFF, 0x7FFFFFFF);
  42.                 tick2.TQCrypto2 = (uint)MyMath.Generate(0x1FFFFFFF, 0x7FFFFFFF);
  43.                 tick2.TQCrypto3 = (uint)MyMath.Generate(0x1FFFFFFF, 0x7FFFFFFF);
  44.                 tick2.TQCrypto4 = (uint)MyMath.Generate(0x1FFFFFFF, 0x7FFFFFFF);
  45.                 client.Send(tick);
  46.                 client.Entity.LastReqClientTick = NativeTime32.Now.Value;
  47.             }
  48.         }
  49.  
  50. Tipo ID: 1012 (es el ID del Packet)
  51. ---------------------------------------------------------------------------------------
  52. Entity.cs o Player.cs
  53. public uint LastClientTick, LastRecClientTick, LastReqClientTick;
  54.  
  55. Despues Buscan si tienen : (Si no lo tienen Busquen Similares)
  56. public Entity(EntityFlag Flag, bool companion)
  57. y Agregan :
  58. LastClientTick = 0;
  59. LastRecClientTick = NativeTime32.Now.Value;
  60. LastReqClientTick = NativeTime32.Now.Value;
  61.  
  62. ---------------------------------------------------------------------------------------
  63. Crean Una Nueva Clase :
  64.  
  65. using System; using PezziCO2; using PezziCO2.MySqlWrapper;
  66. using System.Collections.Generic;
  67. using System.Linq;
  68. using System.Text;
  69. using System.Threading.Tasks;
  70. // Creditos Reservados a Teamxor(R.I.P Foro) y A mi (Pezzi Tomas) Por el Adaptamiento!
  71. namespace WorldServer.Packets
  72. {
  73.     public class MsgTick : Writer, Interfaces.IPacket
  74.     {
  75.         byte[] Buffer;
  76.  
  77.         public MsgTick(bool Create)
  78.         {
  79.             if (Create)
  80.             {
  81.                 Buffer = new byte[36 + 8];//36 - 8 Para versiones inferiores a 6xxx (es decir a 5xxx)
  82.                 WriteUInt16(36, 0, Buffer);
  83.                 WriteUInt16(1012, 2, Buffer);
  84.             }
  85.         }
  86.  
  87.         public uint TimeStamp1
  88.         {
  89.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 4); }
  90.             set { Writer.WriteUInt32(value, 4, Buffer); }
  91.         }
  92.  
  93.         public uint EntityID
  94.         {
  95.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 8); }
  96.             set { Writer.WriteUInt32(value, 8, Buffer); }
  97.         }
  98.  
  99.         public uint TimeStamp2
  100.         {
  101.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 12); }
  102.             set { Writer.WriteUInt32(value, 12, Buffer); }
  103.         }
  104.  
  105.         public uint TQCrypto1
  106.         {
  107.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 16); }
  108.             set { Writer.WriteUInt32(value, 16, Buffer); }
  109.         }
  110.  
  111.         public uint TQCrypto2
  112.         {
  113.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 20); }
  114.             set { Writer.WriteUInt32(value, 20, Buffer); }
  115.         }
  116.  
  117.         public uint TQCrypto3
  118.         {
  119.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 24); }
  120.             set { Writer.WriteUInt32(value, 24, Buffer); }
  121.         }
  122.  
  123.         public uint TQCrypto4
  124.         {
  125.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 28); }
  126.             set { Writer.WriteUInt32(value, 28, Buffer); }
  127.         }
  128.  
  129.         public uint NameHash
  130.         {
  131.             get { return PezziCO2.BitConverter.ToUInt32(Buffer, 32); }
  132.             set { Writer.WriteUInt32(value, 32, Buffer); }
  133.         }
  134.  
  135.         public byte[] ToArray()
  136.         {
  137.             return Buffer;
  138.         }
  139.  
  140.         public void Deserialize(byte[] buffer)
  141.         {
  142.             Buffer = buffer;
  143.         }
  144.  
  145.         public void Send(Client client)
  146.         {
  147.             client.Send(Buffer);
  148.         }
  149.     }
  150. }
  151. -------------------------------------------------------------------------
  152. Crean Otra Nueva Clase :
  153.  
  154. using System.Runtime.InteropServices;
  155. using System; using PezziCO2;
  156.  
  157. namespace PezziCO2
  158. {
  159.     public struct NativeTime32
  160.     {
  161.         private uint value;
  162.         public readonly static NativeTime32 NULL = new NativeTime32(0);
  163.         public static NativeTime32 Now
  164.         {
  165.             get
  166.             {
  167.                 return new NativeTime32((uint)Environment.TickCount);
  168.             }
  169.         }
  170.         public uint Value
  171.         {
  172.             get
  173.             {
  174.                 return value;
  175.             }
  176.         }
  177.         public NativeTime32(uint Value)
  178.         {
  179.             value = Value;
  180.         }
  181.         public NativeTime32(int Value)
  182.         {
  183.             value = (uint)Value;
  184.         }
  185.         public NativeTime32(long Value)
  186.         {
  187.             value = (uint)Value;
  188.         }
  189.  
  190.         public NativeTime32 AddMilliseconds(int Amount)
  191.         {
  192.             return new NativeTime32(this.value + Amount);
  193.         }
  194.         public NativeTime32 AddMilliseconds(uint Amount)
  195.         {
  196.             return new NativeTime32(this.value + Amount);
  197.         }
  198.  
  199.         public uint AllMilliseconds()
  200.         {
  201.             return value;
  202.         }
  203.  
  204.         public NativeTime32 AddSeconds(int Amount)
  205.         {
  206.             return AddMilliseconds(Amount * 1000);
  207.         }
  208.         public NativeTime32 AddSeconds(uint Amount)
  209.         {
  210.             return AddMilliseconds(Amount * 1000);
  211.         }
  212.         public uint AllSeconds()
  213.         {
  214.             return AllMilliseconds() / 1000;
  215.         }
  216.  
  217.         public NativeTime32 AddMinutes(int Amount)
  218.         {
  219.             return AddSeconds(Amount * 60);
  220.         }
  221.         public NativeTime32 AddMinutes(uint Amount)
  222.         {
  223.             return AddSeconds(Amount * 60);
  224.         }
  225.         public uint AllMinutes()
  226.         {
  227.             return AllSeconds() / 60;
  228.         }
  229.  
  230.         public NativeTime32 AddHours(int Amount)
  231.         {
  232.             return AddMinutes(Amount * 60);
  233.         }
  234.         public NativeTime32 AddHours(uint Amount)
  235.         {
  236.             return AddMinutes(Amount * 60);
  237.         }
  238.         public uint AllHours()
  239.         {
  240.             return AllMinutes() / 60;
  241.         }
  242.  
  243.         public NativeTime32 AddDays(int Amount)
  244.         {
  245.             return AddHours(Amount * 24);
  246.         }
  247.         public NativeTime32 AddDays(uint Amount)
  248.         {
  249.             return AddHours(Amount * 24);
  250.         }
  251.         public uint AllDays()
  252.         {
  253.             return AllHours() / 24;
  254.         }
  255.  
  256.  
  257.         public bool Next(uint due = 0, uint time = 0)
  258.         {
  259.             if (time == 0) time = (uint)Environment.TickCount;
  260.             return (value + due <= time);
  261.         }
  262.         public void Set(uint due, uint time = 0)
  263.         {
  264.             if (time == 0) time = (uint)Environment.TickCount;
  265.             value = time + due;
  266.         }
  267.         public void SetSeconds(uint due, uint time = 0)
  268.         {
  269.             Set(due * 1000, time);
  270.         }
  271.  
  272.         public override bool Equals(object obj)
  273.         {
  274.             if (obj is NativeTime32)
  275.                 return ((NativeTime32)obj == this);
  276.             return base.Equals(obj);
  277.         }
  278.         public override string ToString()
  279.         {
  280.             return value.ToString();
  281.         }
  282.         public override int GetHashCode()
  283.         {
  284.             return (int)value;
  285.         }
  286.  
  287.         public static bool operator ==(NativeTime32 t1, NativeTime32 t2)
  288.         {
  289.             return (t1.value == t2.value);
  290.         }
  291.         public static bool operator !=(NativeTime32 t1, NativeTime32 t2)
  292.         {
  293.             return (t1.value != t2.value);
  294.         }
  295.         public static bool operator >(NativeTime32 t1, NativeTime32 t2)
  296.         {
  297.             return (t1.value > t2.value);
  298.         }
  299.         public static bool operator <(NativeTime32 t1, NativeTime32 t2)
  300.         {
  301.             return (t1.value < t2.value);
  302.         }
  303.         public static bool operator >=(NativeTime32 t1, NativeTime32 t2)
  304.         {
  305.             return (t1.value >= t2.value);
  306.         }
  307.         public static bool operator <=(NativeTime32 t1, NativeTime32 t2)
  308.         {
  309.             return (t1.value <= t2.value);
  310.         }
  311.         public static NativeTime32 operator -(NativeTime32 t1, NativeTime32 t2)
  312.         {
  313.             return new NativeTime32(t1.value - t2.value);
  314.         }
  315.     }
  316. }
  317.  
  318. ------------------------------------------------------------
  319. Si no lo saben instalar me hablan por facebook! y les cobro Baratito!
RAW Paste Data