Autor Topic: Source Custom Gloves(RF) Season 6 muemu  (Visto 208 veces)

0 Miembros and 1 Guest are viewing this topic.

Online djagripnos on: September 18, 2018, 08:14:40 AM

  • *
  • Rank: Puto amo
  • Posts: 385
  • Gracias recibida: 8286
Source Custom Gloves(RF) Season 6



BattleGloves.h


Code: [Select]
#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: [Select]
#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("","FUCK [%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: [Select]
#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: [Select]
#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
« Ultima edicion: September 20, 2018, 02:56:49 PM by Cloud »

Gracias:


Offline GX_KYO #1 on: September 18, 2018, 11:02:35 AM

  • *
  • Rank: Usuario activo
  • Posts: 79
  • Gracias recibida: 24
Is the same one from here http://tuservermu.com.ve/index.php?topic=14535.0

And you said:
this source does not work

 lol jajaja even the link from mega is the same lol
« Ultima edicion: September 18, 2018, 11:09:06 AM by GX_KYO »
Killing me one breath at a time... Cutting you with my pair of lives... So go on and lay me down to rest, You make it painless, painless!
I can't... I can't... I can't...
I can't feel ANY PAIN!

 

Related Topics

  Subject / Started by Replies Last post
9 Replies
511 Views
Last post March 15, 2017, 08:27:28 PM
by ratza2003
7 Replies
609 Views
Last post June 20, 2018, 06:27:17 PM
by jhonhy
5 Replies
201 Views
Last post July 18, 2018, 07:08:17 PM
by Azzlaer
1 Replies
237 Views
Last post August 18, 2018, 12:56:41 PM
by ZabiinoOo
0 Replies
71 Views
Last post October 09, 2018, 04:11:09 AM
by djagripnos