- 614
- 257
в собейте посмотриКак это будет на сф/C++?
C++:vect2_dist vect3_copy
в собейте посмотриКак это будет на сф/C++?
C++:vect2_dist vect3_copy
та же самая строка получаецаЗначит не правильная строка о покупке дома. Попробуй выводить переменную message в чат и копировать строку о покупке дома из нее
Сомневаюсь, что из-за этого, но все же.та же самая строка получаеца
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(); bool CALLBACK incomingRPC(stRakNetHookParams * params) { if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage) { size_t len; DWORD color; char message[256]; params->bitStream->ResetReadPointer(); params->bitStream->Read(color); params->bitStream->Read(len); params->bitStream->Read(message, len); params->bitStream->ResetReadPointer(); SF->getSAMP()->getChat()->AddChatMessage(-1, "DOM ne BAYED"); // [Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш! if (strcmp(message, "[Информация] {FFFFFF}Поздравляю! Теперь этот дом ваш") == 0) { SF->getSAMP()->getChat()->AddChatMessage(-1, "DOM BAYED"); char result[12]; strcat(message, " [1.9741]"); return 1; } }; return 1; } 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->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC); 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; }
всегда дом не байед блеать
if (strstr(message, "Поздравляю! Теперь этот дом ваш") != 0) {
}
ты заебал, я же тебе уже отвечал и давал полностью рабочий пример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(); bool CALLBACK incomingRPC(stRakNetHookParams *params) { if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage) { size_t len; DWORD color; char message[256]; params->bitStream->ResetReadPointer(); params->bitStream->Read(color); params->bitStream->Read(len); params->bitStream->Read(message, len); params->bitStream->ResetReadPointer(); SF->getSAMP()->getChat()->AddChatMessage(-1, "DOM ne BAYED"); // [Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш! if (strcmp(message, "[Информация] {FFFFFF}Поздравляю! Теперь этот дом ваш") == 0) { SF->getSAMP()->getChat()->AddChatMessage(-1, "DOM BAYED"); char result[12]; strcat(message, " [1.9741]"); return 1; } }; return 1; } 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->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC); 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; }
всегда дом не байед блеать
bool CALLBACK incomingRPC(stRakNetHookParams * params)
{
if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage)
{
uint strLen, color;
char szMsg[144];
params->bitStream->ResetReadPointer();
params->bitStream->Read(color);
params->bitStream->Read(strLen);
if (strLen >= sizeof(szMsg)) strLen = sizeof(szMsg) - 1;
params->bitStream->Read(szMsg, strLen);
szMsg[strLen] = '\0';
if(strstr(szMsg, "Поздравляю! Теперь этот дом ваш"))
{
SF->getSAMP()->getChat()->AddChatMessage(-1, "kla$$");
// ...
}
}
return 1;
}
Ставь свой хук на present или попробуй SFшный поставить пораньшевозможно ли в сф отрендерить текст при загрузке игры? как в собейте на месте худа снизу
В структуре actor_info есть элемент runningStyle, для примера там указаны такие значения как: 0x36 = cj, 0x8A = rollerskate, 0x7F = woozie, 0x75 = crash.
Где можно найти полный список?
const struct move_animation_info move_animations[MOVE_ANIMATIONS_COUNT] =
{
// ordered by eMoveAnim-ids (ascending)
{ MOVE_PLAYER, "CJ" },
// { MOVE_PLAYER_F, "Player (F)" },
// { MOVE_PLAYER_M, "Player (M)" },
{ MOVE_ROCKET, "Rocket" },
// { MOVE_ROCKET_F, "Rocket (F)" },
// { MOVE_ROCKET_M, "Rocket (M)" },
{ MOVE_ARMED, "Armed" },
// { MOVE_ARMED_F, "Armed (F)" },
// { MOVE_ARMED_M, "Armed (M)" },
{ MOVE_BBBAT, "Baseball" },
// { MOVE_BBBAT_F, "Baseball (F)" },
// { MOVE_BBBAT_M, "Baseball (M)" },
{ MOVE_CSAW, "Chainsaw" },
// { MOVE_CSAW_F, "Chainsaw (F)" },
// { MOVE_CSAW_M, "Chainsaw (M)" },
{ MOVE_SNEAK, "Sneak" },
{ MOVE_JETPACK, "Jetpack" },
{ MOVE_MAN, "Man" },
{ MOVE_SHUFFLE, "Shuffle" },
{ MOVE_OLDMAN, "Old (M)" },
{ MOVE_GANG1, "Gang1" },
{ MOVE_GANG2, "Gang2" },
{ MOVE_OLDFATMAN, "Old fat (M)" },
{ MOVE_FATMAN, "Fat (M)" },
{ MOVE_JOGGER, "Jogger (M)" },
{ MOVE_DRUNKMAN, "Drunk" },
{ MOVE_BLINDMAN, "Woozie" },
{ MOVE_SWAT, "SWAT" },
{ MOVE_WOMAN, "Woman" },
{ MOVE_SHOPPING, "Shopping" },
{ MOVE_BUSYWOMAN, "Busy (F)" },
{ MOVE_SEXYWOMAN, "Sexy (F)" },
{ MOVE_PRO, "Pro" },
{ MOVE_OLDWOMAN, "Old (F)" },
{ MOVE_FATWOMAN, "Fat (F)" },
{ MOVE_JOGWOMAN, "Jogger (F)" },
{ MOVE_OLDFATWOMAN, "Old fat (F)" },
// { MOVE_SKATE, "Skate" }, /needs to be loaded from some not always loaded file?
};
enum eMoveAnim
{
MOVE_PLAYER = 54,
MOVE_PLAYER_F,
MOVE_PLAYER_M,
MOVE_ROCKET,
MOVE_ROCKET_F,
MOVE_ROCKET_M,
MOVE_ARMED,
MOVE_ARMED_F,
MOVE_ARMED_M,
MOVE_BBBAT,
MOVE_BBBAT_F,
MOVE_BBBAT_M,
MOVE_CSAW,
MOVE_CSAW_F,
MOVE_CSAW_M,
MOVE_SNEAK,
MOVE_JETPACK,
MOVE_MAN = 118,
MOVE_SHUFFLE,
MOVE_OLDMAN,
MOVE_GANG1,
MOVE_GANG2,
MOVE_OLDFATMAN,
MOVE_FATMAN,
MOVE_JOGGER,
MOVE_DRUNKMAN,
MOVE_BLINDMAN,
MOVE_SWAT,
MOVE_WOMAN,
MOVE_SHOPPING,
MOVE_BUSYWOMAN,
MOVE_SEXYWOMAN,
MOVE_PRO,
MOVE_OLDWOMAN,
MOVE_FATWOMAN,
MOVE_JOGWOMAN,
MOVE_OLDFATWOMAN,
MOVE_SKATE,
};
нахуя тогда отвечать если не можешь сделать это нормально?float distance = sqrt ( (x2- x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) ); пишу с телефона , так бы скинул функу , но думаю самому не сложно будет сделать
if (data->EventFlag ==
Вроде тут есть , я щас с мобилы не могу проверить
можешь проверять курсор енаблед, он в основном от инпут боксов возвращает тру, или от включенном диалогеКак в имгуи сделать проверку, что открыто любое поле ввода? (в самом меню, а не в игре).
установил уже windows sdk 8.1 и тоже самое1>D:\вс19\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: не удалось найти Windows SDK версии 8.1. Установите нужную версию Windows SDK или измените версию SDK на страницах свойств проекта либо щелкнув правой кнопкой мыши решение и выбрав "Изменить целевую платформу решения".
очень ахуенно ставлю класпри компиляции такая хуета
установил уже windows sdk 8.1 и тоже самое
как фиксить?