Другое SAMPFUNCS | API C++

iAmerican

Известный
Друг
614
257
C++:
bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride,
    CONST RGNDATA *pDirtyRegion)
{
    if (SF->getRender()->CanDraw()){
        if (stateblock == nullptr){
            stateblock = new CState(g_pd3dDevice);
        }           
        ImGui_ImplDX9_NewFrame();
        RenderGUI();
        stateblock->Save();           
        if (SUCCEEDED(SF->getRender()->BeginRender()) && init)
        {
            ImGui::Render();
           
            std::string s = SF->getSAMP()->getPlayers()->GetPlayerName(0);
            char buf[64];
            sprintf(buf, "%s", s);

            pFont->Print(buf, D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
            SF->getRender()->EndRender();
        }
        stateblock->Restore();
    }
    return true;
};

Игра виснет при старте. Как исправить?
 

Dark_Knight

Me, me and me.
Друг
4,067
2,080
pFont->Print(s.c_str(), D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);

И баг в спринт ефф. стд::стринг - это вектор байтов.
 
  • Нравится
Реакции: iAmerican

iAmerican

Известный
Друг
614
257
Можно ли изменить радиус получения игроков в стриме?
ну или как получить игрока в радиусе 5 метров
 

Gabriel__

Известный
Проверенный
411
182
Измеряй расстояние
C++:
float GetDistanceXYZ(float x1, float y1, float z1, float x2, float y2, float z2)
{
    return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) + pow(z2 - z1, 2));
}
 
  • Нравится
Реакции: iAmerican

QGate

Новичок
78
0
Как открыть чат и ввести туда что-либо не отправляя? Как проверить нажатия клавиш Alt и Up? Пробовал IsKeyPressed('Alt') IsKeyPressed('Up'), не работало.
 

SR_team

like pancake
BH Team
4,720
6,374
Как открыть чат и ввести туда что-либо не отправляя? Как проверить нажатия клавиш Alt и Up? Пробовал IsKeyPressed('Alt') IsKeyPressed('Up'), не работало.
VK_LMENU - Left ALT
VK_UP - Up
Чат открывается в GetIput или GetChat, точно не помню. Функцию ввода данных в чат без отправки завезем в новом СФ
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462

QGate

Новичок
78
0
https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd375731(v=vs.85).aspx
VK_LMENU - 0xA4(это не названия, которые ты будешь пытаться вставить как параметр, вводи число)
VK_UP - 0x26
Благодарю, просто видел пример в вики, там использовалось 'H'. Вот и подумал, что остальные также вводить).
VK_LMENU - Left ALT
VK_UP - Up
Чат открывается в GetIput или GetChat, точно не помню. Функцию ввода данных в чат без отправки завезем в новом СФ
Печально, что ее нету(. Ждемс)
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Благодарю, просто видел пример в вики, там использовалось 'H'. Вот и подумал, что остальные также вводить).
Если ты посмотришь на принимаемые параметры функцией, то byte key = 'H' будет равно 72, а byte key = 'h', то 104. Если сравнивать полученные значения в Virtual-Key Codes, то там будет подходить оба варианта, а правильный - один - 72(0x48), а 104(0x68) будет относиться к Numpad 8.
 
  • Нравится
Реакции: iAmerican

iAmerican

Известный
Друг
614
257
Можно ли как нибудь убрать баг получения Score игрока ? Что бы не нужно было открывать TAB.
 

Gabriel__

Известный
Проверенный
411
182
Почему метод GetObjectA в классе CPickup не возвращает объект ?
C++:
void render_pickups()
{
    CVector pos;
    float x, y;
    char text[256];
    CPickup* pickup;
    CObject* pickup_object;
    static stFontInfo* font = SF->getRender()->CreateNewFont("Arial", 10, FCR_BORDER | FCR_SHADOW);

    for (DWORD i = 0; i < MAX_PICKUPS; i++)
    {
        pickup = GAME->GetPickups()->GetPickup(i);
        if (!pickup)
            continue;
  
        pickup_object = pickup->GetObjectA();

        if (!pickup_object) // вот тут все время срабатывает условие
            continue;

        if (!pickup_object->IsOnScreen()) continue;

        pickup->GetPosition(&pos);
        SF->getGame()->convert3DCoordsToScreen(pos.fX, pos.fY, pos.fZ, &x, &y);
      
        sprintf_s(text, "Screen XY: %f %f", x, y);
        font->Print(text, -1, x, y);
    }
}
 
  • Нравится
Реакции: iAmerican

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Ну во первых - в GetPickup не передается ид текстдрава в сампе.