Modules Introduction: Difference between revisions
m (Fixed a typo) |
m (Updated tutorial) |
||
Line 31: | Line 31: | ||
==Template's content== | ==Template's content== | ||
===The structure of the template module=== | |||
*<span style="color:#177eff">'''hpp'''</span> | |||
< | **<span style="color:#16c80c">config.hpp</span> | ||
< | **<span style="color:#16c80c">functions.hpp</span> | ||
**<span style="color:#16c80c;background-color:#880000">main.hpp</span> | |||
*<span style="color:#177eff;background-color:#880000">'''include'''</span> | |||
**<span style="color:#177eff;background-color:#880000">'''lua'''</span> | |||
***<span style="color:#16c80c;background-color:#880000">lauxlib.h</span> | |||
***<span style="color:#16c80c;background-color:#880000">lua.h</span> | |||
***<span style="color:#16c80c;background-color:#880000">lua.hpp</span> | |||
***<span style="color:#16c80c;background-color:#880000">luaconf.h</span> | |||
***<span style="color:#16c80c;background-color:#880000">lualib.h</span> | |||
**<span style="color:#177eff;background-color:#880000">'''mta'''</span> | |||
***<span style="color:#16c80c;background-color:#880000">CLuaArgument.hpp</span> | |||
***<span style="color:#16c80c;background-color:#880000">CLuaArguments.hpp</span> | |||
***<span style="color:#16c80c;background-color:#880000">ILuaModuleManager.hpp</span> | |||
***<span style="color:#16c80c;background-color:#880000">init.hpp</span> | |||
***<span style="color:#16c80c;background-color:#880000">mta_main.hpp</span> | |||
*<span style="color:#177eff;background-color:#880000">'''lib'''</span> | |||
< | **<span style="color:#16c80c;background-color:#880000">'''lua5.1.lib'''</span> | ||
**<span style="color:#16c80c;background-color:#880000">'''lua5.1_64.lib'''</span> | |||
*<span style="color:#177eff">'''src'''</span> | |||
**<span style="color:#177eff;background-color:#880000">'''mta'''</span> | |||
***<span style="color:#16c80c;background-color:#880000">CLuaArgument.cpp</span> | |||
***<span style="color:#16c80c;background-color:#880000">CLuaArguments.cpp</span> | |||
***<span style="color:#16c80c;background-color:#880000">mta_main.cpp</span> | |||
**<span style="color:#16c80c">functions.cpp</span> | |||
**<span style="color:#16c80c">main.cpp</span> | |||
*<span style="color:#16c80c">ml_basic.sln</span> | |||
*<span style="color:#16c80c">ml_basic.vcxproj</span> | |||
*<span style="color:#16c80c">ml_basic.vcxproj.filters</span> | |||
*<span style="color:#16c80c">ml_basic.vcxproj.user</span> | |||
<hr/> | <hr/> | ||
Files are marked in <span style="color:#16c80c">green font</span><br/> | Files are marked in <span style="color:#16c80c">green font</span><br/> | ||
Folders are marked in <span style="color:#177eff">'''bolded blue font'''</span><br/> | Folders are marked in <span style="color:#177eff">'''bolded blue font'''</span><br/> | ||
<span style="color:#16c80c;background-color:#880000">Files</span> and <span style="color:#177eff;background-color:#880000">'''folders'''</span> that '''should not''' be modified are marked in <span style="background-color:#880000">red</span> | <span style="color:#16c80c;background-color:#880000">Files</span> and <span style="color:#177eff;background-color:#880000">'''folders'''</span> | ||
that '''should not''' be modified are marked in <span style="background-color:#880000">red</span> | |||
<!-- | <!-- |
Revision as of 17:04, 23 May 2023
Modules are extensions for Multi Theft Auto's Lua core, allowing the integration and use of custom Lua functions that have been written in C++, and compiled as a DLL or SO file. Modules are commonly used to create functions for such purposes that Multi Theft Auto lacks, such as sockets.
Getting started
To start writing new modules, you need to have at least basic knowledge of programming in C/C++.
This tutorial does not teach you how to get started with C++.
Let's start by downloading a template to create our own module.
We can do it in 2 ways:
From terminal
Make sure you have the GIT source control package installed. Open the command prompt (Win + R -> CMD) and enter this command:
git clone https://github.com/TracerDS/mtasa-modules.git
From website
Go to the website of the sample module and download it (Green button "Code" -> "Download ZIP") then unpack the archive
How do I start?
Go to the
./mtasa-modules/ml_example
folder
Windows
Open CMD in that folder and then run the newModule.bat script in this form: .\newModule.bat moduleName
e.g. .\newModule.bat myModule
Linux
Open terminal in that folder and then run the newModule.sh script in this form: ./newModule.sh moduleName
e.g. ./newModule.sh myModule
After running the script, a new folder should be created called myModule_module.
A Visual Studio project and a README file that you MUST read will be created in the current folder.
Template's content
The structure of the template module
- hpp
- config.hpp
- functions.hpp
- main.hpp
- include
- lua
- lauxlib.h
- lua.h
- lua.hpp
- luaconf.h
- lualib.h
- mta
- CLuaArgument.hpp
- CLuaArguments.hpp
- ILuaModuleManager.hpp
- init.hpp
- mta_main.hpp
- lua
- lib
- lua5.1.lib
- lua5.1_64.lib
- src
- mta
- CLuaArgument.cpp
- CLuaArguments.cpp
- mta_main.cpp
- functions.cpp
- main.cpp
- mta
- ml_basic.sln
- ml_basic.vcxproj
- ml_basic.vcxproj.filters
- ml_basic.vcxproj.user
Files are marked in green font
Folders are marked in bolded blue font
Files and folders
that should not be modified are marked in red