Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[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


 

Attachments

You must be registered for see attachments list
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