Можно передавать 0, 100,500. Сервер будет принимать разные варианты отключения: (500)вышел, (0)вылетелПочему нужно передавать в функцию отключения от сервера именно 100?
C++:SF->getSAMP()->disconnect(100);
Можно передавать 0, 100,500. Сервер будет принимать разные варианты отключения: (500)вышел, (0)вылетелПочему нужно передавать в функцию отключения от сервера именно 100?
C++:SF->getSAMP()->disconnect(100);
А 100 это какой вариант отключения?Можно передавать 0, 100,500. Сервер будет принимать разные варианты отключения: (500)вышел, (0)вылетел
обычный перезаход :DА 100 это какой вариант отключения?
ocornut/imgui(https://github.com/ocornut/imgui)a download to sampfuncs with imgui project? thanks
Так - прочитать ошибкуКак фиксануть?Код:Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка (активно) E0035 директива #error: <hash_map> is deprecated and will be REMOVED. Please use <unordered_map>. You can define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS to acknowledge that you have received this warning. SFPlugin C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.15.26726\include\hash_map 16
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; } } 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; }
Не уверен на все 100 что правильно написал, но по идее так можна выставлять флаги имунитета как аналог тому клео опкоду.Как это будет выглядить в SF?
CLEO:02AB: set_actor $PLAYER_ACTOR immunities BP 1 FP 1 EP 1 CP 1 MP 1 02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0
actor_info *mq = SF->getGame()->actorInfoGet(ACTOR_SELF, ACTOR_ALIVE);
if (mq != nullptr) selfish->flags |= ACTOR_FLAGS_INVULNERABLE;
How to send a command in game from a std::string, like SF->sendCMD("/mycommand my params")?
stLocalPlayer *LP = SF->getSAMP()->getPlayers()->pLocalPlayer;
if (LP != nullptr) LP->Say("/cmd");
я уже решил.Не уверен на все 100 что правильно написал, но по идее так можна выставлять флаги имунитета как аналог тому клео опкоду.
C++:actor_info *mq = SF->getGame()->actorInfoGet(ACTOR_SELF, ACTOR_ALIVE); if (mq != nullptr) selfish->flags |= ACTOR_FLAGS_INVULNERABLE;
C++:stLocalPlayer *LP = SF->getSAMP()->getPlayers()->pLocalPlayer; if (LP != nullptr) LP->Say("/cmd");
SF->getSAMP()->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped->flags = ACTOR_FLAGS_INVULNERABLE;
SF->getSAMP()->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped->flags ^= ACTOR_FLAGS_INVULNERABLE;
Можна использовать как аналог но у этого метода есть один минус - почему то после разворота тебя возращает обратно но из плюсов - плавный поворот.Как установить угол поворота игрока (локального) в SF плагине (или вообще)?
PEDSELF->SetCurrentRotation(180.0);
ID - Is yours samp player id what you needed.i am trying to get another players CPed, how do i do it?
CPed * ped = SF-> getSAMP () -> getPlayers () -> pRemotePlayer [playerId] -> pPlayerData-> pSAMP_Actor-> pGTA_Ped;
CPed* ped = GAME->GetPools()->GetPed((DWORD*)SF->getSAMP()->getPlayers()->pRemotePlayer[ID]->pPlayerData->pSAMP_Actor->pGTA_Ped);
Как сделать проверку на файл в папке? Например в корне ГТА, если есть файл .. то действие ...
if (!PathFileExistsA("./SAMPFUNCS/anticrasher037.sf"))
You can`t do it from SF API CLEO Caller Engine as far as i know but why you so need it if exist so pretty analogue Sleep(ms); Just do not use it in a commands and hooks cuz will be problem (Solution: Creating a new thread for execution).how can i put a 'wait' like
SF->getCLEO()->callOpcode("0AF9: samp say_msg \"gethit\"");
SF->getCLEO()->callOpcode("0001: wait 400 ms");
SF->getCLEO()->callOpcode("0AF9: samp say_msg \"gethit\"");