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

romanblinov2013

RB_PRO
Проверенный
212
196
#pragma comment(lib, "User32.lib")
Сейчас не выдаёт ошибок, но когда я запускаю сия игру, игра вылетает. Максимум я успеваю увидеть, как запускается samp-0.3.7, об этом мне говорит соответствующее сообщение в чате.
upload_2018-9-9_19-12-27.png
 

CleanLegend

Известный
Всефорумный модератор
476
929
Сейчас не выдаёт ошибок, но когда я запускаю сия игру, игра вылетает. Максимум я успеваю увидеть, как запускается samp-0.3.7, об этом мне говорит соответствующее сообщение в чате.
Посмотреть вложение 18801
в mainloop нельзя использовать Sleep
 

Blood

Известный
45
1
03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.2 0.5
0340: set_text_draw_RGBA 255 250 250 255
081C: draw_text_outline 1 RGBA 0 0 0 0
045A: draw_text_1number 582.0 69.0 GXT 'NUMBER' number 0@

ребят как можно это перевести в SF?
 

Musaigen

abobusnik
Проверенный
1,583
1,302
Как можно залочить мув камеры мышью, при этом плеер может двигаться.
 

ЯedЯuM

Malware Maker
244
304
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как можно залочить мув камеры мышью, при этом плеер может двигаться.
Пробуй, не тестил.
C++:
SF->getCLEO()->callOpcode("092F: 1"); // 0 офнит

03E4: set_text_draw_align_right 1
033F: set_text_draw_letter_size 0.2 0.5
0340: set_text_draw_RGBA 255 250 250 255
081C: draw_text_outline 1 RGBA 0 0 0 0
045A: draw_text_1number 582.0 69.0 GXT 'NUMBER' number 0@

ребят как можно это перевести в SF?
Это лишь набросок, тести.
C++:
stTextDrawTransmit txd;
txd.fLetterHeight = 0.2f;
txd.fLetterWidth = 0.5f;
txd.fX = 582.0f;
txd.fY = 69.0f;
txd.byteOutline = 1;
txd.dwLetterColor = ((255 & 0xff) << 24) + ((250 & 0xff) << 16) + ((250 & 0xff) << 8) + (255 & 0xff);
char numc[] = { "228" };
SF->getSAMP()->getInfo()->pPools->pTextdraw->Create(0, &txd, numc);
 
  • Нравится
Реакции: Blood

Musaigen

abobusnik
Проверенный
1,583
1,302
Пробуй, не тестил.
C++:
SF->getCLEO()->callOpcode("092F: 1"); // 0 офнит


Это лишь набросок, тести.
C++:
stTextDrawTransmit txd;
txd.fLetterHeight = 0.2f;
txd.fLetterWidth = 0.5f;
txd.fX = 582.0f;
txd.fY = 69.0f;
txd.byteOutline = 1;
txd.dwLetterColor = ((255 & 0xff) << 24) + ((250 & 0xff) << 16) + ((250 & 0xff) << 8) + (255 & 0xff);
char numc[] = { "228" };
SF->getSAMP()->getInfo()->pPools->pTextdraw->Create(0, &txd, numc);
Колбасили игру, я уже костылём сделал, работает норм, но один вопрос.
Как в WndProc блокнуть нажатие клавиши?
 

Musaigen

abobusnik
Проверенный
1,583
1,302
возвращать false
Скажу тебе честно, не особо помогает
UPD. Решил другим событием
C++:
bool CALLBACK WndProcHandler(HWND hwd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
        case WM_KEYUP:
        {
            switch (wParam)
            {
                case VK_LBUTTON:
                {
                    if (activew) // if imgui menu active
                    {
                        return false; // don't proc LBUTTON
                    }
                    else // if not imgui menu active
                    {
                        return true; // proc LBUTTON
                    }
                }
            }
        }
    }
    ImGui_ImplWin32_WndProcHandler(hwd, msg, wParam, lParam);
    return true;
}
 
Последнее редактирование:

Blood

Известный
45
1
Пробуй, не тестил.
C++:
SF->getCLEO()->callOpcode("092F: 1"); // 0 офнит


Это лишь набросок, тести.
C++:
stTextDrawTransmit txd;
txd.fLetterHeight = 0.2f;
txd.fLetterWidth = 0.5f;
txd.fX = 582.0f;
txd.fY = 69.0f;
txd.byteOutline = 1;
txd.dwLetterColor = ((255 & 0xff) << 24) + ((250 & 0xff) << 16) + ((250 & 0xff) << 8) + (255 & 0xff);
char numc[] = { "228" };
SF->getSAMP()->getInfo()->pPools->pTextdraw->Create(0, &txd, numc);
не вкурил а как сюда присобачить чтобы хп рендерилось
 

ЯedЯuM

Malware Maker
244
304
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Blood

Известный
45
1
Если ты не умеешь хп получить то о какой помощи речь, это называется сделай всё за меня.
хп то, я получил через хук, но все равно, когда я прописываю команду, пропадает надпись проекта на сервере.

PHP:
void CALLBACK draws(std::string param)
{
    act ^= true;
    if(act)
    {
    txd.fLetterHeight = 0.2f;
    txd.fLetterWidth = 0.5f;
    txd.fX = 582.0f;
    txd.fY = 69.0f;
    txd.byteOutline = 1;
    txd.dwLetterColor = ((255 & 0xff) << 24) + ((250 & 0xff) << 16) + ((250 & 0xff) << 8) + (255 & 0xff);
    }

    SF->getSAMP()->getInfo()->pPools->pTextdraw->Create(0, &txd, buf);

}

bool CALLBACK incomingRPC(stRakNetHookParams *params)
{

    if (params->packetId == ScriptRPCEnumeration::RPC_ScrSetPlayerHealth && act == true)
    {
        float health;

        params->bitStream->ResetReadPointer();
        params->bitStream->Read(health);
        params->bitStream->ResetReadPointer();
        sprintf(buf, "%.f", health);

    };
    return true;
}
 

_Vine_

Активный
154
57
Получить хм можно проще.
C++:
PEDSELF->GetHealth();
SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.byteHealth;
А что бы надпись проекта не пропадала измени ID текстдрава на любой другой.
C++:
SF->getSAMP()->getInfo()->pPools->pTextdraw->Create(1234, &txd, buf);