Example #1
0
 private static string GetGumpType(IntPtr pHandle, IntPtr gHandle)
 {
     byte[] data = new byte[128];
     IntPtr stringAddress = (IntPtr)GumpHelper.GetUINT(pHandle, gHandle, 8);
     if (stringAddress == IntPtr.Zero) return "";
     Memory.Read(pHandle, stringAddress, data, true);
     for (int x = 1; x < data.Length; x++)
     {
         if (data[x] == 0)
         {
             return ASCIIEncoding.ASCII.GetString(data, 0, x);
         }
     }
     return "";
 }
Example #2
0
        public static GumpInfo[] GetGumpList(int client)
        {
            ClientInfo      ci;
            List <GumpInfo> gumpList = new List <GumpInfo>();

            if (ClientInfoCollection.GetClient(client, out ci))
            {
                gumpList.Add(new GumpInfo(ci.Handle, ci.GumpFunctionCaveAddress, ci.TopGumpHandle, ci.DateStamp));
                IntPtr[] gumpHandles = GumpHelper.GetGumpHandles(ci.Handle, ci.TopGumpHandle);
                foreach (IntPtr i in gumpHandles)
                {
                    gumpList.Add(new GumpInfo(ci.Handle, ci.GumpFunctionCaveAddress, i, ci.DateStamp));
                }
            }
            return(gumpList.ToArray());
        }
Example #3
0
 public GumpInfo(IntPtr processHandle, IntPtr gumpFunctionCaveAddress, IntPtr gumpHandle, int datestamp)
 {
     myProcessHandle = processHandle;
     myGumpFunctionCaveAddress = gumpFunctionCaveAddress;
     myGumpHandle = gumpHandle;
     myType = GetGumpType(processHandle, gumpHandle);
     myXAddress = (IntPtr)((ulong)gumpHandle + 0x34);
     myYAddress = (IntPtr)((ulong)gumpHandle + 0x38);
     myWidth = GumpHelper.GetINT(processHandle, gumpHandle, 0x24);
     myHeight = GumpHelper.GetINT(processHandle, gumpHandle, 0x28);
     myID = GetID(processHandle, gumpHandle, myType);
     mySerial = GetSerial(processHandle, gumpHandle, myType, datestamp);
     myGumpHandleBytes = BitConverter.GetBytes((uint)gumpHandle);
     myDateStamp = datestamp;
     List<GumpInfo> gumpInfoList = new List<GumpInfo>();
     IntPtr[] gumpHandles = GumpHelper.GetSubGumps(processHandle, gumpHandle);
     foreach (IntPtr i in gumpHandles)
     {
         gumpInfoList.Add(new GumpInfo(processHandle, gumpFunctionCaveAddress, i, datestamp));
     }
     mySubGumps = gumpInfoList.ToArray();
 }
Example #4
0
 private static byte[] GetVTableBytes(IntPtr pHandle, IntPtr gHandle)
 {
     return(BitConverter.GetBytes((GumpHelper.GetUINT(pHandle, gHandle))));
 }