• 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] ItemSetOption.bmd

Experienced Elementalist
Joined
Sep 27, 2014
Messages
239
Reaction score
6
Helo dear friends and ragezone i have a question in my server in ItemSetOption.bmd have only 63 case for sets accient it is possible to increase the number 64...65...66 and on?
ekoXSrH - [Help] ItemSetOption.bmd - RaGEZONE Forums


 
Newbie Spellweaver
Joined
Jan 20, 2016
Messages
23
Reaction score
28
Code:
#pragma once
// ----------------------------------------------------------------------------------------------


#if(ENABLE_ITEMSETOPTION)
// ---------------------------------------------------------------------------------------------


#define MAX_SETOPT_LINE            110    //108
#define MAX_SETOPT_COUNT        256    //256
#define MAX_BSETOPT_SIZE        (MAX_SETOPT_COUNT*MAX_SETOPT_LINE)
// ----------------------------------------------------------------------------------------------


#define oItemSetOptionBMDLoad    0x004E8916
#define oItemSetOptionAsm1        0x004E956E
#define oItemSetOptionAsm2        0x004E926B
#define oItemSetOptionAsm3        0x004EC4C4
#define oItemSetOptionAsm4        0x004EC2A5
#define oItemSetOptionAsm5        0x004EC3A9
#define oItemSetOptionAsm6        0x004EBD7F
#define oItemSetOptionAsm7        0x004EBEE9
#define oItemSetOptionAsm8        0x004ECAAA
#define pFileOpen                ((int(__cdecl*)(char* FileName, char* Mode)) 0x9CFEC0)
#define pFileRead                ((int(__cdecl*)(int a1, int a2, int a3, int a4)) 0x9CFDDF)
#define pFileClose                ((signed int(__cdecl*)(int a1))0x9CFAA6)
#define pFileCRC                ((int(__cdecl*)(int a1, int a2, unsigned __int16 a3)) 0x4B1A20)
#define pFileDec                ((int(__cdecl*)(int a1, signed int a2)) 0x4071A0)
// ----------------------------------------------------------------------------------------------


class CItemSetOption
{
public:
        CItemSetOption();
        ~CItemSetOption();


    void Load();


    static bool BMDLoad(char* FileName);


    static void AsmAncent1();
    static void AsmAncent2();
    static void AsmAncent3();
    static void AsmAncent4();
    static void AsmAncent5();
    static void AsmAncent6();
    static void AsmAncent7();
    static void AsmAncent8();


    DWORD m_dwSetOptionAddress;
    DWORD m_dwJmpReturn1;
    DWORD m_dwJmpReturn2;
    DWORD m_dwJmpReturn3;
    DWORD m_dwJmpReturn4;
    DWORD m_dwJmpReturn5;
    DWORD m_dwJmpReturn6;
    DWORD m_dwJmpReturn7;
    DWORD m_dwJmpReturn8;


    BYTE m_SetOptionData[MAX_BSETOPT_SIZE];
};
// ----------------------------------------------------------------------------------------------


extern CItemSetOption g_ItemSetOption;
// ----------------------------------------------------------------------------------------------


#endif

Code:
#include "stdafx.h"
#include "ItemSetOption.h"
#include "TMemory.h"
#include "Import.h"
// ----------------------------------------------------------------------------------------------


#if(ENABLE_ITEMSETOPTION)
// ----------------------------------------------------------------------------------------------


CItemSetOption g_ItemSetOption;
// ----------------------------------------------------------------------------------------------


CItemSetOption::CItemSetOption()
{
}
// ----------------------------------------------------------------------------------------------


CItemSetOption::~CItemSetOption()
{
}
// ----------------------------------------------------------------------------------------------


void CItemSetOption::Load()
{
    memset(this->m_SetOptionData, 0, sizeof(this->m_SetOptionData));


    this->m_dwSetOptionAddress = (DWORD)&this->m_SetOptionData;
    
    this->BMDLoad("Data\\ExData\\Local\\itemsetoption_new.bmd");


    this->m_dwJmpReturn1 = oItemSetOptionAsm1 + 13;
    SetRange((LPVOID)oItemSetOptionAsm1, 13, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm1, (LPVOID)this->AsmAncent1, ASM::JMP);


    this->m_dwJmpReturn2 = oItemSetOptionAsm2 + 10;
    SetRange((LPVOID)oItemSetOptionAsm2, 10, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm2, (LPVOID)this->AsmAncent2, ASM::JMP);


    this->m_dwJmpReturn3 = oItemSetOptionAsm3 + 10;
    SetRange((LPVOID)oItemSetOptionAsm3, 10, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm3, (LPVOID)this->AsmAncent3, ASM::JMP);


    this->m_dwJmpReturn4 = oItemSetOptionAsm4 + 10;
    SetRange((LPVOID)oItemSetOptionAsm4, 10, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm4, (LPVOID)this->AsmAncent4, ASM::JMP);


    this->m_dwJmpReturn5 = oItemSetOptionAsm5 + 10;
    SetRange((LPVOID)oItemSetOptionAsm5, 10, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm5, (LPVOID)this->AsmAncent5, ASM::JMP);


    this->m_dwJmpReturn6 = oItemSetOptionAsm6 + 13;
    SetRange((LPVOID)oItemSetOptionAsm6, 13, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm6, (LPVOID)this->AsmAncent6, ASM::JMP);


    this->m_dwJmpReturn7 = oItemSetOptionAsm7 + 10;
    SetRange((LPVOID)oItemSetOptionAsm7, 10, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm7, (LPVOID)this->AsmAncent7, ASM::JMP);


    this->m_dwJmpReturn8 = oItemSetOptionAsm8 + 10;
    SetRange((LPVOID)oItemSetOptionAsm8, 10, ASM::NOP);
    SetOp((LPVOID)oItemSetOptionAsm8, (LPVOID)this->AsmAncent8, ASM::JMP);
}
// ----------------------------------------------------------------------------------------------
bool CItemSetOption::BMDLoad(char* FileName)
{
    int File = pFileOpen(FileName, "rb");


    if(File)
    {
        int iTemp = 0;
        int iSize = 0;
        int iLenCount = MAX_SETOPT_LINE;


        pFileRead((int)&g_ItemSetOption.m_SetOptionData[iSize], MAX_BSETOPT_SIZE, 1, File);
        pFileRead((int)&iTemp, 4, 1, File);
        pFileClose(File);
        pFileCRC((int)&g_ItemSetOption.m_SetOptionData[iSize], iLenCount << 6, 0xA2F1);


        for(int i = 0; i < MAX_SETOPT_COUNT; i++)
        {
            pFileDec((int)&g_ItemSetOption.m_SetOptionData[iSize], iLenCount);
            iSize += iLenCount;
        }
    }
    else
    {
        char szText[64];
        sprintf(szText, "%s - File not exist.", FileName);
        MessageBoxA(pGameWindow, szText, NULL, NULL);
        SendMessageA(pGameWindow, WM_DESTROY, NULL, NULL);
    }


    return true;
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent1()
{
    _asm
    {
        MOV ECX,g_ItemSetOption.m_dwSetOptionAddress
        LEA EDX,[EAX+ECX]
        JMP g_ItemSetOption.m_dwJmpReturn1
    }
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent2()
{
    _asm
    {
        MOV ECX,g_ItemSetOption.m_dwSetOptionAddress


        LEA EDX,[EAX+ECX]
        JMP g_ItemSetOption.m_dwJmpReturn2
    }
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent3()
{
    _asm
    {
        MOV EDX,g_ItemSetOption.m_dwSetOptionAddress
        LEA EAX,[ECX+EDX]
        JMP g_ItemSetOption.m_dwJmpReturn3
    }
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent4()
{
    _asm
    {
        MOV EAX,g_ItemSetOption.m_dwSetOptionAddress
        LEA ECX,[EDX+EAX]
        JMP g_ItemSetOption.m_dwJmpReturn4
    }
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent5()
{
    _asm
    {
        MOV EAX,g_ItemSetOption.m_dwSetOptionAddress
        LEA ECX,[EDX+EAX]
        JMP g_ItemSetOption.m_dwJmpReturn5
    }
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent6()
{
    _asm
    {
        MOV EDX,g_ItemSetOption.m_dwSetOptionAddress
        LEA EAX,[ECX+EDX]
        JMP g_ItemSetOption.m_dwJmpReturn6
    }
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent7()
{
    _asm
    {
        MOV EAX,g_ItemSetOption.m_dwSetOptionAddress
        LEA ECX,[EDX+EAX]
        JMP g_ItemSetOption.m_dwJmpReturn7
    }
}
// ----------------------------------------------------------------------------------------------


void __declspec(naked) CItemSetOption::AsmAncent8()
{
    _asm
    {
        MOV ECX,g_ItemSetOption.m_dwSetOptionAddress
        LEA EDX,[EAX+ECX]
        JMP g_ItemSetOption.m_dwJmpReturn8
    }
}
// ----------------------------------------------------------------------------------------------
#endif
 
Last edited:
Upvote 0
Experienced Elementalist
Joined
Sep 27, 2014
Messages
239
Reaction score
6
ok ok



https://mega.nz/#!AAIAxA4R!O-3yJ5j0FJnwEia1bC_ZXQ8HHnglP9m-05GMFhnnwds
 
Upvote 0
Back
Top