локального (свой)
auto id = sampapi::v037r3::RefNetGame().GetPlayerPool().m_localInfo.m_nId;
void menu::set_visible(bool visible) {
this->visible = visible;
if (!visible)
sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_NONE, 1);
;
}
void menu::present() {
if (!visible) return;
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
ImGui::SetNextWindowPos(
ImVec2(RsGlobal.maximumWidth / 2, RsGlobal.maximumHeight / 2),
ImGuiCond_FirstUseEver, ImVec2(0.5, 0.5));
ImGui::SetNextWindowSize(ImVec2(700, 420), ImGuiCond_FirstUseEver);
if (ImGui::Begin("abcde", nullptr, ImGuiWindowFlags_NoCollapse)) {
sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_LOCKCAM,
0);
// render
ImGui::End();
}
ImGui::EndFrame();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}
bool menu::wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_CHAR: {
wchar_t wch;
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
reinterpret_cast<char*>(&wParam), 1, &wch, 1);
wParam = wch;
break;
}
case WM_KEYUP:
if (wParam == VK_ESCAPE) set_visible(false);
break;
}
ImGui_ImplWin32_WndProcHandler(hwnd, uMsg, wParam, lParam);
auto& io = ImGui::GetIO();
if (io.WantCaptureKeyboard || io.WantCaptureMouse) {
return false;
}
return true;
}
Из-за чего может не реагировать менюшка на курсор (нажатия, растягивание), при этом скролл меню при помощи колесика и шифта работает?
C++:void menu::set_visible(bool visible) { this->visible = visible; if (!visible) sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_NONE, 1); ; } void menu::present() { if (!visible) return; ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); ImGui::SetNextWindowPos( ImVec2(RsGlobal.maximumWidth / 2, RsGlobal.maximumHeight / 2), ImGuiCond_FirstUseEver, ImVec2(0.5, 0.5)); ImGui::SetNextWindowSize(ImVec2(700, 420), ImGuiCond_FirstUseEver); if (ImGui::Begin("abcde", nullptr, ImGuiWindowFlags_NoCollapse)) { sampapi::v037r3::RefGame()->SetCursorMode(sampapi::v037r3::CURSOR_LOCKCAM, 0); // render ImGui::End(); } ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); } bool menu::wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CHAR: { wchar_t wch; MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, reinterpret_cast<char*>(&wParam), 1, &wch, 1); wParam = wch; break; } case WM_KEYUP: if (wParam == VK_ESCAPE) set_visible(false); break; } ImGui_ImplWin32_WndProcHandler(hwnd, uMsg, wParam, lParam); auto& io = ImGui::GetIO(); if (io.WantCaptureKeyboard || io.WantCaptureMouse) { return false; } return true; }
if (io.WantCaptureKeyboard || io.WantCaptureMouse) {
return true;
}
srand(static_cast<unsigned>(time(0)));
int randomNumber = 1000 + rand() % 49001;
char randomPlateText[9];
sprintf(randomPlateText, "%d", randomNumber);
const auto plateRaster = RwRasterCreate(64, 16, 32, rwRASTERFORMAT888 | rwRASTERPIXELLOCKEDWRITE);
if (!plateRaster) return true;
if (!RwTextureGetRaster(pCharsetTex)) {
RwRasterDestroy(plateRaster);
return true;
}
if (!RenderLicenseplateTextToRaster(randomPlateText, RwTextureGetRaster(pCharsetTex), CCustomCarPlateMgr::pPalette1555Tab[ResolvePlateType(modelInfo->m_nPlateType)], plateRaster)) {
RwRasterDestroy(plateRaster);
return true;
}
if (const auto plateTex = RwTextureCreate(plateRaster)) {
RwTextureSetName(plateTex, randomPlateText);
RwTextureSetFilterMode(plateTex, rwFILTERNEAREST);
}
я бы добавил обработчик исключений для atoi + добавил проверку на то, что игрок с таким id существуетПочему игра может вылетать?
deletee:void deletee(const char* params) { auto id = atoi(params); sampapi::v037r3::RefNetGame()->GetPlayerPool()->GetPlayer(id)->Remove(); }
Да именно крашит когда существующий ид игрока (в зоне стрима) ввожу. Если игрока нет в зоне стрима - ничего не происходит.я бы добавил обработчик исключений для atoi + добавил проверку на то, что игрок с таким id существует
Покажи кодКрашит при вызове RefNetGame::GetRakClient, имеется rce фикс, самп р3
Покажи код
RakNet::BitStream stream {};
stream.Write("hui");
GetRefGame()->GetRakClient()->Send(&stream, HIGH_PRIORITY, RELIABLE_ORDERED, 0);
CObject наследуется от CEntity, то есть имеет все его поляКак можно в sampapi выключить коллизию у объекта? (определенного по id) в cobject не нашел ничего связанного с этим
sampapi::v037r1::RefNetGame()->GetPlayerPool()->GetLocalPlayer()->m_onfootData.m_controllerState.m_bRightShoulder1