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

RakNet

Режим чтения
25
13
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:

RakNet

Режим чтения
25
13
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ПРИМЕР:

Добавить:

в menu.cpp
в Vehicle menu
TwAddVarCB(vehiclemenu, "visible", TwType::TW_TYPE_BOOLCPP, callbackSetVehVisible, callbackGetVehVisible, nullptr, "label='Visible'");

в menu.h
в private:
// callbacks
static void TW_CALL callbackSetVehVisible(const void* value, void*);
static void TW_CALL callbackGetVehVisible(void* value, void*);

в menu_callbacks.cpp
void TW_CALL Menu::callbackSetVehVisible(const void* value, void*)
{
if (!PEDSELF) return;
CVehicle *veh = PEDSELF->GetVehicle();
if (!veh) return;
veh->SetVisible(*(bool*)value);
}

void TW_CALL Menu::callbackGetVehVisible(void* value, void*)
{
if (!PEDSELF) return;
CVehicle *veh = PEDSELF->GetVehicle();
if (!veh) return;
*(bool*)value = veh->IsVisible();
}
 

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,262
1,752
Чет не компилит даже)
C++:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

bool CALLBACK cbug(stRakNetHookParams *params) {
    if (params->packetId == PacketEnumeration::ID_BULLET_SYNC) {
        float x = PEDSELF->GetPosition()->fX;
        float y = PEDSELF->GetPosition()->fY;
        float z = PEDSELF->GetPosition()->fZ;
        Sleep(50);
        PEDSELF->Teleport(x, y, z);
    }
    return;
}



void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_OUTCOMING_PACKET, cbug);
        init = true;
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}
1. У тебя функция калбека булевая - bool CALLBACK cbug(stRakNetHookParams *params), а это значит, что она должна вернуть либо true, либо false, а не просто return, в данном случае должна вернуть return true;
2. Не используй Sleep(50), это тебе не wait 50 как в клео
 
  • Нравится
Реакции: Tray228 и _Viktor_

RakNet

Режим чтения
25
13
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Чет не компилит даже)
C++:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

bool CALLBACK cbug(stRakNetHookParams *params) {
    if (params->packetId == PacketEnumeration::ID_BULLET_SYNC) {
        float x = PEDSELF->GetPosition()->fX;
        float y = PEDSELF->GetPosition()->fY;
        float z = PEDSELF->GetPosition()->fZ;
        Sleep(50);
        PEDSELF->Teleport(x, y, z);
    }
    return;
}



void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_OUTCOMING_PACKET, cbug);
        init = true;
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}


PEDSELF->Teleport(x, y, z);
}
return 0;
}
 
Последнее редактирование:
  • Нравится
Реакции: _Viktor_

Sire Like

Blanche Bier
Друг
487
233
Чет не компилит даже)
C++:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();

bool CALLBACK cbug(stRakNetHookParams *params) {
    if (params->packetId == PacketEnumeration::ID_BULLET_SYNC) {
        float x = PEDSELF->GetPosition()->fX;
        float y = PEDSELF->GetPosition()->fY;
        float z = PEDSELF->GetPosition()->fZ;
        Sleep(50);
        PEDSELF->Teleport(x, y, z);
    }
    return;
}



void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_OUTCOMING_PACKET, cbug);
        init = true;
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}


Потому что
Код:
return
твой нихуя не возвращает. TRUE или FALSE
 
  • Нравится
Реакции: _Viktor_

0pc0d3R

Потрачен
550
270
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
#pragma comment (lib, "user32.lib")
C++:
 uint Att; // хэндл таймера
Att = SetTimer(NULL, 0, 1000, (TIMERPROC)&Vax);

void __stdcall Vax(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) // не забывай делать соглашенный вызов потому что сет таймер из вин апи, а этот метод Vax будет коллбэком.
{
             KillTimer(NULL, A);
}
 
Последнее редактирование: