Quote:
//========================================================================== //-- Main.exe -> Multi Client :: 0xEB - Ativa / 0x75 - Desativa
//==========================================================================
*(BYTE*)(0x005FAE63) = 0xEB;
//==========================================================================
//-- Main.exe -> Set & Wing NPC::Chaos Card Master
//==========================================================================
*(DWORD*)(0x00504BA8+3) = 13; // -> Set Level
*(WORD*)(0x00504B9F+7) = ITEM2(12, 36); // -> Wings Slot
*(WORD*)(0x00504B63+7) = ITEM2(7, 1); // -> Helm Slot
*(WORD*)(0x00504B6F+7) = ITEM2(8, 1); // -> Armor Slot
*(WORD*)(0x00504B7B+7) = ITEM2(9, 1); // -> Pants Slot
*(WORD*)(0x00504B87+7) = ITEM2(10,1); // -> Gloves Slot
*(WORD*)(0x00504B93+7) = ITEM2(11,1); // -> Boots Slot
//==========================================================================
//-- Main.exe -> Set NPC::Marlon
//==========================================================================
*(WORD*)(0x00503C98+7) = ITEM2(3, 7); // -> First Weapon Slot
*(BYTE*)(0x00503CA4+6) = 8; // -> First Weapon Level
*(WORD*)(0x00503CAE+7) = -1; // -> Second Weapon Slot
*(WORD*)(0x00503C2A+7) = ITEM2(7, 9); // -> Helm Slot
*(BYTE*)(0x00503C36+6) = 13; // -> Helm Level
*(WORD*)(0x00503C40+7) = ITEM2(8, 9); // -> Armor Slot
*(BYTE*)(0x00503C4C+6) = 13; // -> Armor Level
*(WORD*)(0x00503C56+7) = ITEM2(9, 9); // -> Pants Slot
*(BYTE*)(0x00503C62+6) = 13; // -> Pants Level
*(WORD*)(0x00503C6C+7) = ITEM2(10,9); // -> Gloves Slot
*(BYTE*)(0x00503C78+6) = 13; // -> Gloves Level
*(WORD*)(0x00503C82+7) = ITEM2(11,9); // -> Boots Slot
*(BYTE*)(0x00503C8E+6) = 13; // -> Boots Level
//==========================================================================
//-- Main.exe -> Set NPC::Crossbow Guard
//==========================================================================
*(WORD*)(0x00504365+7) = ITEM2(7, 9); // -> Helm Slot
*(WORD*)(0x00504371+7) = ITEM2(8, 9); // -> Armor Slot
*(WORD*)(0x0050437D+7) = ITEM2(9, 9); // -> Pants Slot
*(WORD*)(0x00504389+7) = ITEM2(10,9); // -> Gloves Slot
*(WORD*)(0x00504395+7) = ITEM2(11,9); // -> Boots Slot
*(WORD*)(0x005043A1+7) = ITEM2(4,11); // -> First Weapon Slot
*(WORD*)(0x005043AD+7) = ITEM2(4, 7); // -> Second Weapon Slot
//==========================================================================
//-- Main.exe -> Set NPC::Berdysh Guard
//==========================================================================
*(WORD*)(0x00504470+7) = ITEM2(7, 9); // -> Helm Slot
*(WORD*)(0x0050447C+7) = ITEM2(8, 9); // -> Armor Slot
*(WORD*)(0x00504488+7) = ITEM2(9, 9); // -> Pants Slot
*(WORD*)(0x00504494+7) = ITEM2(10,9); // -> Gloves Slot
*(WORD*)(0x005044A0+7) = ITEM2(11,9); // -> Boots Slot
*(WORD*)(0x005044AC+7) = ITEM2(3, 7); // -> First Weapon Slot
Loop New Sets
Quote:
char Sets[30];
int i;
char *PlayerDir = "Data\\Custom\\Player\\";
char *PlayerFolder = "Custom\\Player\\";
void InitSets(int ItemID, char* ModelName, char* Folder, char* Form){
_asm
{
PUSH -1
PUSH ModelName
PUSH Form
PUSH ItemID
mov eax,BMDModelLoad
CALL eax
PUSH 1
PUSH 0x2600
PUSH 0x2901
PUSH Folder
PUSH ItemID
mov eax,OpenTexture
CALL eax
}
}
void __declspec(naked) NewSetsLoop()
{
for (i = 5; i < 512; i++)
{
//==========================================================================
//-- Sets Loop -> HelmMale Limit::150 <-> 300
//==========================================================================
if(i > 149 && i < 301)
{
sprintf_s(Sets, "HelmMale%d", i+1);
InitSets(LOAD_ITEM(7, i), Sets, PlayerFolder, PlayerDir);
}
//==========================================================================
//-- Sets Loop -> ArmorMale Limit::150 <-> 300
//==========================================================================
if(i > 149 && i < 301)
{
sprintf_s(Sets, "ArmorMale%d", i+1);
InitSets(LOAD_ITEM(8, i), Sets, PlayerFolder, PlayerDir);
}
//==========================================================================
//-- Sets Loop -> PantsMale Limit::150 <-> 300
//==========================================================================
if(i > 149 && i < 301)
{
sprintf_s(Sets, "PantMale%d", i+1);
InitSets(LOAD_ITEM(9, i), Sets, PlayerFolder, PlayerDir);
}
//==========================================================================
//-- Sets Loop -> GloveMale Limit::150 <-> 300
//==========================================================================
if(i > 149 && i < 301)
{
sprintf_s(Sets, "GloveMale%d", i+1);
InitSets(LOAD_ITEM(10, i), Sets, PlayerFolder, PlayerDir);
}
//==========================================================================
//-- Sets Loop -> BootMale Limit::150 <-> 300
//==========================================================================
if(i > 149 && i < 301)
{
sprintf_s(Sets, "BootMale%d", i+1);
InitSets(LOAD_ITEM(11, i), Sets, PlayerFolder, PlayerDir);
}
}
_asm
{
PUSH 11
PUSH gSet
PUSH gSetData
PUSH gSetID
mov eax,BMDModelLoad
CALL eax
ADD ESP,0x10
mov eax,ReturnSetOffset
JMP eax
}
}
void MainItemLoop()
{
PatchJMP g_SetsPatch;
SetNop(LoadSetModel, 25);
g_SetsPatch.Command = 0xE9;
g_SetsPatch.Pointer = (DWORD)&NewSetsLoop;
memcpy((int*)LoadSetModel, &g_SetsPatch, sizeof(g_SetsPatch));
HookThis((DWORD)&NewSetsLoop, LoadSetModel);
}
#ifdef _103P
#define gItem 0x008CC1D0
#define gData 0x008CC1D8
#define gItemID 0x1F60
#define gSet 0x008C022C
#define gSetData 0x008C0238
#define gSetID 0x1151
#define OpenTexture 0x005D63E0
#define BMDModelLoad 0x005D6A93
#define ReturnOffset 0x005DA18B
#define LoadModel 0x005DA172
#define LoadSetModel 0x005D712B
#define ReturnSetOffset 0x005D7144
#endif