syntax example:
Code: Select all
/echo $char(hotbutton,3)in EQLib_MacroParser.cpp
Code: Select all
// $char(hotbutton,x) example: /echo $char(hotbutton,1)
} else if (!strncmp("char(hotbutton,",szVar,15)) {
if (!strstr(szVar,")")) {
DebugSpew("PMP - Bad $char() '%s'",szVar);
i--;
szOutput[j] = '@';
j++;
} else {
CHAR szTemp[MAX_STRING] = {0};
if (EQADDR_CLASSHOTBUTTONWND) {
PEQHOTBUTTONWINDOW pHotButtonWindow = NULL;
PEQHOTBUTTONWINDOW pHotButton = NULL;
pHotButtonWindow = (PEQHOTBUTTONWINDOW)*EQADDR_CLASSHOTBUTTONWND;
i += (strstr(szVar,")")-szVar);
PCHAR szArg = szVar+15;
DWORD HB = atoi(szArg);
if (HB>0 && HB<11) {
HB--;
if (pHotButtonWindow->HotButtons[HB]){
pHotButton = NULL;
pHotButton = (PEQHOTBUTTONWINDOW)pHotButtonWindow->HotButtons[HB];
DebugSpew("hotbutton check for HB %x and arg passed was %s",HB,szArg);
if (pHotButton->HBRefreshed != 0) {
strcpy(szTemp,"FALSE");
} else {
strcpy(szTemp,"TRUE");
}
} else {
strcpy(szTemp,"NULL");
}
}
}else {
strcpy(szTemp,"offset error");
}
strcat(szOutput,szTemp);
j += strlen(szTemp);
}[color=red]
// $char(buff,xxx)[/color] Code: Select all
DWORD *EQADDR_CLASSHOTBUTTONWND;Code: Select all
extern DWORD *EQADDR_CLASSHOTBUTTONWND;Code: Select all
GetPrivateProfileString("Class Locations","ClassHotButtonWnd","0",szBuffer,MAX_STRING,ClientINI); EQADDR_CLASSHOTBUTTONWND = (PDWORD)strtoul(szBuffer,NULL,16);Code: Select all
typedef struct _EQHOTBUTTONWINDOW {
DWORD WindowID;
DWORD TimeMouseOver; //how many ms the window has had the mouse over it...
DWORD Unknown0x008; // 2000 seems a common value
DWORD Unknown0x00c; //500 seems a common value
BYTE Flag;
BYTE MouseOver; //01 yes 00 no
BYTE Unknown0x012;
BYTE Unknown0x013;
BYTE Unknown0x014[12];
struct _EQWINDOW *pDownTheTreeOnSameWindow;
struct _EQWINDOW *pNextWindow;
DWORD Flags4;
DWORD Z; //not sure but its logical to assume it at this point...
DWORD X;
DWORD Y;
DWORD Height;
DWORD Width;
DWORD Depth; //hmmm...
BYTE Unknown0x040[12];
BYTE Open; //1 open 0 closed
BYTE Unknown0x051[7];
DWORD somekindofID;
DWORD *pUnknownStruct0x060;
struct _EQWINDOWINFO *Info;
BYTE Unknown[88];
BYTE Unknown1[68];
DWORD SlotID;
DWORD Unknown2;
DWORD HBRefreshed;
DWORD Unknown3[2];
BYTE Selector; //this graphically selects an item on/off
BYTE Unknown4[7];
BYTE Unknown5[40];
DWORD HotButtonWndView;//0 to 9 for the different views
struct _EQHOTBUTTONWINDOW *HotButtons[10];//theese will change when you switch page...
} EQHOTBUTTONWINDOW, *PEQHOTBUTTONWINDOW;Code: Select all
[Class Locations]
ClassHotButtonWnd=005fe230
donations for this month's patches.
