muonlinegr2
13-11-17, 09:19 PM
Limiti wings
#define MAX_CUSTOM_WING 40
Fixa SetPreviwerChar
Procurar no Item.cpp
__declspec(naked) void WingMakePreviewCharSet() // OK
{
static DWORD WingMakePreviewCharSetAddress1 = 0x004F71DE;
static DWORD WingMakePreviewCharSetAddress2 = 0x004F717D;
_asm
{
Mov Ecx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Edx,Byte Ptr Ds:[Ecx+0x10]
Sar Edx,0x01
And Edx,0xF
Test Edx,Edx
Je EXIT
Mov Eax,Dword Ptr Ss:[Ebp+0x0C]
Movzx Ecx,Byte Ptr Ds:[Eax+0x10]
Sar Ecx,0x01
And Ecx,0xF
Sub Ecx,0x01
Push Ecx
Lea Ecx,gCustomWing
Call [CCustomWing::CheckCustomWing]
Test Eax,Eax
Je EXIT
Mov Edx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Eax,Byte Ptr Ds:[Edx+0x10]
Sar Eax,0x01
And Eax,0xF
Sub Eax,0x01
Push Eax
Lea Ecx,gCustomWing
Call [CCustomWing::GetCustomWingItem]
Add Eax,ITEM_BASE_MODEL
Mov Ecx,Dword Ptr Ss:[Ebp-0x08]
Mov Word Ptr Ds:[Ecx+0x1C0],Ax
Jmp [WingMakePreviewCharSetAddress1]
EXIT:
Mov Eax,Dword Ptr Ss:[Ebp-0x04]
And Eax,0xFF
Jmp [WingMakePreviewCharSetAddress2]
}
}
Substituir por
__declspec(naked) void WingMakePreviewCharSet() // OK
{
static DWORD WingMakePreviewCharSetAddress1 = 0x004F71DE;
static DWORD WingMakePreviewCharSetAddress2 = 0x004F717D;
_asm
{
Mov Ecx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Edx,Byte Ptr Ds:[Ecx+0x10]
Sar Edx,0x01
And Edx,0x0FF
Test Edx,Edx
Je EXIT
Mov Eax,Dword Ptr Ss:[Ebp+0x0C]
Movzx Ecx,Byte Ptr Ds:[Eax+0x10]
Sar Ecx,0x01
And Ecx,0x0FF
Sub Ecx,0x01
Push Ecx
Lea Ecx,gCustomWing
Call [CCustomWing::CheckCustomWing]
Test Eax,Eax
Je EXIT
Mov Edx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Eax,Byte Ptr Ds:[Edx+0x10]
Sar Eax,0x01
And Eax,0x0FF
Sub Eax,0x01
Push Eax
Lea Ecx,gCustomWing
Call [CCustomWing::GetCustomWingItem]
Add Eax,ITEM_BASE_MODEL
Mov Ecx,Dword Ptr Ss:[Ebp-0x08]
Mov Word Ptr Ds:[Ecx+0x1C0],Ax
Jmp [WingMakePreviewCharSetAddress1]
EXIT:
Mov Eax,Dword Ptr Ss:[Ebp-0x04]
And Eax,0xFF
Jmp [WingMakePreviewCharSetAddress2]
}
}
#define MAX_CUSTOM_WING 40
Fixa SetPreviwerChar
Procurar no Item.cpp
__declspec(naked) void WingMakePreviewCharSet() // OK
{
static DWORD WingMakePreviewCharSetAddress1 = 0x004F71DE;
static DWORD WingMakePreviewCharSetAddress2 = 0x004F717D;
_asm
{
Mov Ecx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Edx,Byte Ptr Ds:[Ecx+0x10]
Sar Edx,0x01
And Edx,0xF
Test Edx,Edx
Je EXIT
Mov Eax,Dword Ptr Ss:[Ebp+0x0C]
Movzx Ecx,Byte Ptr Ds:[Eax+0x10]
Sar Ecx,0x01
And Ecx,0xF
Sub Ecx,0x01
Push Ecx
Lea Ecx,gCustomWing
Call [CCustomWing::CheckCustomWing]
Test Eax,Eax
Je EXIT
Mov Edx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Eax,Byte Ptr Ds:[Edx+0x10]
Sar Eax,0x01
And Eax,0xF
Sub Eax,0x01
Push Eax
Lea Ecx,gCustomWing
Call [CCustomWing::GetCustomWingItem]
Add Eax,ITEM_BASE_MODEL
Mov Ecx,Dword Ptr Ss:[Ebp-0x08]
Mov Word Ptr Ds:[Ecx+0x1C0],Ax
Jmp [WingMakePreviewCharSetAddress1]
EXIT:
Mov Eax,Dword Ptr Ss:[Ebp-0x04]
And Eax,0xFF
Jmp [WingMakePreviewCharSetAddress2]
}
}
Substituir por
__declspec(naked) void WingMakePreviewCharSet() // OK
{
static DWORD WingMakePreviewCharSetAddress1 = 0x004F71DE;
static DWORD WingMakePreviewCharSetAddress2 = 0x004F717D;
_asm
{
Mov Ecx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Edx,Byte Ptr Ds:[Ecx+0x10]
Sar Edx,0x01
And Edx,0x0FF
Test Edx,Edx
Je EXIT
Mov Eax,Dword Ptr Ss:[Ebp+0x0C]
Movzx Ecx,Byte Ptr Ds:[Eax+0x10]
Sar Ecx,0x01
And Ecx,0x0FF
Sub Ecx,0x01
Push Ecx
Lea Ecx,gCustomWing
Call [CCustomWing::CheckCustomWing]
Test Eax,Eax
Je EXIT
Mov Edx,Dword Ptr Ss:[Ebp+0x0C]
Movzx Eax,Byte Ptr Ds:[Edx+0x10]
Sar Eax,0x01
And Eax,0x0FF
Sub Eax,0x01
Push Eax
Lea Ecx,gCustomWing
Call [CCustomWing::GetCustomWingItem]
Add Eax,ITEM_BASE_MODEL
Mov Ecx,Dword Ptr Ss:[Ebp-0x08]
Mov Word Ptr Ds:[Ecx+0x1C0],Ax
Jmp [WingMakePreviewCharSetAddress1]
EXIT:
Mov Eax,Dword Ptr Ss:[Ebp-0x04]
And Eax,0xFF
Jmp [WingMakePreviewCharSetAddress2]
}
}