- 4,809
- 6,488
через GAME->, либо из соба возьми функцию загрузки всех моделей оружияКак загрузить модель оружия в СФ?
через GAME->, либо из соба возьми функцию загрузки всех моделей оружияКак загрузить модель оружия в СФ?
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;
};
Это я думаю для проверки за стримом, где мир не загруженbCheckDummies
Гугл, говорит, что это проверка на видимые вещи, возможно оба векотора координат должны быть на экранеbSeeThroughStuff
bool &ActiveCursor = SF->getSAMP()->getMisc()->ToggleCursor;
int &ActiveCursor = SF->getSAMP()->getMisc()->ToggleCursor;
stMiscInfo *II = SF->getSAMP()->getMisc()->ToggleCursor;
Тебе так принципиально енигмой?Как плагин в энигме упаковать?
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());
};
}
Так это и есть весь код цикла mainloop. Ну если надо:весь код.
#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;
}
ты isKeyPressed вызываешь до инициализации. После условия if (!init), в конце, добавь else и в нем пиши свой кодГружу пустой плагин сф - нормально грузится. Добавляю немного кода - 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 и в нем пиши свой код
#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;
}
это что за еботня?strrev(msg);
char *nick = strtok(msg, " ");
Все так же
Мб компилирую как то не правильно?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;
}
SAMPFUNCS.log скиньВсе так же
Мб компилирую как то не правильно?