• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

[Help] Source Custom Gloves Season 6 muemu Bugs :(

Joined
May 21, 2012
Messages
708
Reaction score
301
Source Custom Gloves(RF) Season 6 someone can correct the source and share it


BattleGloves.h


Code:
#ifndef __ITEM_H__
#define __ITEM_H__


#define oBattleGlove_Load            0x0050DE38
#define oBattleGlove_Hook            0x0050DC31
#define oBattleGlove_Texture        0x0050E043


#define oBattleGloveProp4_Hook        0x005CD419
#define oBattleGloveProp4_Allowed    0x005CD422
#define oBattleGloveProp4_Return    0x005CD454


#define oBattleGloveProp5_Hook        0x005CEFE7
#define oBattleGloveProp5_Jump        0x005CF01C
#define oBattleGloveProp5_Return    0x005CEFFB


#define oBattleGloveGlow_Hook        0x005F91C2


class cRFItem
{
public:
    void Load();
    // ----
    static void BattleGloveLoad();
    // ---
    static void BattleGloveAssoc();
    static void BattleGloveTexture();
    // ----
    static void BattleGloveProp4(); // Inventory Position
    static void BattleGloveProp5(); // Inventory Rotation
                                    // ----
    static void BattleGloveGlow();
    static void AddInventoryPos();
    // ----
};


extern cRFItem gRFItem; // 


#endif


BattleGloves.cpp


Code:
#include "Stdafx.h"
#include "BattleGloves.h"
//#include "TMemory.h"
//#include "ItemAsm.h"
//#include "Import.h"
#include "Util.h"
#include "Defines.h"
#include "Item.h"


#include "CustomWeapons.h"
#include "CustomGloves.h"


cRFItem gRFItem;


void __declspec ( naked ) cRFItem::BattleGloveLoad() {
    static DWORD BattleGloveModel   = 0x00614D10;
    static DWORD BattleGloveReturn  = 0x0050DE83;
    // ----
    static PCHAR DragonRoarModel    = "Sword45";
    static PCHAR DragonRoarLeft     = "Sword45L";
    static PCHAR DragonRoarRight    = "Sword45R";
    // ----
    LoadItemModel(GET_ITEM_MODEL ( 0, 41 ),"Custom\\Item\\RFGloves\\","Sword41",-1);
    LoadItemModel(0x610,"Custom\\Item\\RFGloves\\","Sword41L",-1);
    LoadItemModel(0x611,"Custom\\Item\\RFGloves\\","Sword41R",-1);
    _asm {
        PUSH -1
        PUSH 0x00D28B88
        PUSH 0x00D28B90
        PUSH 0x4B6
        CALL BattleGloveModel
        ADD ESP, 0x10
        PUSH -1
        PUSH 0x00D28B9C
        PUSH 0x00D28BA8
        PUSH 0x268
        CALL BattleGloveModel
        ADD ESP, 0x10
        PUSH -1
        PUSH 0x00D28BB4
        PUSH 0x00D28BC0
        PUSH 0x269
        CALL BattleGloveModel
        ADD ESP, 0x10
        // ----
        JMP BattleGloveReturn
    }


    
    
}


#define sub_50D810_Addr        ((int(__thiscall*)(int a1, int a2, int a3, int a4)) 0x50D810)
#define sub_512D50_Addr        ((void*(__thiscall*)(void* a1)) 0x512D50)
#define sub_513C60_Addr        ((char*(__thiscall*)(char *This, void *a2, int a3)) 0x513C60)
#define sub_5135F0_Addr        ((char*(__thiscall*)(DWORD *This, int a2, int a3)) 0x5135F0)
#define sub_512D60_Addr        ((void(*)()) 0x512D60)




void GlovesAssoc(char *This)
{
    sub_50D810_Addr((int)(This + 92), 1203, 610, 611);
    void* v2 = sub_512D50_Addr(This + 92);
    char* v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1204, 612, 613);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1205, 614, 615);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1206, 616, 617);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    sub_50D810_Addr((int)(This + 92), 1211, 610, 611);
    v2 = sub_512D50_Addr(This + 92);
    v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
    sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
    sub_512D60_Addr();
    // ----
    gCustomGloves.AssocGloves(This);
}


void __declspec ( naked ) cRFItem::BattleGloveAssoc() {
    static DWORD BattleGloveCall1   = 0x0050D810;
    static DWORD BattleGloveCall2   = 0x00512D50;
    static DWORD BattleGloveCall3   = 0x00513C60;
    static DWORD BattleGloveCall4   = 0x005135F0;
    static DWORD BattleGloveCall5   = 0x00512D60;
    // ----
    static DWORD BattleGloveJump    = 0x0050DCB0;
    // ----
    _asm {
        PUSH 0x269                                        //; /Arg3 = 269
        PUSH 0x268                                        //; |Arg2 = 268
        PUSH 0x4B6                                        //; |Arg1 = 4B6
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x5C                                     //; |
        CALL BattleGloveCall1                             //; \Main.0050D810
        MOV EAX, DWORD PTR SS:[EBP-0x9C]
        ADD EAX, 0x5C
        PUSH EAX                                          //; /Arg2 => ARG.ECX+5C
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x5C                                     //; |
        CALL BattleGloveCall2                             //; |
        PUSH EAX                                          //; |Arg1
        LEA ECX, [EBP-0x70]                               //; |
        CALL BattleGloveCall3                             //; \Main.00513C60
        MOV DWORD PTR SS:[EBP-0xB8], EAX
        MOV ECX, DWORD PTR SS:[EBP-0xB8]
        MOV DWORD PTR SS:[EBP-0xBC], ECX
        MOV DWORD PTR SS:[EBP-0x4], 3   // -> Battle Glove Number
        MOV EDX, DWORD PTR SS:[EBP-0xBC]
        PUSH EDX                                          //; /Arg2 => [LOCAL.46]
        LEA EAX, [EBP-0x7C]                               //; |
        PUSH EAX                                          //; |Arg1 => OFFSET LOCAL.31
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x3C                                     //; |
        CALL BattleGloveCall4                             //; \Main.005135F0
        MOV DWORD PTR SS:[EBP-0x4], -1
        LEA ECX, [EBP-0x70]
        CALL BattleGloveCall5                             //; [Main.00512D60
        // ----
        PUSH 0x611                                        //; /Arg3 = 611 -> Right
        PUSH 0x610                                        //; |Arg2 = 610 -> Left
        PUSH 0x4BC                                        //; |Arg1 = 4BF -> ITEM2(0,41)
        MOV ECX, DWORD PTR SS:[EBP-0x9C]                  //; |
        ADD ECX, 0x5C                                     //; |
        CALL BattleGloveCall1                             //; \Main.0050D810
        MOV EAX, DWORD PTR SS:[EBP-0x9C]
        ADD EAX, 0x5C
        PUSH EAX
        MOV ECX, DWORD PTR SS:[EBP-0x9C]
        ADD ECX, 0x5C
        CALL BattleGloveCall2
        PUSH EAX
        LEA ECX, [EBP-0x70]
        CALL BattleGloveCall3
        MOV DWORD PTR SS:[EBP-0xB8], EAX
        MOV ECX, DWORD PTR SS:[EBP-0xB8]
        MOV DWORD PTR SS:[EBP-0xBC], ECX
        MOV DWORD PTR SS:[EBP-0x4], 5   // -> Battle Glove Number
        MOV EDX, DWORD PTR SS:[EBP-0xBC]
        PUSH EDX
        LEA EAX, [EBP-0x7C]
        PUSH EAX
        MOV ECX, DWORD PTR SS:[EBP-0x9C]
        ADD ECX, 0x3C
        CALL BattleGloveCall4
        MOV DWORD PTR SS:[EBP-0x4], -1
        LEA ECX, [EBP-0x70]
        CALL BattleGloveCall5
        // ----
        JMP BattleGloveJump
    }
}


void __declspec ( naked ) cRFItem::BattleGloveTexture() {
    static DWORD BattleGloveTexCall = 0x00614710;
    static DWORD BattleGloveTexJump = 0x0050E09D;
    // ----
    LoadItemTexture(GET_ITEM_MODEL ( 0, 41 ),"Custom\\Item\\RFGloves\\","Sword41",-1);
    LoadItemTexture(0x610,"Custom\\Item\\RFGloves\\","Sword41L",-1);
    LoadItemTexture(0x611,"Custom\\Item\\RFGloves\\","Sword41R",-1);
    _asm {
        PUSH 1
        PUSH GL_NEAREST
        PUSH GL_REPEAT
        PUSH 0x00D28CC8
        PUSH 0x4B6
        CALL BattleGloveTexCall
        ADD ESP, 0x14
        PUSH 1
        PUSH GL_NEAREST
        PUSH GL_REPEAT
        PUSH 0x00D28CD0
        PUSH 0x268
        CALL BattleGloveTexCall
        ADD ESP, 0x14
        PUSH 1
        PUSH GL_NEAREST
        PUSH GL_REPEAT
        PUSH 0x00D28CD8
        PUSH 0x269
        CALL BattleGloveTexCall
        ADD ESP, 0x14
        // ----
        JMP BattleGloveTexJump
    }
}


void __declspec ( naked ) cRFItem::BattleGloveProp4() {
    static DWORD BattleGloveProp4_Return    = 0x005CD454;
    static DWORD BattleGloveProp4_Jump      = 0x005CD491;
    // ----
    _asm {
        CMP DWORD PTR SS:[EBP+0x8], GET_ITEM_MODEL ( 0, 41 )
        JNZ BattleGloveProp4_Label1
        FLD DWORD PTR SS:[EBP-0x4C]
        FSUB QWORD PTR DS:[0x0D27CA8]                     //FLOAT 0.004999999888241291
        FSTP DWORD PTR SS:[EBP-0x4C]
        FLD DWORD PTR SS:[EBP-0x48]
        FADD QWORD PTR DS:[0x0D254B8]                     //FLOAT 0.01499999966472387
        FSTP DWORD PTR SS:[EBP-0x48]
        FLDZ
        FSTP DWORD PTR DS:[0x82C6320]                     //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS:[0x82C6324]                     //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS:[0x82C6328]                     //FLOAT 0.0
        JMP BattleGloveProp4_Jump
        // ----
        BattleGloveProp4_Label1:
        // ----
        CMP DWORD PTR SS : [EBP + 0x8], GET_ITEM_MODEL ( 0, 41 )
        JNZ BattleGloveProp4_LabelReturn
        FLD DWORD PTR SS: [EBP - 0x4C]
        FSUB QWORD PTR DS: [0x0D27CA8]                    //FLOAT 0.004999999888241291
        FSTP DWORD PTR SS: [EBP - 0x4C]
        FLD DWORD PTR SS: [EBP - 0x48]
        FADD QWORD PTR DS: [0x0D254B8]                    //FLOAT 0.01499999966472387
        FSTP DWORD PTR SS: [EBP - 0x48]
        FLDZ
        FSTP DWORD PTR DS: [0x82C6320]                    //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS: [0x82C6324]                    //FLOAT 0.0
        FLDZ
        FSTP DWORD PTR DS: [0x82C6328]                    //FLOAT 0.0
        JMP BattleGloveProp4_Jump
        // ----
        BattleGloveProp4_LabelReturn:
        // ----
        JMP BattleGloveProp4_Return
    }
}


DWORD IsGlovesItem = 0;
DWORD GlovesPosition = 0x005CD422; // 1.04D ENG
DWORD NextGlovesPosition = 0x005CD454; // 1.04D ENG


void __declspec(naked) cGlovesAddInventoryPos()
{
    _asm
    {


        mov ecx, dword ptr ss : [ebp + 0x8]
            mov dword ptr ss : [ebp + 0x8], ecx
            mov IsGlovesItem, ecx
    }
    // ---
    //console.Log("","duck [%x]",IsGlovesItem);
    if (IsGlovesItem == 0x04B6)
    {
        _asm{jmp GlovesPosition}
    }
    else if (IsGlovesItem >= GET_ITEM_MODEL(0, 41) && IsGlovesItem <= GET_ITEM_MODEL(0, 50))
    {
        _asm{jmp GlovesPosition}
    }
    else
    {
        _asm{jmp NextGlovesPosition}
    }
}


void __declspec ( naked ) cRFItem::BattleGloveProp5() { // Масштаб
    static DWORD BattleGloveProp5_Return    = 0x005CEFFB;
    static DWORD BattleGloveProp5_Jump      = 0x005CF01C;
    // ----
    static float a1 = 0.00480000;
    //a1 = GetPrivateProfileFloat("Custom", "a1", 0, "./Settings.ini");
    _asm {
        CMP DWORD PTR SS:[EBP+0x8], GET_ITEM_MODEL ( 0, 35 )
        JNZ NextBattleGlove1
        FLD DWORD PTR DS: [0x0D2C618]                       //FLOAT 0.003000000
        FSTP DWORD PTR SS: [EBP - 0x2C]
        JMP BattleGloveProp5_Jump
        // ----
        NextBattleGlove1:
        // ----
        CMP DWORD PTR SS: [EBP + 0x8], GET_ITEM_MODEL ( 0, 41 )
        JNZ ReturnBattleGlove_Load
        FLD DWORD PTR DS:[a1]                       //FLOAT 0.003800000
        FSTP DWORD PTR SS: [EBP - 0x2C]
        JMP BattleGloveProp5_Jump
        // ----
        ReturnBattleGlove_Load:
        // ----
        JMP BattleGloveProp5_Return
    }
}


static BOOL bBattleGlovesGlow_Switcher;


void __declspec ( naked ) cRFItem::BattleGloveGlow() {
    static DWORD dwBattleGlovesGlow_Pointer;
    static DWORD dwBattleGlovesGlow_Buffer;
    static DWORD dwBattleGlovesNewGlow_Buffer;
    static DWORD dwBattleGlovesGlow_Jump = 0x005F94E8;
    // ----
    bBattleGlovesGlow_Switcher = FALSE;
    // ----
    _asm {
        MOV dwBattleGlovesGlow_Pointer, EAX
    }


    // ----
    if ( dwBattleGlovesGlow_Pointer == GET_ITEM_MODEL ( 0, 35 ) ) {
        bBattleGlovesGlow_Switcher = TRUE;
    }
    else if ( gCustomGloves.CheckGloves(dwBattleGlovesGlow_Pointer-ITEM_BASE_MODEL)/*dwBattleGlovesGlow_Pointer == GET_ITEM_MODEL ( 0, 41 )*/ ) {
        bBattleGlovesGlow_Switcher = FALSE;
        // ----
        _asm {
            MOV DWORD PTR SS:[EBP-0x4], 0x2C
            JMP dwBattleGlovesGlow_Jump
        }
    }


    // ----
    if ( bBattleGlovesGlow_Switcher == TRUE ) {
        _asm {
            MOV dwBattleGlovesGlow_Buffer, 0x005F91C9
            JMP dwBattleGlovesGlow_Buffer
        }
    }
    else {
        _asm {
            MOV dwBattleGlovesGlow_Buffer, 0x005F91D5
            JMP dwBattleGlovesGlow_Buffer
        }
    }
}


__declspec(naked) void cRFItem::AddInventoryPos() // OK
{
    static DWORD IsRFItem = 0;
    static DWORD RFPosition = 0x005CD084; // 1.04D ENG
    static DWORD NextRFPosition = 0x005CD086; // 1.04D ENG
    //
    _asm {
        mov ecx, dword ptr ss : [ebp + 0x8]
        mov dword ptr ss : [ebp + 0x8], ecx
        mov IsRFItem, ecx
    }


    // ---
    if ( IsRFItem == 0x04B3 ) {
        _asm {jmp RFPosition}
    }
    else if ( IsRFItem == GET_ITEM_MODEL ( 0, 41 ) ) {
        _asm {jmp RFPosition}
    }
    else {
        _asm {jmp NextRFPosition}
    }
}


void cRFItem::Load() {
    int LoadGloves = GetPrivateProfileInt("Other","CheckRFGloves",0,".\\Data\\Custom\\Settings.ini");


    if (LoadGloves != 1)
    {
        return;
    }


    //SetRange (oBattleGlove_Load, 75, ASM::NOP );
    //SetOp(oBattleGlove_Load, &this->BattleGloveLoad, ASM::JMP);
    // ----




   // SetRange (oBattleGlove_Hook, 127, ASM::NOP );
    //SetOp(oBattleGlove_Hook, &this->BattleGloveAssoc, ASM::JMP);
    SetCompleteHook(0xE8,0x50D840+0xC5,&GlovesAssoc);


 //   // ----
   // SetRange (oBattleGlove_Texture, 90, ASM::NOP );
    //SetOp(oBattleGlove_Texture, &this->BattleGloveTexture, ASM::JMP);
 //   // ----
    //SetRange (oBattleGloveProp4_Hook, 59, ASM::NOP );
    //SetOp(oBattleGloveProp4_Hook, &this->BattleGloveProp4, ASM::JMP);// -> Inventory Position
    //SetRange(oBattleGloveProp4_Hook, 6, ASM::NOP);
    //SetJmp((LPVOID)iBowAddInventoryPos, cBowAddInventoryPos);
    //SetOp(oBattleGloveProp4_Hook, &cGlovesAddInventoryPos, ASM::JMP);
 //   // ----
   // SetRange (oBattleGloveProp5_Hook, 20, ASM::NOP );
    //SetOp(oBattleGloveProp5_Hook, &this->BattleGloveProp5, ASM::JMP); // -> Inventory Rotation
 //   // ----
    SetRange (oBattleGloveGlow_Hook, 7, ASM::NOP );
    SetOp(oBattleGloveGlow_Hook, &this->BattleGloveGlow, ASM::JMP);


    /*SetDword(0x005765B4+1,0x4BC);
    SetDword(0x00576B69+2,0x4BC);
    SetDword(0x00578A46+1,0x4BC);
    SetDword(0x005CD419+3,0x4BC);
    SetDword(0x005CEFE7+3,0x4BC);
    SetDword(0x005F91C2+1,0x4BC);
    SetDword(0x00607503+1,0x4BC);
    SetDword(0x00608D4C+3,0x4BC);
    SetDword(0x006095ED+3,0x4BC);
    SetDword(0x006105D6+1,0x4BC);*/


    //SetRange (0x005CD07D, 7, ASM::NOP );
    //SetOp(0x005CD07D, &this->AddInventoryPos, ASM::JMP);
}


CustomGloves.h


Code:
#pragma once


#define MAX_CUSTOM_GLOVES    100


struct CUSTOM_RF_GLOVES
{
    int Index;
    int ItemIndex;
    char ModelName[32];
    int TextureLeftIndex;
    char TextureLeftName[32];
    int TextureRightIndex;
    char TextureRightName[32];
};


class cCustomGloves
{
public:
    cCustomGloves();
    virtual ~cCustomGloves();
    void Init();
    void Load(CUSTOM_RF_GLOVES* info);
    void SetInfo(CUSTOM_RF_GLOVES info);
    CUSTOM_RF_GLOVES* GetInfoByID(int index);
    void AssocGloves(char* This);
    bool CheckGloves(int ItemID);
public:
    CUSTOM_RF_GLOVES m_CustomGlovesInfo[MAX_CUSTOM_GLOVES];
}; extern cCustomGloves gCustomGloves;


CustomGloves.cpp


Code:
#include "stdafx.h"
#include "CustomGloves.h"
#include "NEWConsole.h"
#include "Item.h"


cCustomGloves gCustomGloves;


cCustomGloves::cCustomGloves() // OK
{
    this->Init();
}


cCustomGloves::~cCustomGloves() // OK
{


}


void cCustomGloves::Init() // OK
{
    for(int n=0;n < MAX_CUSTOM_GLOVES;n++)
    {
        this->m_CustomGlovesInfo[n].Index = -1;
    }
}


void cCustomGloves::Load(CUSTOM_RF_GLOVES* info) // OK
{
    for(int n=0;n < MAX_CUSTOM_GLOVES;n++)
    {
        this->SetInfo(info[n]);
    }
}


void cCustomGloves::SetInfo(CUSTOM_RF_GLOVES info) // OK
{
    if(info.Index < 0 || info.Index >= MAX_CUSTOM_GLOVES)
    {
        return;
    }


    this->m_CustomGlovesInfo[info.Index] = info;
}


CUSTOM_RF_GLOVES* cCustomGloves::GetInfoByID(int index)
{
    for (int i=0;i<MAX_CUSTOM_GLOVES; i++)
    {
        if (this->m_CustomGlovesInfo[i].Index == -1)
        {
            continue;
        }


        if (i == index)
        {
            return &this->m_CustomGlovesInfo[i];
        }
    }


    return 0;
}


#define sub_50D810_Addr        ((int(__thiscall*)(int a1, int a2, int a3, int a4)) 0x50D810)
#define sub_512D50_Addr        ((void*(__thiscall*)(void* a1)) 0x512D50)
#define sub_513C60_Addr        ((char*(__thiscall*)(char *This, void *a2, int a3)) 0x513C60)
#define sub_5135F0_Addr        ((char*(__thiscall*)(DWORD *This, int a2, int a3)) 0x5135F0)
#define sub_512D60_Addr        ((void(*)()) 0x512D60)


void cCustomGloves::AssocGloves(char* This)
{
    for (int i=0;i<MAX_CUSTOM_GLOVES; i++)
    {
        if (this->m_CustomGlovesInfo[i].Index == -1)
        {
            continue;
        }


        //LoadItemModel(0x4BC,"Custom\\Item\\RFGloves\\","Sword41",-1);
        //LoadItemModel(0x610,"Custom\\Item\\RFGloves\\","Sword41L",-1);
        //LoadItemModel(0x611,"Custom\\Item\\RFGloves\\","Sword41R",-1);


        //LoadItemModel(this->m_CustomGlovesInfo[i].ItemIndex+ITEM_BASE_MODEL,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].ModelName,-1);
        //LoadItemModel(this->m_CustomGlovesInfo[i].TextureLeftIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureLeftName,-1);
        //LoadItemModel(this->m_CustomGlovesInfo[i].TextureRightIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureRightName,-1);


        //LoadItemTexture(this->m_CustomGlovesInfo[i].ItemIndex+ITEM_BASE_MODEL,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].ModelName,-1);
        //LoadItemTexture(this->m_CustomGlovesInfo[i].TextureLeftIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureLeftName,-1);
        //LoadItemTexture(this->m_CustomGlovesInfo[i].TextureRightIndex,"Custom\\Item\\RFGloves\\",this->m_CustomGlovesInfo[i].TextureRightName,-1);


        sub_50D810_Addr((int)(This + 92), this->m_CustomGlovesInfo[i].ItemIndex+ITEM_BASE_MODEL, this->m_CustomGlovesInfo[i].TextureLeftIndex, this->m_CustomGlovesInfo[i].TextureRightIndex);
        void* v2 = sub_512D50_Addr(This + 92);
        char* v3 = sub_513C60_Addr(This, v2, (int)(This + 92));
        sub_5135F0_Addr((DWORD *)This + 15, (int)This, (int)v3);
        sub_512D60_Addr();
    }
}




bool cCustomGloves::CheckGloves(int ItemID)
{
    for (int i=0;i<MAX_CUSTOM_GLOVES; i++)
    {
        if (this->m_CustomGlovesInfo[i].Index == -1)
        {
            continue;
        }


        if (ItemID == this->m_CustomGlovesInfo[i].ItemIndex)
        {
            return true;
        }
    }
    return false;
}






Link Download:
 
Skilled Illusionist
Joined
Jun 22, 2017
Messages
363
Reaction score
561
Code:
__declspec(naked) void InitRFGloves()
{
    static DWORD Address1 = 0x0050D810;
    static DWORD Address2 = 0x00512D50;
    static DWORD Address3 = 0x00513C60;
    static DWORD Address4 = 0x005135F0;
    static DWORD Address5 = 0x00512D60;
    static DWORD Address6 = 0x0050DCB0;

    _asm 
    {
  //Item (0, 35)
  PUSH 0x269                                        // Right
  PUSH 0x268                                        // Left
  PUSH 0x4B6                                        
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX                                         
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address2
  PUSH EAX                                         
  LEA ECX, [EBP - 0x70]                            
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 3   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX                                          
  LEA EAX, [EBP - 0x7C]                             
  PUSH EAX                                          
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]              
  ADD ECX, 0x3C                                     
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5

  //Bloodangel
  PUSH GET_ITEM_MODEL(0, 388)       // Right
  PUSH GET_ITEM_MODEL(0, 387)       // Left
  PUSH GET_ITEM_MODEL(0, 46)
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address2
  PUSH EAX
  LEA ECX, [EBP - 0x70]
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 5   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX
  LEA EAX, [EBP - 0x7C]
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x3C
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5




  JMP Address6
    }
}

Code:
SetCompleteHook(0xE9, 0x0050DC31, &InitRFGloves);

CustomItem.txt
PHP:
     <Item    Cat="0"  Index="46"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo" />
    <Item    Cat="0"  Index="387"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_L" />
    <Item    Cat="0"  Index="388"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_R" />

how to rotate the item: http://forum.ragezone.com/f193/help-resize-items-model-inventory-1153044/
 
Upvote 0
Joined
May 21, 2012
Messages
708
Reaction score
301
Code:
__declspec(naked) void InitRFGloves()
{
    static DWORD Address1 = 0x0050D810;
    static DWORD Address2 = 0x00512D50;
    static DWORD Address3 = 0x00513C60;
    static DWORD Address4 = 0x005135F0;
    static DWORD Address5 = 0x00512D60;
    static DWORD Address6 = 0x0050DCB0;

    _asm 
    {
  //Item (0, 35)
  PUSH 0x269                                        // Right
  PUSH 0x268                                        // Left
  PUSH 0x4B6                                        
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX                                         
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address2
  PUSH EAX                                         
  LEA ECX, [EBP - 0x70]                            
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 3   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX                                          
  LEA EAX, [EBP - 0x7C]                             
  PUSH EAX                                          
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]              
  ADD ECX, 0x3C                                     
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5

  //Bloodangel
  PUSH GET_ITEM_MODEL(0, 388)       // Right
  PUSH GET_ITEM_MODEL(0, 387)       // Left
  PUSH GET_ITEM_MODEL(0, 46)
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address2
  PUSH EAX
  LEA ECX, [EBP - 0x70]
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 5   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX
  LEA EAX, [EBP - 0x7C]
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x3C
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5




  JMP Address6
    }
}

Code:
SetCompleteHook(0xE9, 0x0050DC31, &InitRFGloves);

CustomItem.txt
PHP:
     <Item    Cat="0"  Index="46"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo" />
    <Item    Cat="0"  Index="387"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_L" />
    <Item    Cat="0"  Index="388"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_R" />

how to rotate the item: http://forum.ragezone.com/f193/help-resize-items-model-inventory-1153044/

you can help me to add to my source I have a server and I want to support rf gloves :(
 
Upvote 0
Skilled Illusionist
Joined
Feb 20, 2012
Messages
310
Reaction score
23
Code:
__declspec(naked) void InitRFGloves()
{
    static DWORD Address1 = 0x0050D810;
    static DWORD Address2 = 0x00512D50;
    static DWORD Address3 = 0x00513C60;
    static DWORD Address4 = 0x005135F0;
    static DWORD Address5 = 0x00512D60;
    static DWORD Address6 = 0x0050DCB0;

    _asm 
    {
  //Item (0, 35)
  PUSH 0x269                                        // Right
  PUSH 0x268                                        // Left
  PUSH 0x4B6                                        
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX                                         
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address2
  PUSH EAX                                         
  LEA ECX, [EBP - 0x70]                            
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 3   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX                                          
  LEA EAX, [EBP - 0x7C]                             
  PUSH EAX                                          
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]              
  ADD ECX, 0x3C                                     
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5

  //Bloodangel
  PUSH GET_ITEM_MODEL(0, 388)       // Right
  PUSH GET_ITEM_MODEL(0, 387)       // Left
  PUSH GET_ITEM_MODEL(0, 46)
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address2
  PUSH EAX
  LEA ECX, [EBP - 0x70]
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 5   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX
  LEA EAX, [EBP - 0x7C]
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x3C
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5




  JMP Address6
    }
}

Code:
SetCompleteHook(0xE9, 0x0050DC31, &InitRFGloves);

CustomItem.txt
PHP:
     <Item    Cat="0"  Index="46"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo" />
    <Item    Cat="0"  Index="387"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_L" />
    <Item    Cat="0"  Index="388"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_R" />

how to rotate the item: http://forum.ragezone.com/f193/help-resize-items-model-inventory-1153044/

what is this? what should i do to make it work ? :D
 
Last edited:
Upvote 0
Joined
May 21, 2012
Messages
708
Reaction score
301
Code:
__declspec(naked) void InitRFGloves()
{
    static DWORD Address1 = 0x0050D810;
    static DWORD Address2 = 0x00512D50;
    static DWORD Address3 = 0x00513C60;
    static DWORD Address4 = 0x005135F0;
    static DWORD Address5 = 0x00512D60;
    static DWORD Address6 = 0x0050DCB0;

    _asm 
    {
  //Item (0, 35)
  PUSH 0x269                                        // Right
  PUSH 0x268                                        // Left
  PUSH 0x4B6                                        
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX                                         
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]             
  ADD ECX, 0x5C                                    
  CALL Address2
  PUSH EAX                                         
  LEA ECX, [EBP - 0x70]                            
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 3   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX                                          
  LEA EAX, [EBP - 0x7C]                             
  PUSH EAX                                          
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]              
  ADD ECX, 0x3C                                     
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5

  //Bloodangel
  PUSH GET_ITEM_MODEL(0, 388)       // Right
  PUSH GET_ITEM_MODEL(0, 387)       // Left
  PUSH GET_ITEM_MODEL(0, 46)
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address1
  MOV EAX, DWORD PTR SS : [EBP - 0x9C]
  ADD EAX, 0x5C
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x5C
  CALL Address2
  PUSH EAX
  LEA ECX, [EBP - 0x70]
  CALL Address3
  MOV DWORD PTR SS : [EBP - 0xB8], EAX
  MOV ECX, DWORD PTR SS : [EBP - 0xB8]
  MOV DWORD PTR SS : [EBP - 0xBC], ECX
  MOV DWORD PTR SS : [EBP - 0x4], 5   //Number++
  MOV EDX, DWORD PTR SS : [EBP - 0xBC]
  PUSH EDX
  LEA EAX, [EBP - 0x7C]
  PUSH EAX
  MOV ECX, DWORD PTR SS : [EBP - 0x9C]
  ADD ECX, 0x3C
  CALL Address4
  MOV DWORD PTR SS : [EBP - 0x4], -1
  LEA ECX, [EBP - 0x70]
  CALL Address5




  JMP Address6
    }
}

Code:
SetCompleteHook(0xE9, 0x0050DC31, &InitRFGloves);

CustomItem.txt
PHP:
     <Item    Cat="0"  Index="46"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo" />
    <Item    Cat="0"  Index="387"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_L" />
    <Item    Cat="0"  Index="388"    ColorR="104"    ColorG="104"    ColorB="104"    ModelName="BloodangelClo_R" />

how to rotate the item: http://forum.ragezone.com/f193/help-resize-items-model-inventory-1153044/

you can help me add to the source rf glove custom ??
 
Upvote 0
Back
Top