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

po4ello

Новичок
3
0
SF - экземпляр класа SAMPFUNCS
-> разименование силки на экземпляр класа SAMPFUNCS
SF-> ето тоже самое что (*SF).
и откуда подобного рода строки брать?
не бейте сильно, но приведу пример с ахк, там есть samp udf, и в нем функции которые используются, исходя из моего понимания тут должно быть что-то такое, вопрос, что?
 
У

Удалённый пользователь 236316

Гость
и откуда подобного рода строки брать?
не бейте сильно, но приведу пример с ахк, там есть samp udf, и в нем функции которые используются, исходя из моего понимания тут должно быть что-то такое, вопрос, что?
Из SDK SF
 

Harryss

Участник
233
26
и откуда подобного рода строки брать?
не бейте сильно, но приведу пример с ахк, там есть samp udf, и в нем функции которые используются, исходя из моего понимания тут должно быть что-то такое, вопрос, что?
SFSAMP.h
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как получить FPS ?
 

Cake_

Потрачен
Проверенный
263
313
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Cake_

Потрачен
Проверенный
263
313
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как отправить синхру игрока на координаты с ног
 

Cake_

Потрачен
Проверенный
263
313
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Вложения

  • sa-mp-053.png
    sa-mp-053.png
    314.1 KB · Просмотры: 255

ALF

Известный
Проверенный
320
539
Уже нашел ппхпхпх

Как заполнить битСтрим для отправки клика диалога(id 168) по левой кнопке "Купить"

под сф сам сделаешь
C++:
void SendDialogResponse(WORD wDialogID, BYTE bButtonID, WORD wListBoxItem = 65535, char *szInputResp = "")
{
        BitStream bsSend;
        BYTE respLen = static_cast<BYTE>(strlen(szInputResp));

        bsSend.ResetWritePointer();
        bsSend.Write(wDialogID);
        bsSend.Write(bButtonID);
        bsSend.Write(wListBoxItem);
        bsSend.Write(respLen);
        bsSend.Write(szInputResp, respLen);

        SAMP->RPC(RPC_DialogResponse, &bsSend, HIGH_PRIORITY, RELIABLE_ORDERED, NULL, false);
}

// SendDialogResponse(id, 1);
 
  • Нравится
Реакции: Cake_

Stiopko

Известный
Проверенный
307
218
Где правильней удалять данные плагине при выгрузке
Тут
C++:
void CALLBACK endProc() { // это типу сффовский деструктор
    if (activatePlugin != nullptr) {
        ActivatePlugin *s = activatePlugin;
        activatePlugin = nullptr;
        delete s;
    }
    //ImGui_ImplDX9_Shutdown();
    //ImGui_ImplWin32_Shutdown();
    //ImGui::DestroyContext();
}

или тут

C++:
case DLL_PROCESS_DETACH:
        ImGui_ImplDX9_Shutdown();
        ImGui_ImplWin32_Shutdown();
        ImGui::DestroyContext();
        break;
 

Cake_

Потрачен
Проверенный
263
313
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Кто может дать функцию фейк афк?
 

ALF

Известный
Проверенный
320
539
Кто может дать функцию фейк афк?
ну можно так
C++:
BYTE orig[2];

void DisableOnFoot(BOOL status)
{
    DWORD prot = PAGE_EXECUTE_READWRITE;
    DWORD addr = reinterpret_cast<DWORD>(GetModuleHandle("samp.dll")) + 0x4D10;

    VirtualProtect(reinterpret_cast<LPVOID>(addr), 2, prot, &prot);

    if(status)
    {
        orig[0] = *reinterpret_cast<PBYTE>(addr);
        orig[1] = *reinterpret_cast<PBYTE>(addr + 1);
       
        *reinterpret_cast<PBYTE>(addr) = 0xC3;
        *reinterpret_cast<PBYTE>(addr + 1) = 0x90;
    }
    else
    {
        *reinterpret_cast<PBYTE>(addr) = orig[0];
        *reinterpret_cast<PBYTE>(addr + 1) = orig[1];
    }
   
    VirtualProtect(reinterpret_cast<LPVOID>(addr), 2, prot, nullptr);
}
но проще просто return false в ID_PLAYER_SYNC
 
  • Нравится
Реакции: Cake_ и Stiopko