Другое SAMPFUNCS | API C++

Gabriel__

Известный
Проверенный
411
183
C++:
struct SLineOfSightFlags
{
    SLineOfSightFlags ( void )
        : bCheckBuildings ( true )
        , bCheckVehicles ( true )
        , bCheckPeds ( true )
        , bCheckObjects ( true )
        , bCheckDummies ( true )
        , bSeeThroughStuff ( false )
        , bIgnoreSomeObjectsForCamera ( false )
        , bShootThroughStuff ( false )
        , bCheckCarTires ( false )
    {}
    bool bCheckBuildings;
    bool bCheckVehicles;
    bool bCheckPeds;
    bool bCheckObjects;
    bool bCheckDummies; // Что это ?
    bool bSeeThroughStuff; // Что это ?
    bool bIgnoreSomeObjectsForCamera; // Что это ?
    bool bShootThroughStuff;            // not used for IsLineOfSightClear [B]// Что это ?
    bool bCheckCarTires;
};
 

SR_team

like pancake
BH Team
4,809
6,488

iAmerican

Известный
Друг
614
260
Как получить указатель на статус Курсора , чето уже все перепробовал

C++:
bool &ActiveCursor = SF->getSAMP()->getMisc()->ToggleCursor;
C++:
int &ActiveCursor = SF->getSAMP()->getMisc()->ToggleCursor;
C++:
stMiscInfo *II = SF->getSAMP()->getMisc()->ToggleCursor;
 

BlackKnigga

Известный
BH Team
922
446
Гружу пустой плагин сф - нормально грузится. Добавляю немного кода - Plugin not found. Что не так?
C++:
void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

        init = true;
    }

    if (SF->getGame()->isKeyPressed(9))
    {
        std::string string = SF->getSAMP()->getChat()->GetChatInputText();
       
       
        SF->Log(string.c_str());
    };
}
 

BlackKnigga

Известный
BH Team
922
446
Так это и есть весь код цикла mainloop. Ну если надо:
C++:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

        init = true;
    }

    if (SF->getGame()->isKeyPressed(9))
    {
        std::string string = SF->getSAMP()->getChat()->GetChatInputText();
       
       
        SF->Log(string.c_str());
    };
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}
 

SR_team

like pancake
BH Team
4,809
6,488
Гружу пустой плагин сф - нормально грузится. Добавляю немного кода - Plugin not found. Что не так?
C++:
void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

        init = true;
    }

    if (SF->getGame()->isKeyPressed(9))
    {
        std::string string = SF->getSAMP()->getChat()->GetChatInputText();
      
      
        SF->Log(string.c_str());
    };
}
ты isKeyPressed вызываешь до инициализации. После условия if (!init), в конце, добавь else и в нем пиши свой код
 

BlackKnigga

Известный
BH Team
922
446
ты isKeyPressed вызываешь до инициализации. После условия if (!init), в конце, добавь else и в нем пиши свой код
Все так же
C++:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

        init = true;
    }
    else
    {
        if (SF->getGame()->isKeyPressed(9) && SF->getSAMP()->getInput()->iInputEnabled)
        {
            std::string string;
            string = SF->getSAMP()->getChat()->GetChatInputText();

            char *msg = new char[string.length() + 1];

            strrev(msg);
            char *nick = strtok(msg, " ");

            SF->Log(nick);
        }
    }

   
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}
Мб компилирую как то не правильно?
 

tropical5466

Известный
28
20
Все так же
C++:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

        init = true;
    }
    else
    {
        if (SF->getGame()->isKeyPressed(9) && SF->getSAMP()->getInput()->iInputEnabled)
        {
            std::string string;
            string = SF->getSAMP()->getChat()->GetChatInputText();

            char *msg = new char[string.length() + 1];

            strrev(msg);
            char *nick = strtok(msg, " ");

            SF->Log(nick);
        }
    }

  
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}
Мб компилирую как то не правильно?

Код:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );

        init = true;
    }
    if (SF->getGame()->isKeyPressed(9) && SF->getSAMP()->getInput()->iInputEnabled)
    {
            std::string string;
            string = SF->getSAMP()->getChat()->GetChatInputText();

            char *msg = new char[string.length() + 1];

            strrev(msg);
            char *nick = strtok(msg, " ");

            SF->Log(nick);
        }
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}