Exemple #1
0
        public bool GetState()
        {
            if (st_data_len == 0)
            {
                return(true);
            }

            uint tmp = st_addr + baseaddr;

            if (st_ptr_offs != null)
            {
                tmp = mem.Read(st_addr) + st_ptr_offs[0];
                for (int i = 1; i < st_ptr_offs.Length; i++)
                {
                    tmp = mem.Read(tmp) + st_ptr_offs[i];
                }
            }
            byte[] tarr = mem.ReadBytes(tmp, st_data_len);
            for (int i = 0; i < st_data_len; i++)
            {
                if (tarr[i] != st_val[i])
                {
                    return(false);
                }
            }
            return(true);
        }
 void NetSend()
 {
     try
     {
         int    i;
         uint   tmp;
         byte[] buffer = new byte[BUFFER_LEN];
         byte[] nul    = new byte[4];
         while (true)
         {
             Thread.Sleep(THD_SLEEP);
             //Ped
             tmp = (uint)(mem.Read(PTR_PLR_PED) + OFS_PLR_PED[0]);
             tmp = (uint)(mem.Read(tmp) + OFS_PLR_PED[1]);
             if (mem.ReadByte(tmp - OFS_ONF) == 1)
             {
                 Array.Copy(nul, 0, buffer, BUFFER_PED, 4);
                 mem.ReadBytes(tmp, BUFFER_PED);
                 Array.Copy(mem.ReadBytes(tmp, BUFFER_PED), buffer, BUFFER_PED);
             }
             //Vehicle
             else
             {
                 tmp = (uint)(mem.Read(PTR_PLR_VEH) + OFS_PLR_VEH[0]);
                 for (i = 1; i < 5; i++)
                 {
                     tmp = (uint)(mem.Read(tmp) + OFS_PLR_VEH[i]);
                 }
                 Array.Copy(mem.ReadBytes(tmp, BUFFER_VEH), 0, buffer, BUFFER_PED, BUFFER_VEH);
                 Array.Copy(nul, buffer, 4);
             }
             sock.Send(buffer);
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Source + " - " + e.Message, Text,
                         MessageBoxButtons.OK, MessageBoxIcon.Error);
         if (game != null && !game.HasExited)
         {
             game.Kill();
         }
         Environment.Exit(0);
     }
 }
Exemple #3
0
 void Snd()
 {
     try
     {
         byte[]  buffer = new byte[BUFFER_SIZE - GlobalInfo.BUFFER_DIDX];
         byte[]  data;
         uint    address;
         int     idx, len;
         Pointer ptr;
         while (true)
         {
             Thread.Sleep(THD_SLEEP);
             for (int st = 0; st < game_addrs.Length; st++)
             {
                 ptr = game_addrs[st];
                 if (ptr.GetState())
                 {
                     idx       = GlobalInfo.BUFFER_DIDX;
                     buffer[0] = (byte)st;
                     for (int adr = 0; adr < ptr.addresses.GetLength(1); adr++)
                     {
                         address = ptr.GetAddr(GlobalInfo.ADDR_PLAYER, adr);
                         len     = ptr.data[adr].data_len;
                         data    = mem.ReadBytes(address, len);
                         Array.Copy(data, 0, buffer, idx, len);
                         idx += len;
                     }
                     sock.Send(buffer);
                     break;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MsgBox(ex);
         if (game != null && !game.HasExited)
         {
             game.Kill();
         }
         Environment.Exit(0);
     }
 }
Exemple #4
0
 void NetSend()
 {
     try
     {
         byte[] buffer = new byte[BUFFER_LEN];
         while (true)
         {
             Thread.Sleep(THD_SLEEP);
             Array.Copy(mem.ReadBytes(PLAYER_ADDR, BUFFER_LEN), buffer, BUFFER_LEN);
             sock.Send(buffer);
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Source + " - " + e.Message, Text,
                         MessageBoxButtons.OK, MessageBoxIcon.Error);
         if (game != null && !game.HasExited)
         {
             game.Kill();
         }
         Environment.Exit(0);
     }
 }