Другое С/С++ Вопрос - Ответ

-raymond-

Известный
110
9
возникла проблема с imgui
создал 2 поля inputtext
WVl94oi.png

при нажатии на поле логина вводить ничего нельзя, при нажатии на поле пароля я ввожу свой текст, указывая при этом флаг ImGuiInputTextFlags_Password, и этот же текст дублируется в поле логина но уже не зашифрованный
код:

C++:
ImGui::Begin(NAME_LOADER, &open, ImVec2(WINDOW_WIDTH, WINDOW_HEIGHT), 1.0f, dwWindowFlag);
    {
        ImVec2 size_item;

        size_item = ImGui::CalcTextSize(u8"Логин");
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - size_item.x) / 2);
        ImGui::SetCursorPosY((ImGui::GetWindowHeight() - size_item.y) / 2);
        ImGui::Text(u8"Логин");

        static char login_text[32];
        ImGui::PushItemWidth(ImGui::GetWindowWidth() - 200);
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - ImGui::CalcItemWidth()) / 2);
        ImGui::InputText(u8"", login_text, 32, ImGuiInputTextFlags_CharsHexadecimal);

        ImGui::PopItemWidth();

        size_item = ImGui::CalcTextSize(u8"Пароль");
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - size_item.x) / 2);
        ImGui::Text(u8"Пароль");

        static char password_text[32];
        ImGui::PushItemWidth(ImGui::GetWindowWidth() - 200);
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - ImGui::CalcItemWidth()) / 2);
        ImGui::InputText(u8"", password_text, 32, ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_Password);

        ImGui::PopItemWidth();
    }

    ImGui::End();
 

Musaigen

abobusnik
Проверенный
1,585
1,309
возникла проблема с imgui
создал 2 поля inputtext
WVl94oi.png

при нажатии на поле логина вводить ничего нельзя, при нажатии на поле пароля я ввожу свой текст, указывая при этом флаг ImGuiInputTextFlags_Password, и этот же текст дублируется в поле логина но уже не зашифрованный
код:

C++:
ImGui::Begin(NAME_LOADER, &open, ImVec2(WINDOW_WIDTH, WINDOW_HEIGHT), 1.0f, dwWindowFlag);
    {
        ImVec2 size_item;

        size_item = ImGui::CalcTextSize(u8"Логин");
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - size_item.x) / 2);
        ImGui::SetCursorPosY((ImGui::GetWindowHeight() - size_item.y) / 2);
        ImGui::Text(u8"Логин");

        static char login_text[32];
        ImGui::PushItemWidth(ImGui::GetWindowWidth() - 200);
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - ImGui::CalcItemWidth()) / 2);
        ImGui::InputText(u8"", login_text, 32, ImGuiInputTextFlags_CharsHexadecimal);

        ImGui::PopItemWidth();

        size_item = ImGui::CalcTextSize(u8"Пароль");
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - size_item.x) / 2);
        ImGui::Text(u8"Пароль");

        static char password_text[32];
        ImGui::PushItemWidth(ImGui::GetWindowWidth() - 200);
        ImGui::SetCursorPosX((ImGui::GetWindowWidth() - ImGui::CalcItemWidth()) / 2);
        ImGui::InputText(u8"", password_text, 32, ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_Password);

        ImGui::PopItemWidth();
    }

    ImGui::End();
Названия измени в инпуте на ##1 и ##2
 
  • Нравится
Реакции: -raymond-

Cake_

Известный
Проверенный
263
313
Как это будет на SF/C++ ?
Lua:
getOffsetFromCharInWorldCoords
 

Stiopko

Известный
Проверенный
307
218
как можно сделать линию только не на екране а в 3d?
 

Cake_

Известный
Проверенный
263
313
как можно сделать линию только не на екране а в 3d?
C++:
SF->getGame()->convert3DCoordsToScreen(enpos[0], enpos[1], enpos[2], &screen[0], &screen[1]);
Update: enpos - 3д коорды , которые нужно перевести , screen - куда будут записаны 2д коорды
 
  • Нравится
Реакции: Stiopko

Cake_

Известный
Проверенный
263
313
А в 3d никак ?
А как узнать что обьект на екране?
И есть ли в SF массив со всема обектами, и массив c текстами (label)
C++:
CPed* Pedself = GAME->GetPools()->GetPed((DWORD*)SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->pSAMP_Actor->pGTA_Ped);
if (Pedself->IsOnScreen())
{
       //Код
}
 
  • Нравится
Реакции: Stiopko

Stiopko

Известный
Проверенный
307
218

Cake_

Известный
Проверенный
263
313
Нашел
C++:
 bool IsOnScreen(DWORD OBJECT)
    {
        DWORD dwFunc = FUNC_IsVisible;
        DWORD dwThis = (DWORD)SF->getSAMP()->getInfo()->pPools->pObject->object[OBJECT]->pGTAEntity;
        bool bReturn = false;
        _asm
        {
            mov        ecx, dwThis
                call    dwFunc
                mov        bReturn, al
        }
        return bReturn;
    }
C++:
bool OnScreen(CVector vect)
{
    SF->getCLEO()->callOpcode("00C2: %f %f %f 0.0", vect.fX, vect.fY, vect.fZ);
    return SF->getCLEO()->GetCondResult();
}
Или так
 
  • Нравится
Реакции: EclipsedFlow и Stiopko

Stiopko

Известный
Проверенный
307
218
А в 3d никак ?
А как узнать что обьект на екране?
И есть ли в SF массив со всема обектами, и массив c текстами (label)

Не так сказал, есть ли в SF массив со всема созданными сервером объектами, и массив c текстами (label) (типа в зоне стрима)
__________
Нашел
 

Vintik

Мечтатель
Проверенный
1,483
943
Приветствую. Хочу развёрнутый ответ на вопрос: как найти базовый адрес samp.dll (в CE можно сразу писать "samp.dll + ...[смещение"). Плиз, помогите =)
 

san0

Известный
Друг
411
267
Плиз, помогите =)
Здравствуйте) Хотелось бы посоветовать использовать след. WinAPI ф-ции
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa
Пример использования в собейте
https://github.com/BlastHackNet/mod...6f567b5391b0b2a6dc8/src/cheat_funcs.cpp#L3102
https://github.com/BlastHackNet/mod...b6325e566f567b5391b0b2a6dc8/src/samp.cpp#L178
писать "samp.dll + ...[смещение"
Только не забывайте, что такая арифметика в языке С иногда не работает так, как предполагается: арифметика указателей в C всегда автоматически масштабируется под размер объектов, на которые ссылается указатель
 
  • Нравится
Реакции: Vintik