Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAMPCAC

Full reverse engineering of the SAMPCAC v0.10.0 server plugin for open.mp, compatible with the original client.

Build requirements

  • CMake 3.19+
  • C++20 compiler
  • Git

Building

Windows

MSVC

cmake -S . -B build -A Win32
cmake --build build --config Release

MinGW (MSYS2)

cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake --build build

MinGW (CMD/PowerShell)

cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++ -DCMAKE_BUILD_TYPE=Release
cmake --build build

Linux

Install the 32-bit toolchain if needed:

sudo apt update
sudo apt install -y build-essential cmake git gcc-multilib g++-multilib

Install the 32-bit MinGW toolchain for Windows cross-compilation if needed:

sudo apt update
sudo apt install -y cmake make git mingw-w64 g++-mingw-w64-i686 gcc-mingw-w64-i686

GCC/G++

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

MinGW (for Windows)

not working

cmake -S . -B build -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++ -DCMAKE_BUILD_TYPE=Release
cmake --build build

Pawn

Natives

native CAC_GetStatus(player_id);
native CAC_GetClientVersion(player_id, &major, &minor, &patch);
native CAC_GetServerVersion(&major, &minor, &patch);
native CAC_GetHardwareID(player_id, buffer[], size = sizeof(buffer));
native CAC_ReadMemory(player_id, address, size);
native CAC_ReadSampMemory(player_id, offset, size);
native CAC_SetGlitchStatus(glitch_id, status);
native CAC_GetGlitchStatus(glitch_id);
native CAC_PlayerSetGlitchSettings(player_id, glitch_id, status);
native CAC_SetGameOptionStatus(option_id, status);
native CAC_GetGameOptionStatus(option_id);
native CAC_PlayerSetGameOption(player_id, option_id, status);
native CAC_SetGameResourceReportStatus(model_type_flags, status);
native CAC_GetGameResourceReportStatus(model_type_flags);
native CAC_SetGameResourceReportType(type);
native CAC_GetGameResourceReportType();
native CAC_PlayerSetGameResource(player_id, model_type_flags, type);

Callbacks

forward CAC_OnCheatDetect(player_id, cheat_id, opt1, opt2);
forward CAC_OnPlayerKick(player_id, reason_id);
forward CAC_OnMemoryRead(player_id, address, size, const content[]);
forward CAC_OnSampMemoryRead(player_id, offset, size, const content[]);
forward CAC_OnGameResourceMismatch(player_id, model_id, component_type, checksum);
forward CAC_OnScreenshotTaken(player_id);
forward CAC_OnClientIntegrityFail(player_id);

About

Full reverse engineering of the SAMPCAC v0.10.0 server plugin for open.mp, compatible with the original client.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages