[Help] SetItemOption.bmd limited ? (S6muemu)

Results 1 to 3 of 3
  1. #1
    Apprentice paskitono is offline
    MemberRank
    Sep 2018 Join Date
    10Posts

    happy [Help] SetItemOption.bmd limited ? (S6muemu)

    hello,how i can add new ancients if only have 63lines for add itens..and my lines is all full..
    SetItemOption.bmd


  2. #2
    Apprentice eDangeR is offline
    MemberRank
    Jan 2016 Join Date
    23Posts

    information re: [Help] SetItemOption.bmd limited ? (S6muemu)

    Main 1.04D
    ItemSetOption.h

    PHP 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(charFileName);

        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 
    ItemSetOption.cpp
    PHP 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_SetOptionData0sizeof(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)oItemSetOptionAsm113ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm1, (LPVOID)this->AsmAncent1ASM::JMP);

        
    this->m_dwJmpReturn2 oItemSetOptionAsm2 10;
        
    SetRange((LPVOID)oItemSetOptionAsm210ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm2, (LPVOID)this->AsmAncent2ASM::JMP);

        
    this->m_dwJmpReturn3 oItemSetOptionAsm3 10;
        
    SetRange((LPVOID)oItemSetOptionAsm310ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm3, (LPVOID)this->AsmAncent3ASM::JMP);

        
    this->m_dwJmpReturn4 oItemSetOptionAsm4 10;
        
    SetRange((LPVOID)oItemSetOptionAsm410ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm4, (LPVOID)this->AsmAncent4ASM::JMP);

        
    this->m_dwJmpReturn5 oItemSetOptionAsm5 10;
        
    SetRange((LPVOID)oItemSetOptionAsm510ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm5, (LPVOID)this->AsmAncent5ASM::JMP);

        
    this->m_dwJmpReturn6 oItemSetOptionAsm6 13;
        
    SetRange((LPVOID)oItemSetOptionAsm613ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm6, (LPVOID)this->AsmAncent6ASM::JMP);

        
    this->m_dwJmpReturn7 oItemSetOptionAsm7 10;
        
    SetRange((LPVOID)oItemSetOptionAsm710ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm7, (LPVOID)this->AsmAncent7ASM::JMP);

        
    this->m_dwJmpReturn8 oItemSetOptionAsm8 10;
        
    SetRange((LPVOID)oItemSetOptionAsm810ASM::NOP);
        
    SetOp((LPVOID)oItemSetOptionAsm8, (LPVOID)this->AsmAncent8ASM::JMP);
    }
    // ----------------------------------------------------------------------------------------------
    bool CItemSetOption::BMDLoad(charFileName)
    {
        
    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_SIZE1File);
            
    pFileRead((int)&iTemp41File);
            
    pFileClose(File);
            
    pFileCRC((int)&g_ItemSetOption.m_SetOptionData[iSize], iLenCount << 60xA2F1);

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

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

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

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

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

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

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

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

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

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

    void __declspec(nakedCItemSetOption::AsmAncent8()
    {
        
    _asm
        
    {
            
    MOV ECX,g_ItemSetOption.m_dwSetOptionAddress
            LEA EDX
    ,[EAX+ECX]
            
    JMP g_ItemSetOption.m_dwJmpReturn8
        
    }
    }
    // ----------------------------------------------------------------------------------------------
    #endif 

  3. #3
    Proficient Member 007jodex is offline
    MemberRank
    Sep 2008 Join Date
    158Posts

    re: [Help] SetItemOption.bmd limited ? (S6muemu)

    @eDangeR Can u tell us on what time of main loading, should use that source? I tested hooking that function into original PUSH EBP and using by other side.., and crash when its loading.. Maybe some compatible editor would be nice..

    Cheers.



Advertisement