Взаимодействие с введенными ранее командами

chapo

tg/inst: @moujeek
Автор темы
Всефорумный модератор
9,089
12,108
Версия MoonLoader
.026-beta
Как можно получить и изменить список введенных ранее команд (стрелка вверх/вниз)?
 
  • Грустно
Реакции: SomaGnoma
Решение
Lua:
typedef void(__cdecl *CMDPROC) (PCHAR);
struct stInputInfo
{
    void                *pD3DDevice;
    void                *pDXUTDialog;
    stInputBox            *pDXUTEditBox;
    CMDPROC                pCMDs[SAMP_MAX_CLIENTCMDS];
    char                szCMDNames[SAMP_MAX_CLIENTCMDS][33];
    int                    iCMDCount;
    int                    iInputEnabled;
    char                szInputBuffer[129];
    char                szRecallBufffer[10][129];
    char                szCurrentBuffer[129];
    int                    iCurrentRecall;
    int                    iTotalRecalls;
    CMDPROC                pszDefaultCMD;
};

-- szRecallBufffer

Lua:
ffi.cdef[[
    typedef void(__cdecl *CMDPROC)(char *);
    struct stInputInfo
    {
        void...

Manuel Leon

Известный
266
170
Lua:
typedef void(__cdecl *CMDPROC) (PCHAR);
struct stInputInfo
{
    void                *pD3DDevice;
    void                *pDXUTDialog;
    stInputBox            *pDXUTEditBox;
    CMDPROC                pCMDs[SAMP_MAX_CLIENTCMDS];
    char                szCMDNames[SAMP_MAX_CLIENTCMDS][33];
    int                    iCMDCount;
    int                    iInputEnabled;
    char                szInputBuffer[129];
    char                szRecallBufffer[10][129];
    char                szCurrentBuffer[129];
    int                    iCurrentRecall;
    int                    iTotalRecalls;
    CMDPROC                pszDefaultCMD;
};

-- szRecallBufffer

Lua:
ffi.cdef[[
    typedef void(__cdecl *CMDPROC)(char *);
    struct stInputInfo
    {
        void                *pD3DDevice;
        void                *pDXUTDialog;
        void                *pDXUTEditBox;
        CMDPROC                pCMDs[144];
        char                szCMDNames[144][33];
        int                    iCMDCount;
        int                    iInputEnabled;
        char                szInputBuffer[129];
        char                szRecallBufffer[10][129];
        char                szCurrentBuffer[129];
        int                    iCurrentRecall;
        int                    iTotalRecalls;
        CMDPROC                pszDefaultCMD;
    }__attribute__ ((packed));
]]
function inputInfo(i)
    local input = ffi.cast("struct stInputInfo *", sampGetInputInfoPtr())
    sampAddChatMessage('Input '..i..' '.. ffi.string(input.szRecallBufffer[i]),-1)
end
function sampGetSampInfoPtr()
    return ffi.cast('struct stSAMP**', getModuleHandle("samp.dll") + 0x26E8CC)[0] -- R3 Addr
end

-- main
if wasKeyPressed(VK_N) then inputInfo(1) end
 
Последнее редактирование:
  • Нравится
Реакции: chapo и SomaGnoma