Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "StdAfx.h"
- cItem gItem;
- cItem::cItem()
- {
- // -> Constructor
- this->bIsBlackFenrir = FALSE;
- this->bIsBlueFenrir = FALSE;
- this->bIsGoldenFenrir = FALSE;
- this->bIsOrangeFenrir = FALSE;
- this->bIsRedFenrir = FALSE;
- }
- void cItem::Init()
- {
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(i != GET_OBJECT_INDEX(0,0)) // -> Static fix for Kriss
- {
- this->m_Item[i].Type =NULL;
- this->m_Item[i].Index =NULL;
- // ----
- ZeroMemory(this->m_Item[i].Name,sizeof(this->m_Item[i].Name));
- }
- }
- }
- static BOOL bBundledBlessInvenPos_Switcher;
- #pragma optimize("t",on)
- void MASM cItem::BundledBlessInventoryPos()
- {
- static DWORD dwBundledBlessInvenPos_Pointer;
- static DWORD dwBundledBlessInvenPos_Buffer;
- // ----
- bBundledBlessInvenPos_Switcher = FALSE;
- // ----
- _asm
- {
- MOV dwBundledBlessInvenPos_Pointer,ESI
- }
- // -----
- if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(12,30))
- {
- bBundledBlessInvenPos_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenPos_Pointer >= GET_ITEM_INDEX(12,150) && dwBundledBlessInvenPos_Pointer <= GET_ITEM_INDEX(12,156))
- {
- bBundledBlessInvenPos_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenPos_Pointer >= GET_ITEM_INDEX(13,150) && dwBundledBlessInvenPos_Pointer <= GET_ITEM_INDEX(13,152)) // -> All Elemental Fragments
- {
- bBundledBlessInvenPos_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(14,172)) // -> Divine Stone
- {
- bBundledBlessInvenPos_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(14,173)) // -> Jewel of Dark Chaos
- {
- bBundledBlessInvenPos_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(0,36)) // -> Divine Archangel Blade (Small Fix)
- {
- bBundledBlessInvenPos_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(5,38)) // -> Summon Spirit Stick (Small Fix)
- {
- bBundledBlessInvenPos_Switcher = TRUE;
- }
- // ----
- if(bBundledBlessInvenPos_Switcher == TRUE)
- {
- _asm
- {
- MOV dwBundledBlessInvenPos_Buffer,oBundledBlessInvenPos_Allowed
- JMP dwBundledBlessInvenPos_Buffer
- }
- }
- else
- {
- _asm
- {
- MOV dwBundledBlessInvenPos_Buffer,oBundledBlessInvenPos_Return
- JMP dwBundledBlessInvenPos_Buffer
- }
- }
- }
- #pragma optimize("t",off)
- static BOOL bBundledBlessInvenSize_Switcher;
- #pragma optimize("t",on)
- void MASM cItem::BundledBlessInventorySize()
- {
- static DWORD dwBundledBlessInvenSize_Pointer;
- static DWORD dwBundledBlessInvenSize_Buffer;
- // ----
- bBundledBlessInvenSize_Switcher = FALSE;
- // ----
- _asm
- {
- MOV dwBundledBlessInvenSize_Pointer,ESI
- }
- // ----
- if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(12,30))
- {
- bBundledBlessInvenSize_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenSize_Pointer >= GET_OBJECT_INDEX(12,150) && dwBundledBlessInvenSize_Pointer <= GET_OBJECT_INDEX(12,156))
- {
- bBundledBlessInvenSize_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenSize_Pointer >= GET_OBJECT_INDEX(13,150) && dwBundledBlessInvenSize_Pointer <= GET_OBJECT_INDEX(13,152)) // -> All Elemental Fragments
- {
- bBundledBlessInvenSize_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(14,172)) // -> Divine Stone
- {
- bBundledBlessInvenSize_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(14,173)) // -> Jewel of Dark Chaos
- {
- bBundledBlessInvenSize_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(0,36)) // -> Divine Archangel Blade (Small Fix)
- {
- bBundledBlessInvenSize_Switcher = TRUE;
- }
- else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(5,38)) // -> Summon Spirit Stick (Small Fix)
- {
- bBundledBlessInvenSize_Switcher = TRUE;
- }
- // ----
- if(bBundledBlessInvenSize_Switcher == TRUE)
- {
- _asm
- {
- MOV dwBundledBlessInvenSize_Buffer,oBundledBlessInvenSize_Allowed
- JMP dwBundledBlessInvenSize_Buffer
- }
- }
- else
- {
- _asm
- {
- MOV dwBundledBlessInvenSize_Buffer,oBundledBlessInvenSize_Return
- JMP dwBundledBlessInvenSize_Buffer
- }
- }
- }
- #pragma optimize("t",off)
- void cItem::InitBundles()
- {
- gToolKit.SetRange((LPVOID)oBundledBlessInvenPos_Hook,12,ASM::NOP);
- gToolKit.SetJmp((LPVOID)oBundledBlessInvenPos_Hook,this->BundledBlessInventoryPos);
- // ----
- gToolKit.SetRange((LPVOID)oBundledBlessInvenSize_Hook,12,ASM::NOP);
- gToolKit.SetJmp((LPVOID)oBundledBlessInvenSize_Hook,this->BundledBlessInventorySize);
- }
- #define pDrawNumber ((bool(__cdecl*)(int pObj))0x005111F0) // 1.03H CHS
- #define oDrawColorR_Buff 0x007221E2 // 1.03H CHS
- #define oDrawColorG_Buff 0x007221DD // 1.03H CHS
- #define oDrawColorB_Buff 0x007221D8 // 1.03H CHS
- void cItem::DrawColors(int iColor)
- {
- if(iColor == eNormalNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x66);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x66);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x66);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x33);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x33);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x33);
- }
- else if(iColor == eBlueNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
- }
- else if(iColor == eRedNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
- }
- else if(iColor == eGoldenNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3D);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0xCC);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0xCC);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0xCD);
- }
- else if(iColor == eGreenNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
- }
- else if(iColor == eLBlueNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x7B);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0xB9);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x8C);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
- }
- else if(iColor == eLGreenNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3E);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0xB3);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x33);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x33);
- }
- else if(iColor == eOrangeNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x40);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
- }
- else if(iColor == eBlueJewelNumb)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x15);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x53);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x26);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
- }
- else if(iColor == eLRedNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3E);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0xEB);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x85);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x1F);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3E);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0xEB);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x85);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x1F);
- }
- else if(iColor == ePinkNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x68);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0xF5);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0xC3);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x0B);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0xC6);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0xA8);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x3B);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0xED);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0xFA);
- }
- else if(iColor == ePurpleNumber)
- {
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x6E);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x14);
- gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x7B);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
- gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
- // ----
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x4E);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x56);
- gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x04);
- }
- }
- BOOL cItem::DrawNumber(int pObj) // -> 005111F0
- {
- int pObject = *(WORD*)pObj;
- // ----
- switch(pObject)
- {
- case GET_ITEM_INDEX(12,30):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,31):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,150):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,151):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,152):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,153):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,154):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,155):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- case GET_ITEM_INDEX(12,156):
- gItem.DrawColors(eNormalNumber);
- return TRUE;
- break;
- default:
- return pDrawNumber(pObj) >= 2;
- break;
- }
- }
- void cItem::InitDrawNumber()
- {
- gToolKit.SetOp((LPVOID)0x00509CE0,this->DrawNumber,ASM::CALL); // 1.03H CHS
- gToolKit.SetOp((LPVOID)0x007221B8,this->DrawNumber,ASM::CALL); // 1.03H CHS
- gToolKit.SetOp((LPVOID)0x0076399F,this->DrawNumber,ASM::CALL); // 1.03H CHS
- }
- #define pTextList *(int*)0x7BB0894
- #define pTextNum *(int*)0x7B7DE78
- #define pItemInfo *(int*)0x7B7EC24
- #define pTextListColor *(int*)0x7B7EFDC
- #define pTextBold *(int*)0x7BAE0A8
- #define oTextListColorR 0x00587A66
- #define oTextListColorG 0x00587A61
- #define oTextListColorB 0x00587A5C
- void cItem::AddText(char *Text,int Color,int Weight)
- {
- *(&*(DWORD*)oItemDescriptionText_Color + *(DWORD*)oItemDescriptionText_Line) = Color;
- *(&*(DWORD*)oItemDesctiptionText_Weight + *(DWORD*)oItemDescriptionText_Line) = Weight;
- // ----
- pSetItemTextLine(100 * (*(DWORD*)oItemDescriptionText_Line) + oItemDescriptionText_Point,Text);
- // ----
- *(DWORD*)oItemDescriptionText_Line += 1;
- }
- void cItem::ToolTipEx(float a1,float a2,int a3,char a4,int a5)
- {
- LPITEM lpItem = &*(SITEM*)a3;
- // ----
- switch(lpItem->Index)
- {
- case GET_ITEM_INDEX(13,37):
- {
- if(lpItem->ExcellentOption == ATTACK_FENRIR)
- gItem.bIsBlackFenrir=TRUE;
- else
- gItem.bIsBlackFenrir=FALSE;
- // ----
- if(lpItem->ExcellentOption == DEFENSE_FENRIR)
- gItem.bIsBlueFenrir=TRUE;
- else
- gItem.bIsBlueFenrir=FALSE;
- // ----
- if(lpItem->ExcellentOption == ILLUSION_FENRIR)
- gItem.bIsGoldenFenrir=TRUE;
- else
- gItem.bIsGoldenFenrir=FALSE;
- // ----
- if(lpItem->ExcellentOption == DESTINY_FENRIR)
- gItem.bIsOrangeFenrir=TRUE;
- else
- gItem.bIsOrangeFenrir=FALSE;
- // ----
- if(lpItem->ExcellentOption == NORMAL_FENRIR)
- gItem.bIsRedFenrir=TRUE;
- else
- gItem.bIsRedFenrir=FALSE;
- }
- break;
- default:
- gItem.bIsRedFenrir = FALSE;
- gItem.bIsBlackFenrir = FALSE;
- gItem.bIsBlueFenrir = FALSE;
- gItem.bIsGoldenFenrir = FALSE;
- gItem.bIsOrangeFenrir = FALSE;
- break;
- }
- // ----
- if(lpItem->Index >= GET_ITEM_INDEX(0,0)
- && lpItem->Index <= GET_ITEM_INDEX(15,511))
- {
- if(gInterface.DisabledPack==FALSE)
- {
- pSetBlend(true);
- glColor4f(1.f,1.f,1.f,0.8f);
- // ----
- gItem.CX = 448.f;
- gItem.CY = 175.f;
- // ----
- int Randomizer = rand()%2;
- // ----
- if(lpItem->Index >=GET_ITEM_INDEX(14,240)
- && lpItem->Index <=GET_ITEM_INDEX(14,246))
- {
- switch(lpItem->Index)
- {
- case GET_ITEM_INDEX(14,240):
- case GET_ITEM_INDEX(14,241):
- case GET_ITEM_INDEX(14,242):
- case GET_ITEM_INDEX(14,243):
- case GET_ITEM_INDEX(14,244):
- case GET_ITEM_INDEX(14,245):
- case GET_ITEM_INDEX(14,246):
- {
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),18.f,38.f,(float)(pCursorY),18.f,18.f,1);
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),39.f,60.f,(float)(pCursorY),18.f,18.f,2);
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),61.f,82.f,(float)(pCursorY),18.f,18.f,3);
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),83.f,104.f,(float)(pCursorY),18.f,18.f,4);
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),105.f,125.f,(float)(pCursorY),18.f,18.f,5);
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),126.f,147.f,(float)(pCursorY),18.f,18.f,6);
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),148.f,169.f,(float)(pCursorY),18.f,18.f,7);
- gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),170.f,191.f,(float)(pCursorY),18.f,18.f,8);
- }
- break;
- }
- }
- // ----
- pGLSwitchBlend();
- pGLSwitch();
- // ----
- switch(lpItem->Index)
- {
- case GET_ITEM_INDEX(14,240):
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.SendChat("/packlevel");
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(14,241):
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.SendChat("/packluck");
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(14,242):
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.SendChat("/packskill");
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(14,243):
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.SendChat("/packoption");
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(14,244):
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.SendChat("/packexcellent");
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(14,245):
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.SendChat("/packancient");
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(14,246):
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.SendChat("/packsocket");
- return;
- }
- }
- break;
- default:
- {
- if(gInterface.OnRightClickPackProcess==TRUE)
- {
- gInterface.OnRightClickPackProcess=FALSE;
- return;
- }
- }
- break;
- }
- }
- else if(gInterface.DisabledUnpack==FALSE)
- {
- float ToolTipPosX,ToolTipPosY;
- float AllowTextPX,AllowTextPY;
- float AllowWhiteX,AllowWhiteY;
- float ReturnTextX,ReturnTextY;
- float DenyWhiteTX,DenyWhiteTY;
- // ----
- if(lpItem->Index >= GET_ITEM_INDEX(12,150)
- && lpItem->Index <= GET_ITEM_INDEX(12,156))
- {
- pSetBlend(true);
- glColor4f(1.f,1.f,1.f,0.8f);
- // ----
- float PosXDef = 484.f;
- float PosYDef = 16.f;// Inventory 175.f
- // ----
- if((float)(pCursorX) >= PosXDef
- && (float)(pCursorY) >= PosYDef)
- {
- ToolTipPosX = (float)(pCursorX-101.f);
- ToolTipPosY = (float)(pCursorY+33.f);
- AllowTextPX = (float)(pCursorX-98.f);
- AllowTextPY = (float)(pCursorY+38.f);
- AllowWhiteX = (float)(pCursorX-98.f);
- AllowWhiteY = (float)(pCursorY+48.f);
- ReturnTextX = (float)(pCursorX-98.f);
- ReturnTextY = (float)(pCursorY+38.f);
- DenyWhiteTX = (float)(pCursorX-98.f);
- DenyWhiteTY = (float)(pCursorY+48.f);
- }
- else
- {
- ToolTipPosX = (float)(pCursorX+35.f);
- ToolTipPosY = (float)(pCursorY-35.f);
- AllowTextPX = (float)(pCursorX+38.f);
- AllowTextPY = (float)(pCursorY-32.f);
- AllowWhiteX = (float)(pCursorX+38.f);
- AllowWhiteY = (float)(pCursorY-22.f);
- ReturnTextX = (float)(pCursorX+38.f);
- ReturnTextY = (float)(pCursorY-32.f);
- DenyWhiteTX = (float)(pCursorX+38.f);
- DenyWhiteTY = (float)(pCursorY-22.f);
- }
- // ----
- int Randomizer = rand()%2;
- // ----
- if(Randomizer==1)
- {
- if((float)(pCursorX) >= PosXDef && (float)(pCursorY) >= PosYDef)
- {
- gInterface.DrawGUI(eSMOUSE_IC1,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
- }
- else
- {
- gInterface.DrawGUI(eSMOUSE_IC1,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
- }
- }
- else
- {
- if((float)(pCursorX) >= PosXDef && (float)(pCursorY) >= PosYDef)
- {
- gInterface.DrawGUI(eSMOUSE_IC2,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
- }
- else
- {
- gInterface.DrawGUI(eSMOUSE_IC2,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
- }
- }
- // ----
- gInterface.DrawGUI(eUNPACK_TT1,ToolTipPosX,ToolTipPosY,125.f,57.f);
- gInterface.DrawFormat(eShinyGreen,AllowTextPX,AllowTextPY,FW_BOLD,TRUE,"Unpack Jewel Bundled");
- gInterface.DrawFormat(eWhite180,AllowWhiteX,AllowWhiteY,FW_BOLD,TRUE,"Use Right-Click to Unpack");
- // ----
- pGLSwitchBlend();
- pGLSwitch();
- }
- else
- {
- pSetBlend(true);
- glColor4f(1.f,1.f,1.f,0.8f);
- // ----
- float PosXDef = 484.f;
- float PosYDef = 16.f;//175.f
- // ----
- if((float)(pCursorX) >= PosXDef
- && (float)(pCursorY) >= PosYDef)
- {
- ToolTipPosX = (float)(pCursorX-101.f);
- ToolTipPosY = (float)(pCursorY+33.f);
- AllowTextPX = (float)(pCursorX-98.f);
- AllowTextPY = (float)(pCursorY+38.f);
- AllowWhiteX = (float)(pCursorX-98.f);
- AllowWhiteY = (float)(pCursorY+48.f);
- ReturnTextX = (float)(pCursorX-98.f);
- ReturnTextY = (float)(pCursorY+38.f);
- DenyWhiteTX = (float)(pCursorX-98.f);
- DenyWhiteTY = (float)(pCursorY+48.f);
- }
- else
- {
- ToolTipPosX = (float)(pCursorX+35.f);
- ToolTipPosY = (float)(pCursorY-35.f);
- AllowTextPX = (float)(pCursorX+38.f);
- AllowTextPY = (float)(pCursorY-32.f);
- AllowWhiteX = (float)(pCursorX+38.f);
- AllowWhiteY = (float)(pCursorY-22.f);
- ReturnTextX = (float)(pCursorX+38.f);
- ReturnTextY = (float)(pCursorY-32.f);
- DenyWhiteTX = (float)(pCursorX+38.f);
- DenyWhiteTY = (float)(pCursorY-22.f);
- }
- gInterface.DrawGUI(eUNPACK_TT1,ToolTipPosX,ToolTipPosY,125.f,57.f);
- gInterface.DrawFormat(eRed,ReturnTextX,ReturnTextY,FW_BOLD,TRUE,"This Item Can't be Unpacked");
- gInterface.DrawFormat(eWhite180,DenyWhiteTX,DenyWhiteTY,FW_BOLD,TRUE,"Please, target another item.");
- // ----
- pGLSwitchBlend();
- pGLSwitch();
- }
- switch(lpItem->Index)
- {
- case GET_ITEM_INDEX(12,150):
- {
- if(gInterface.OnRightClickProcess==TRUE)
- {
- gInterface.SendChat("/unpacklevel");
- }
- else
- {
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(12,151):
- {
- if(gInterface.OnRightClickProcess==TRUE)
- {
- gInterface.SendChat("/unpackluck");
- }
- else
- {
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(12,152):
- {
- if(gInterface.OnRightClickProcess==TRUE)
- {
- gInterface.SendChat("/unpackskill");
- }
- else
- {
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(12,153):
- {
- if(gInterface.OnRightClickProcess==TRUE)
- {
- gInterface.SendChat("/unpackoption");
- }
- else
- {
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(12,154):
- {
- if(gInterface.OnRightClickProcess==TRUE)
- {
- gInterface.SendChat("/unpackexcellent");
- }
- else
- {
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(12,155):
- {
- if(gInterface.OnRightClickProcess==TRUE)
- {
- gInterface.SendChat("/unpackancient");
- }
- else
- {
- return;
- }
- }
- break;
- case GET_ITEM_INDEX(12,156):
- {
- if(gInterface.OnRightClickProcess==TRUE)
- {
- gInterface.SendChat("/unpacksocket");
- }
- else
- {
- return;
- }
- }
- break;
- default:
- break;
- }
- }
- else // <- RETURNS ITEM TOOLTIP FINAL ORIGINAL
- {
- pSetBlend(true);
- glColor4f(1.f,1.f,1.f,1.f);
- pItemToolTip(a1,a2,a3,a4,a5);
- }
- }
- }
- BOOL cItem::SocketEx(int ItemID)
- {
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(ItemID == GET_ITEM_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- if(gItem.m_Item[i].IsSocket==TRUE)
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- }
- }
- // ----
- return pIsSocketItem(ItemID);
- }
- void cItem::ModelEx()
- {
- pInitModelData();
- // ----
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(strlen(gItem.m_Item[i].Name)>NULL)
- {
- PCHAR Path = XVT_MODEL_ITEM_PATH;
- pLoadModel(GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index),Path,gItem.m_Item[i].Name,NONE);
- }
- }
- }
- void cItem::TextureEx()
- {
- pInitTextureData();
- // ----
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(strlen(gItem.m_Item[i].Name)>NULL)
- {
- PCHAR Path = XVT_TEXTURE_ITEM_PATH;
- pLoadTexture(GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index),Path,GL_REPEAT,GL_NEAREST,GL_TRUE);
- }
- }
- }
- void cItem::AngleEx(int Type)
- {
- pItemAngle(Type);
- // ----
- LPOBJ lpObj = &*(OBJSTRUCT*)Type;
- // ----
- if(lpObj->ObjectID == GET_OBJECT_INDEX(13,64)) // Static Fix for Pets from Season 4
- {
- lpObj->Angle[0] = 0.f;
- lpObj->Angle[1] = 0.f;
- lpObj->Angle[2] = 70.f;
- lpObj->Scale = 0.2f;
- }
- else if(lpObj->ObjectID == GET_OBJECT_INDEX(13,65)) // Static Fix for Pets from Season 4
- {
- lpObj->Angle[0] = 0.f;
- lpObj->Angle[1] = 0.f;
- lpObj->Angle[2] = 70.f;
- lpObj->Scale = 0.4f;
- }
- else if(lpObj->ObjectID != GET_OBJECT_INDEX(0,0)) // Static Fix for Kriss
- {
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(lpObj->ObjectID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- if(gItem.m_Item[i].RotX!=NONE)
- {
- lpObj->Angle[0]=gItem.m_Item[i].RotX;
- }
- // ----
- if(gItem.m_Item[i].RotY!=NONE)
- {
- lpObj->Angle[1]=gItem.m_Item[i].RotY;
- }
- // ----
- if(gItem.m_Item[i].RotZ!=NONE)
- {
- lpObj->Angle[2]=gItem.m_Item[i].RotZ;
- }
- // ----
- if(gItem.m_Item[i].Size!=NONE)
- {
- lpObj->Scale=gItem.m_Item[i].Size;
- }
- }
- }
- }
- }
- void cItem::InventoryEx(float ScreenX,float ScreenY,float PosX,float PosY,int ItemID,int a6,int a7,int a8,int a9)
- {
- if(ItemID != GET_ITEM_INDEX(0,0)) // -> Static Fix for Kriss
- {
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(ItemID == GET_ITEM_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- if(gItem.m_Item[i].PosX!=NONE)
- {
- PosX = PosX+gItem.m_Item[i].PosX;
- }
- if(gItem.m_Item[i].PosY!=NONE)
- {
- PosY = PosY+gItem.m_Item[i].PosY;
- }
- }
- }
- }
- // ----
- pRenderItem3D(ScreenX,ScreenY,PosX,PosY,ItemID,a6,a7,a8,a9);
- }
- /*
- vec_t InventoryRotationX = *(vec_t*)0x7BAF970;
- vec_t InventoryRotationY = *(vec_t*)0x7BAF974;
- vec_t InventoryRotationZ = *(vec_t*)0x7BAF978;
- void cItem::RenderObjectScreenEx(int Type,int Level,int SetOption,int Select,int OnPosition,int NewOption,char OnClick)
- {
- pRenderObjectScreen(Type,Level,SetOption,Select,OnPosition,NewOption,OnClick);
- // ----
- vec3_t InventoryRotation;
- Vector(InventoryRotationX,InventoryRotationY,InventoryRotationZ,InventoryRotation);
- // ----
- for(int i=NULL;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(Type == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- if(gItem.m_Item[i].InvRotX!=NONE)
- {
- InventoryRotation[0] = gItem.m_Item[i].InvRotX;
- }
- if(gItem.m_Item[i].InvRotY!=NONE)
- {
- InventoryRotation[1] = gItem.m_Item[i].InvRotY;
- }
- if(gItem.m_Item[i].InvRotZ!=NONE)
- {
- InventoryRotation[2] = gItem.m_Item[i].InvRotZ;
- }
- }
- }
- }
- */
- int cItem::GetEquippedBowTypeEx(int a1)
- {
- LPCHAR lpChar = &*(OBJCHAR*)a1;
- // ----
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(lpChar->WeaponSecondSlot == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- if(gItem.m_Item[i].IsBowType!=NONE)
- {
- return gItem.m_Item[i].IsBowType; // 1 if Bow
- }
- }
- if(lpChar->WeaponFirstSlot == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- if(gItem.m_Item[i].IsBowType!=NONE)
- {
- return gItem.m_Item[i].IsBowType; // 2 if Crossbow
- }
- }
- }
- // ----
- return pGetEquippedBowType(a1);
- }
- int cItem::CheckItem(DWORD ItemID,BOOL Preview)
- {
- if(Preview)
- {
- ItemID -= ITEM_OFFSET_IN_ARRAY;
- }
- // ----
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(ItemID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- return gItem.m_Item[i].IsBowType;
- }
- }
- // ----
- return 0;
- }
- BOOL bBowRotationSwitcher;
- BOOL bCrossRotationSwitcher;
- #pragma optimize("t",on)
- void MASM cItem::BowRotation()
- {
- static DWORD dwBowRotationPointer;
- static DWORD dwBowRotationBuffer;
- // ----
- static DWORD dwAngleMatrix=0x006B01B5;
- static DWORD dwJumpingRotation=0x004E796F;
- // ----
- bBowRotationSwitcher=FALSE;
- bCrossRotationSwitcher=FALSE;
- // ----
- _asm
- {
- MOV EAX,DWORD PTR SS:[EBP+0x1C]
- MOV dwBowRotationPointer,EAX
- }
- // ----
- if(dwBowRotationPointer>=GET_OBJECT_INDEX(4,8)
- && dwBowRotationPointer<=GET_OBJECT_INDEX(4,14)
- || dwBowRotationPointer==GET_OBJECT_INDEX(4,16)
- || dwBowRotationPointer==GET_OBJECT_INDEX(4,18)
- || dwBowRotationPointer==GET_OBJECT_INDEX(4,19))
- {
- bCrossRotationSwitcher=TRUE;
- }
- else if(dwBowRotationPointer>=GET_OBJECT_INDEX(4,0)
- && dwBowRotationPointer<=GET_OBJECT_INDEX(4,6)
- || dwBowRotationPointer==GET_OBJECT_INDEX(4,17)
- || dwBowRotationPointer>=GET_OBJECT_INDEX(4,20)
- && dwBowRotationPointer<=GET_OBJECT_INDEX(4,23)
- || dwBowRotationPointer==GET_OBJECT_INDEX(4,15)
- || dwBowRotationPointer==GET_OBJECT_INDEX(4,7))
- {
- bBowRotationSwitcher=TRUE;
- }
- if(gItem.CheckItem(dwBowRotationPointer,FALSE)==1)
- {
- bBowRotationSwitcher=TRUE;
- }
- if(gItem.CheckItem(dwBowRotationPointer,FALSE)==2)
- {
- bCrossRotationSwitcher=TRUE;
- }
- // ----
- if(bBowRotationSwitcher==TRUE)
- {
- _asm
- {
- MOV DWORD PTR SS:[EBP-0x0B0],0x428C0000
- MOV DWORD PTR SS:[EBP-0x0AC],0x0
- MOV DWORD PTR SS:[EBP-0x0A8],0x42B40000
- LEA ECX,[EBP-0x0A4]
- PUSH ECX
- LEA EDX,[EBP-0x0B0]
- PUSH EDX
- CALL dwAngleMatrix
- ADD ESP,0x8
- MOV DWORD PTR SS:[EBP-0x98],0xC1200000
- MOV DWORD PTR SS:[EBP-0x88],0x41000000
- MOV DWORD PTR SS:[EBP-0x78],0x42200000
- JMP dwJumpingRotation
- }
- }
- // ----
- if(bCrossRotationSwitcher==TRUE)
- {
- _asm
- {
- MOV DWORD PTR SS:[EBP-0x0B0],0x0
- MOV DWORD PTR SS:[EBP-0x0AC],0x41A00000
- MOV DWORD PTR SS:[EBP-0x0A8],0x43340000
- LEA ECX,[EBP-0x0A4]
- PUSH ECX
- LEA EDX,[EBP-0x0B0]
- PUSH EDX
- CALL dwAngleMatrix
- ADD ESP,0x8
- MOV DWORD PTR SS:[EBP-0x98],0xC1200000
- MOV DWORD PTR SS:[EBP-0x88],0x41000000
- MOV DWORD PTR SS:[EBP-0x78],0x42200000
- JMP dwJumpingRotation
- }
- }
- else
- {
- _asm
- {
- MOV dwBowRotationBuffer,0x004E7652
- JMP dwBowRotationBuffer
- }
- }
- }
- #pragma optimize("t",off)
- BOOL bBowPositionSwitcher;
- BOOL bPetPositionSwitcher;
- #pragma optimize("t",on)
- void MASM cItem::BowPosition()
- {
- static DWORD dwBowPositionPointer;
- static DWORD dwBowPositionBuffer;
- // ----
- static DWORD dwBowPositionJump=0x0059A5FC;
- // ----
- bBowPositionSwitcher=FALSE;
- // ----
- _asm
- {
- MOV dwBowPositionPointer,ESI
- }
- // ----
- if(dwBowPositionPointer==GET_OBJECT_INDEX(4,23))
- {
- bBowPositionSwitcher=TRUE;
- }
- // ----
- if(gItem.CheckItem(dwBowPositionPointer,FALSE)==1)
- {
- bBowPositionSwitcher=TRUE;
- }
- // ----
- if(bBowPositionSwitcher==TRUE)
- {
- _asm
- {
- FLD DWORD PTR SS:[ESP+0x14]
- FADD DWORD PTR DS:[0x864414] // FLOAT 0.02000000
- MOV DWORD PTR DS:[0x7BAF970],0x43340000
- MOV DWORD PTR DS:[0x7BAF974],0x42B40000
- MOV DWORD PTR DS:[0x7BAF978],0x41000000
- FSTP DWORD PTR SS:[ESP+0x14]
- FLD DWORD PTR SS:[ESP+0x18]
- FADD DWORD PTR DS:[0x864414] // FLOAT 0.02000000
- FSTP DWORD PTR SS:[ESP+0x18]
- // ----
- FLD DWORD PTR SS:[ESP+0x14]
- FSUB DWORD PTR DS:[0x8641A0] // FLOAT 0.1000000
- MOV DWORD PTR DS:[0x7BAF970],0x43340000
- MOV DWORD PTR DS:[0x7BAF974],0xC2B40000
- FSTP DWORD PTR SS:[ESP+0x14]
- FLD DWORD PTR SS:[ESP+0x18]
- FADD DWORD PTR DS:[0x864654] // FLOAT 0.08000000
- FSTP DWORD PTR SS:[ESP+0x18]
- JMP SetPositionZ
- MOV DWORD PTR DS:[0x7BAF970],0
- MOV DWORD PTR DS:[0x7BAF974],0x43870000
- SetPositionZ:
- MOV DWORD PTR DS:[0x7BAF978],0x41700000
- // ----
- JMP dwBowPositionJump
- }
- }
- // ----
- _asm
- {
- MOV dwBowPositionBuffer,0x00599499
- JMP dwBowPositionBuffer
- }
- }
- #pragma optimize("t",off)
- BOOL bBowAngleSwitcher;
- #pragma optimize("t",on)
- void MASM cItem::BowAngle()
- {
- static DWORD dwBowAnglePointer;
- static DWORD dwBowAngleBuffer;
- // ----
- bBowAngleSwitcher=FALSE;
- // ----
- _asm
- {
- MOV EAX,DWORD PTR SS:[EBP+0x1C]
- MOV dwBowAnglePointer,EAX
- }
- // ----
- if(dwBowAnglePointer == GET_OBJECT_INDEX(4,20))
- {
- bBowAngleSwitcher=TRUE;
- }
- if(gItem.CheckItem(dwBowAnglePointer,FALSE)==1)
- {
- bBowAngleSwitcher=TRUE;
- }
- // ----
- if(bBowAngleSwitcher==TRUE)
- {
- _asm
- {
- MOV dwBowAngleBuffer,0x004E7A0A
- JMP dwBowAngleBuffer
- }
- }
- else
- {
- _asm
- {
- MOV dwBowAngleBuffer,0x004E799B
- JMP dwBowAngleBuffer
- }
- }
- }
- #pragma optimize("t",off)
- void cItem::InitBowRotation()
- {
- gToolKit.SetRange((LPVOID)0x004E75C8,138,ASM::NOP);
- gToolKit.SetJmp((LPVOID)0x004E75C8,this->BowRotation);
- }
- void cItem::InitBowPosition()
- {
- gToolKit.SetRange((LPVOID)0x0059948D,12,ASM::NOP);
- gToolKit.SetJmp((LPVOID)0x0059948D,this->BowPosition);
- }
- void cItem::InitBowAngle()
- {
- gToolKit.SetRange((LPVOID)0x004E7992,9,ASM::NOP);
- gToolKit.SetJmp((LPVOID)0x004E7992,this->BowAngle);
- }
- void cItem::PartColorEx(int ItemID,float PosX,float PosY,vec3_t Color,bool Mode)
- {
- pPartObjectColor(ItemID,PosX,PosY,Color,Mode);
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(ItemID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- Vector(gItem.m_Item[i].R,gItem.m_Item[i].G,gItem.m_Item[i].B,Color);
- }
- }
- }
- void cItem::PartColor2Ex(int ItemID,float PosX,float PosY,vec3_t Color)
- {
- pPartObjectColor2(ItemID,PosX,PosY,Color);
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- if(ItemID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
- {
- Vector(gItem.m_Item[i].R2,gItem.m_Item[i].G2,gItem.m_Item[i].B2,Color);
- }
- }
- }
- void cItem::Load()
- {
- if(gEncode.Load(XVT_ITEM_FILE))
- {
- WZSMDToken Token = gEncode.GetToken();
- // ----
- if((Token==END)||(gEncode.GetInt()!=NULL))
- {
- MessageBox(NULL,XVT_MSG_ITEM_MODEL_BAD,MSG_HEAD_ERROR,MB_OK);
- ExitProcess(NULL);
- }
- // ----
- this->Init();
- // ----
- for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
- {
- Token = gEncode.GetToken();
- // ----
- if(Token==END||lstrcmpi(gEncode.GetString(),"end")==NULL)
- {
- break;
- }
- // ----
- this->m_Item[i].Type = gEncode.GetInt();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].Index = gEncode.GetInt();
- // ----
- Token = gEncode.GetToken();
- memcpy(this->m_Item[i].Name,gEncode.GetString(),sizeof(this->m_Item[i].Name));
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].RotX = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].RotY = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].RotZ = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].Size = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].IsSocket = gEncode.GetInt();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].PosX = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].PosY = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].IsBowType = gEncode.GetInt();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].R = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].G = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].B = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].R2 = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].G2 = gEncode.GetFloat();
- // ----
- Token = gEncode.GetToken();
- this->m_Item[i].B2 = gEncode.GetFloat();
- }
- // ----
- gEncode.Close();
- // ----
- gToolKit.SetOp((LPVOID)oInitModelData_Call,this->ModelEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oInitTextureData_Call,this->TextureEx,ASM::CALL);
- // ----
- gToolKit.SetOp((LPVOID)oItemAngle_Call01,this->AngleEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oItemAngle_Call02,this->AngleEx,ASM::CALL);
- // ----
- gToolKit.SetOp((LPVOID)oItemToolTip_Call01,this->ToolTipEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oItemToolTip_Call02,this->ToolTipEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oItemToolTip_Call03,this->ToolTipEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oItemToolTip_Call04,this->ToolTipEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oItemToolTip_Call05,this->ToolTipEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oItemToolTip_Call06,this->ToolTipEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oItemToolTip_Call07,this->ToolTipEx,ASM::CALL);
- // ----
- gToolKit.SetOp((LPVOID)oIsSocketItem_Call01,this->SocketEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oIsSocketItem_Call02,this->SocketEx,ASM::CALL);
- // ----
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call01,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call02,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call03,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call04,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call05,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call06,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call07,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call08,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call09,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call10,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call11,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call12,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call13,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call14,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call15,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call16,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call17,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call18,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call19,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call20,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call21,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call22,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call23,this->InventoryEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderItem3D_Call24,this->InventoryEx,ASM::CALL);
- // ----
- /*
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call01,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call02,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call03,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call04,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call05,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call06,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call07,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call08,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call09,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call10,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call11,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call12,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call13,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call14,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call15,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call16,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call17,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call18,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call19,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call20,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call21,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call22,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call23,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call24,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call25,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call26,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call27,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call28,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call29,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call30,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call31,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call32,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call33,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call34,this->RenderObjectScreenEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call35,this->RenderObjectScreenEx,ASM::CALL);
- */
- // ----
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call01,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call02,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call03,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call04,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call05,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call06,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call07,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call08,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call09,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call10,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call11,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call12,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call13,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call14,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call15,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call16,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call17,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call18,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call19,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call20,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call21,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call22,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call23,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call24,this->GetEquippedBowTypeEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call25,this->GetEquippedBowTypeEx,ASM::CALL);
- // ----
- // -> ASM
- // ----
- this->InitBundles();
- this->InitDrawNumber();
- this->InitBowRotation();
- this->InitBowPosition();
- this->InitBowAngle();
- // ----
- gToolKit.SetOp((LPVOID)oPartObjectColor_Call01,this->PartColorEx,ASM::CALL);
- gToolKit.SetOp((LPVOID)oPartObjectColor_Call02,this->PartColorEx,ASM::CALL);
- // ----
- gToolKit.SetOp((LPVOID)oPartObjectColor2_Call,this->PartColor2Ex,ASM::CALL);
- }
- else
- {
- MessageBox(NULL,XVT_MSG_ITEM_MODEL_NOT_FOUND,MSG_HEAD_ERROR,MB_OK);
- ExitProcess(NULL);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement