SHARE
TWEET

MsgTIck System by Pezzi Tomas

XConquer Jun 2nd, 2020 845 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
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top