Code: Select all
VOID GetItemLink(PCONTENTS Item, PCHAR Buffer)
{
char hash[256];
DWORD haddr=(DWORD)&hash[0];
__asm {
push eax;
push ecx;
push haddr;
mov ecx, Item;
call [EQADDR_GETITEMLINKHASH];
pop ecx;
pop eax;
};
sprintf(Buffer,"%c0%s%s%c",0x12,hash,Item->Item->Name,0x12);
}
Code: Select all
extern DWORD EQADDR_GETITEMLINKHASH;
.
.
.
extern VOID GetItemLink(PCONTENTS Item, PCHAR Buffer);
Code: Select all
DWORD EQADDR_GETITEMLINKHASH=0;
.
.
.
GetPrivateProfileString("Function Locations","GetItemLinkHash","0",szBuffer,MAX_STRING,ClientINI); EQADDR_GETITEMLINKHASH = (DWORD)strtoul(szBuffer,NULL,16);
Code: Select all
char Link[256];
PCONTENTS something;
GetItemLink(something,Link);
sprintf(out,"Some item %s",Link);
WriteChatColor(out,USERCOLOR_DEFAULT); // or Chat(out)
Code: Select all
WriteChatBuffer("Listing of Bank Inventory",USERCOLOR_DEFAULT);
WriteChatBuffer("-------------------------",USERCOLOR_DEFAULT);
[color=red] char Link[256];[/color]
for (int a=0;a<18;a++) {
pContainer=pCharInfo->Bank[a];
if (pContainer) {
[color=red] GetItemLink(pContainer,&Link[0]);
sprintf(szTemp,"Slot %d: %dx %s (%s)",a,pContainer->StackCount ? pContainer->StackCount : 1,Link,pContainer->Item->LoreName);[/color]
WriteChatBuffer(szTemp,USERCOLOR_DEFAULT);
for (int b=0;b<10;b++) {
if (pContainer->Contents[b]) {
[color=red] GetItemLink(pContainer->Contents[b],&Link[0]);
sprintf(szTemp,"- Slot %d: %dx %s (%s)",b,pContainer->Contents[b]->StackCount ? pContainer->Contents[b]->StackCount : 1,Link,pContainer->Contents[b]->Item->LoreName);[/color]
WriteChatBuffer(szTemp,USERCOLOR_DEFAULT);
}
}
}
}
