Wstęp do pisania modułów: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Created page with "Moduły są rozszerzeniami rdzenia MTA Lua, które umożliwiają integrację i używanie niestandardowych funkcji Lua, które zostały napisane w C++ i skompilowane jako plik DLL lub SO. Moduły są powszechnie używane do tworzenia funkcji do takich celów, których brakuje w Multi Theft Auto, takich jak gniazda. ==Wprowadzenie== TODO")
 
No edit summary
Line 2: Line 2:


==Wprowadzenie==
==Wprowadzenie==
TODO
Żeby zacząć pisać nowe moduły trzeba mieć przynajmniej podstawową wiedzę z programowania w językach C/C++.
Zacznijmy więc od pobrania przykładowego modułu przeznaczonego do stworzenia naszego własnego.
Możemy zrobić to na 2 sposoby:
 
===Poprzez terminal===
Upewnij się, że masz zainstalowany pakiet kontroli źródła [https://git-scm.com/downloads GIT].
Otwórz wiersz poleceń (Win+R -> CMD) i wpisz tą komendę:
<p style="background-color:#141821;color:#fff;font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;padding:1%">
<span style="color:yellow">git</span> clone https://github.com/TracerDS/mtasa-modules.git
</p>
 
===Poprzez stronę WWW===
Wchodzimy na stronę [https://github.com/TracerDS/mtasa-modules przykładowego modułu] i pobieramy go (Zielony przycisk "Code" -> "Download ZIP")
Rozpakuj archiwum
 
==Jak zacząć?==
Wejdź do folderu <pre>./mtasa-modules/ml_example</pre>
 
===Windows===
Otwórz wiersz polecenia w tym folderze i uruchom skrypt <code>.\newModule.bat NazwaTwojegoModułu</code> np. <code>.\newModule.bat MojModul</code>
 
===Linux===
Otwórz terminal w tym katalogu i uruchom skrypt <code>./newModule.sh NazwaTwojegoModułu</code> np. <code>./newModule.sh MojModul</code>
 
 
Po uruchomieniu skryptu powinien utworzyć się nowy folder o nazwie "'''NazwaTwojegoModułu_module'''".
W tym folderze został również utworzony automatycznie projekt Visual Studio <span style="color:red">'''ORAZ plik README, który NALEŻY KONIECZNIE przeczytać.'''</span>
 
==Co się znajduje w tym module?==
<!--<div class="mw-collapsible">-->
<ul><h3>Struktura modułu</h3>
<li><span style="color:#177eff">'''include'''</span></li><ul>
<!----><li><span style="color:#177eff;background-color:#880000">'''init'''</span><ul>
<!------><li><span style="color:#16c80c;background-color:#880000">Common.h</span></li>
<!------><li><span style="color:#16c80c;background-color:#880000">ILuaModuleManager.h</span></li>
<!------><li><span style="color:#16c80c;background-color:#880000">lauxlib.h</span></li>
<!------><li><span style="color:#16c80c;background-color:#880000">luaconf.h</span></li>
<!------><li><span style="color:#16c80c;background-color:#880000">lua.h</span></li>
<!------><li><span style="color:#16c80c;background-color:#880000">lua.hpp</span></li>
<!------><li><span style="color:#16c80c;background-color:#880000">lualib.h</span></li>
<!----></ul></li>
<!----><li><span style="color:#16c80c">CFunctions.h</span></li>
<!----><li><span style="color:#16c80c">CLuaArgument.h</span></li>
<!----><li><span style="color:#16c80c">CLuaArguments.h</span></li>
<!----><li><span style="color:#16c80c">ml_nazwamodulu.hpp</span></li></ul>
<li><span style="color:#177eff;background-color:#880000">'''lib'''</span><ul>
<!----><li><span style="color:#16c80c;background-color:#880000">lua5.1.lib</span></li>
<!----><li><span style="color:#16c80c;background-color:#880000">lua5.1_64.lib</span></li></ul>
<li><span style="color:#177eff">'''src'''</span></li><ul>
<!----><li><span style="color:#16c80c">CFunctions.cpp</span></li>
<!----><li><span style="color:#16c80c">CLuaArgument.cpp</span></li>
<!----><li><span style="color:#16c80c">CLuaArguments.cpp</span></li>
<!----><li><span style="color:#16c80c">ml_example.cpp</span></li></ul>
<li><span style="color:#16c80c">ml_nazwamodulu.sln</span></li>
<li><span style="color:#16c80c">ml_nazwamodulu.vcxproj</span></li>
<li><span style="color:#16c80c">ml_nazwamodulu.vcxproj.filters</span></li>
<li><span style="color:#16c80c">ml_nazwamodulu.vcxproj.user</span></li>
<li><span style="color:#16c80c">README</span></li>
</ul>
<hr/>
<span style="color:#16c80c">Zieloną czcionką</span> oznaczono pliki<br/>
<span style="color:#177eff">'''Pogrubioną niebieską czcionką'''</span> oznaczono katalogi<br/>
<span style="background-color:#880000">Czerwonym tłem</span> oznaczono <span style="color:#16c80c;background-color:#880000">pliki</span> lub <span style="color:#177eff;background-color:#880000">'''foldery'''</span>, które '''nie powinny''' być modyfikowane.
 
==Do czego służy ___?==
'''P:''' Folder '''init'''?<br/>
'''O:''' Tego folderu nie ruszamy. Tam są przechowywane nagłówki potrzebne do wstępnego zainicjowania modułu.
 
'''P:''' Plik '''CFunctions.h'''?<br/>
'''O:''' Tam są przechowywane deklaracje funkcji stworzonych przez użytkownika.
W pliku '''CFunctions.cpp''' przechowywane są definicje tychże funkcji.
 
'''P:''' Folder '''lib'''?<br/>
'''O:''' Tego folderu '''absolutnie''' nie tykamy. W nim są przechowywane biblioteki potrzebne do połączenia między C++ a Lua.

Revision as of 15:09, 6 June 2022

Moduły są rozszerzeniami rdzenia MTA Lua, które umożliwiają integrację i używanie niestandardowych funkcji Lua, które zostały napisane w C++ i skompilowane jako plik DLL lub SO. Moduły są powszechnie używane do tworzenia funkcji do takich celów, których brakuje w Multi Theft Auto, takich jak gniazda.

Wprowadzenie

Żeby zacząć pisać nowe moduły trzeba mieć przynajmniej podstawową wiedzę z programowania w językach C/C++. Zacznijmy więc od pobrania przykładowego modułu przeznaczonego do stworzenia naszego własnego. Możemy zrobić to na 2 sposoby:

Poprzez terminal

Upewnij się, że masz zainstalowany pakiet kontroli źródła GIT. Otwórz wiersz poleceń (Win+R -> CMD) i wpisz tą komendę:

git clone https://github.com/TracerDS/mtasa-modules.git

Poprzez stronę WWW

Wchodzimy na stronę przykładowego modułu i pobieramy go (Zielony przycisk "Code" -> "Download ZIP") Rozpakuj archiwum

Jak zacząć?

Wejdź do folderu

./mtasa-modules/ml_example

Windows

Otwórz wiersz polecenia w tym folderze i uruchom skrypt .\newModule.bat NazwaTwojegoModułu np. .\newModule.bat MojModul

Linux

Otwórz terminal w tym katalogu i uruchom skrypt ./newModule.sh NazwaTwojegoModułu np. ./newModule.sh MojModul


Po uruchomieniu skryptu powinien utworzyć się nowy folder o nazwie "NazwaTwojegoModułu_module". W tym folderze został również utworzony automatycznie projekt Visual Studio ORAZ plik README, który NALEŻY KONIECZNIE przeczytać.

Co się znajduje w tym module?

    Struktura modułu

  • include
    • init
      • Common.h
      • ILuaModuleManager.h
      • lauxlib.h
      • luaconf.h
      • lua.h
      • lua.hpp
      • lualib.h
    • CFunctions.h
    • CLuaArgument.h
    • CLuaArguments.h
    • ml_nazwamodulu.hpp
  • lib
    • lua5.1.lib
    • lua5.1_64.lib
  • src
    • CFunctions.cpp
    • CLuaArgument.cpp
    • CLuaArguments.cpp
    • ml_example.cpp
  • ml_nazwamodulu.sln
  • ml_nazwamodulu.vcxproj
  • ml_nazwamodulu.vcxproj.filters
  • ml_nazwamodulu.vcxproj.user
  • README

Zieloną czcionką oznaczono pliki
Pogrubioną niebieską czcionką oznaczono katalogi
Czerwonym tłem oznaczono pliki lub foldery, które nie powinny być modyfikowane.

Do czego służy ___?

P: Folder init?
O: Tego folderu nie ruszamy. Tam są przechowywane nagłówki potrzebne do wstępnego zainicjowania modułu.

P: Plik CFunctions.h?
O: Tam są przechowywane deklaracje funkcji stworzonych przez użytkownika. W pliku CFunctions.cpp przechowywane są definicje tychże funkcji.

P: Folder lib?
O: Tego folderu absolutnie nie tykamy. W nim są przechowywane biblioteki potrzebne do połączenia między C++ a Lua.