Toliak / mtasa-module-sdk

C++ Module SDK for MTA:SA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status pipeline status Code size GitHub Repo size

MTASA Module SDK

Extended OOP functionality for interaction between Lua and C++

Guide

Get and push arguments (arguments are lua-objects)

lua_State *luaVm;                     // original lua vm pointer

LuaVmExtended lua{LuaVmExtended};     // create lua extended wrapper

std::vector<LuaArgument> args =
                         lua.getArguments();  // get all passed arguments

std::vector<LuaArguments> returnArgs{
    {-1},
    {"Error"},
};                                         // create argument vector

int amount = 
    lua.pushArguments(returnArgs.cbegin(), 
                      returnArgs.cend());  // accepts any iterators

// amount contains number of pushed arguments

Call function

std::vector<LuaArgument> returnArgs = lua.call(
    "functionName",         // Function name
    {{"arg1"}, {"arg2"}},   // Pass args
    3                       // Return args amount
);

Tests

Tests require docker-compose

./compose-test.sh

About

C++ Module SDK for MTA:SA


Languages

Language:C++ 59.0%Language:C 30.3%Language:Lua 6.7%Language:CMake 2.1%Language:Shell 1.5%Language:Dockerfile 0.5%