ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ lua ΡΠΊΡΠΈΠΏΡΡ
Lua β Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Lua
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° lua ΡΡΠΎ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΡΠΎ. Π§ΡΠΎ, Π²ΠΎΠΎΠ±ΡΠ΅-ΡΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° lua Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΡΠ°ΠΉΠ½Π΅ ΠΏΡΠΎΡΡΠ° ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π°. ΠΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ. ΠΠΎ, ΡΠ°Π· ΡΠΆ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Lua.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΡΠ°. Π‘ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΡΠ°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ.
ΠΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π»ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ))) ΠΠ΅ΡΠ²ΡΠΉ β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΠ· Visual Studio Command Prompt:
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° Visual Studio:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΡΠ°. ΠΠΎΡΡΡΠΏ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΡΠ°. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΡΠ°. ΠΡΠΎΠ²Π΅ΡΠΊΠ°.
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, Π²ΡΡ Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ (Ρ ΡΠ΄Π΅Π»Π°Π» ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ win32). ΠΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ½ΠΊΠ»ΡΠ΄Ρ Π»ΡΠ°:
ΠΈ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΌ main():
Π Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊΠ° (Project/Properties/Linker/Input/Addition Dependencies) Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (lua.lib Π΄Π»Ρ ΡΠ΅Π»ΠΈΠ·Π° ΠΈ lua-debug.lib Π΄Π»Ρ Π΄Π΅Π±Π°Π³Π°). ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ. Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»ΠΈΠΊ Ρ Π»ΡΠ°-ΡΠΊΡΠΈΠΏΡΠΎΠΌ:
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎ, ΡΡΠΎ ΠΈ Ρ
ΠΎΡΠ΅Π»ΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΡΠ° Π² Π½Π°ΡΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
ΠΈ Π½Π΅ ΡΠ°ΡΠΊΠ°ΡΡ Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΎΡ Π½Π΅Π½Π°Π²ΠΈΡΡΠ½ΡΠΉ lua.dll β ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ ΠΏΡΠΈΡΡΠ½Π΅Π΅ )
ΠΠ° ΡΡΠΎΠΌ Π½Π°Ρ ΡΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΡΠ½. Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΄Π΅Π±Π°Π³- ΠΈ ΡΠ΅Π»ΠΈΠ·- Π²Π΅ΡΡΠΈΠΉ Π»ΡΠ°, ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠΎΠΊΠ°Ρ ΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠ°-ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² ΠΈΠ³ΡΠ°Ρ .
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΠ°ΠΉΠ΄ ΠΡΡ ΠΎ Lua ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π΅ Π΄Π»Ρ MoonLoader
ΠΠ»Ρ Π»ΡΠ³ΠΊΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Lua ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Lua Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π±Π»ΠΎΠΊΠ½ΠΎΡ Windows Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠ»ΠΎΡ ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MoonLoader Π΅ΡΡΡ Π² Atom ΠΈ Notepad++, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Visual Studio Code ΠΈ Sublime Text.
ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π ΠΌΠ΅Π½Ρ File Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Open Folder. ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ moonloader, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΈ Π² Atom, Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΊΠ°Π·Π° ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° ΡΠΎΡΠ½Π΅Π΅ Β«ΠΠ°ΠΏΠΊΠ° ΠΊΠ°ΠΊ ΠΡΠΎΠ΅ΠΊΡΒ». Π ΠΌΠ΅Π½Ρ Β«Π€Π°ΠΉΠ»Β» Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Β«ΠΡΠΊΡΡΡΡ ΠΠ°ΠΏΠΊΡ ΠΊΠ°ΠΊ ΠΡΠΎΠ΅ΠΊΡΒ» ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Β«moonloaderΒ».
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°Π΄ Π»Π΅Π½ΡΠΎΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ ΠΠΏΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ. Π ΠΌΠ΅Π½Ρ ΡΠ»Π΅Π²Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ ΠΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ°Π²ΠΈΠΌ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π° ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Windows-1251
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ² Lua ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ MoonLoader, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΎΡ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅, Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π΅ Π²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, Π·Π° ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° Π²ΠΈΠΊΠΈ.
Π‘ΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΊΠΎΠ»Π±ΡΠΊΠΈ
Π‘ΠΎΠ±ΡΡΠΈΡΠΌΠΈ, Π° ΡΠΎΡΠ½Π΅Π΅ ΠΈΡ
ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π² MoonLoader Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π² ΠΈΠ³ΡΠ΅, ΡΡΠ΅Π±ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΡ, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠΊΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π»ΠΈΠ±ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ addEventHandler. Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
Π‘ΠΊΡΠΈΠΏΡΡ Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ: onScriptTerminate Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
Π‘ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡ ΠΈ ΠΏΡΠΈ ΡΡΠΈΡ Π·Π½Π°Π½ΠΈΡΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠΎΠ΄ΡΠ»ΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° Π΄Π²Π° ΡΠΈΠΏΠ°: Lua ΠΈ DLL. Lua-ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΈΡΡΡΡΡ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, Π½Π° ΡΠ·ΡΠΊΠ΅ Lua ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Lua-ΡΠΊΡΠΈΠΏΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°Π·ΠΎΠ²ΡΠΌ Π΅Π³ΠΎ example:
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΠ°ΠΉΠ΄ ΠΡΡ ΠΎ Lua ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π΅ Π΄Π»Ρ MoonLoader
ΠΠ»Ρ Π»ΡΠ³ΠΊΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Lua ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Lua Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π±Π»ΠΎΠΊΠ½ΠΎΡ Windows Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠ»ΠΎΡ ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MoonLoader Π΅ΡΡΡ Π² Atom ΠΈ Notepad++, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Visual Studio Code ΠΈ Sublime Text.
ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π ΠΌΠ΅Π½Ρ File Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Open Folder. ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ moonloader, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΈ Π² Atom, Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΊΠ°Π·Π° ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° ΡΠΎΡΠ½Π΅Π΅ Β«ΠΠ°ΠΏΠΊΠ° ΠΊΠ°ΠΊ ΠΡΠΎΠ΅ΠΊΡΒ». Π ΠΌΠ΅Π½Ρ Β«Π€Π°ΠΉΠ»Β» Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Β«ΠΡΠΊΡΡΡΡ ΠΠ°ΠΏΠΊΡ ΠΊΠ°ΠΊ ΠΡΠΎΠ΅ΠΊΡΒ» ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Β«moonloaderΒ».
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°Π΄ Π»Π΅Π½ΡΠΎΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ ΠΠΏΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ. Π ΠΌΠ΅Π½Ρ ΡΠ»Π΅Π²Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ ΠΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ°Π²ΠΈΠΌ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π° ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Windows-1251
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ² Lua ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ MoonLoader, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΎΡ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅, Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π΅ Π²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, Π·Π° ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° Π²ΠΈΠΊΠΈ.
Π‘ΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΊΠΎΠ»Π±ΡΠΊΠΈ
Π‘ΠΎΠ±ΡΡΠΈΡΠΌΠΈ, Π° ΡΠΎΡΠ½Π΅Π΅ ΠΈΡ
ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π² MoonLoader Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π² ΠΈΠ³ΡΠ΅, ΡΡΠ΅Π±ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΡ, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠΊΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π»ΠΈΠ±ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ addEventHandler. Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
Π‘ΠΊΡΠΈΠΏΡΡ Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ: onScriptTerminate Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
Π‘ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡ ΠΈ ΠΏΡΠΈ ΡΡΠΈΡ Π·Π½Π°Π½ΠΈΡΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠΎΠ΄ΡΠ»ΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° Π΄Π²Π° ΡΠΈΠΏΠ°: Lua ΠΈ DLL. Lua-ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΈΡΡΡΡΡ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, Π½Π° ΡΠ·ΡΠΊΠ΅ Lua ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Lua-ΡΠΊΡΠΈΠΏΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°Π·ΠΎΠ²ΡΠΌ Π΅Π³ΠΎ example:
RCDetails Blog
Π ΠΊΠΎΠΏΡΠ΅ΡΠ°Ρ ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ LUA ΡΠΊΡΠΈΠΏΡΡ Π² Jumper T16
ΠΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Betaflight ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊΠ° ΠΏΡΡΠΌΠΎ Ρ ΠΏΡΠ»ΡΡΠ° Jumper T16. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ.
Π§ΡΠΎ Π·Π° Betaflight LUA ΡΠΊΡΠΈΠΏΡΡ?
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ LUA ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Betaflight ΠΏΡΡΠΌΠΎ Ρ ΠΏΡΠ»ΡΡΠ° T16, Π²ΠΊΠ»ΡΡΠ°Ρ: ΠΠΠ (PID), ΡΠ΅ΠΉΡΡ (rates), Π²ΡΠ΅ΠΌΡ ΡΠΈΠΊΠ»Π° (looptime), ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠΎΠ² ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ Ρ.Π΄. ΠΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π½ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊΠ°: ΠΊΠ°Π½Π°Π» ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ.
Π§ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ?
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΠΏΡΠ»ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° OpenTX 2.3.1 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΈ Π΄Π΅ΡΠΆΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ SYS, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Ρ PAGE ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Version. ΠΠΎΡ ΠΌΠΎΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ OpenTX Π² T16.
Π‘ΠΎΠ²Π΅Ρ: ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π° LUA ΡΠΊΡΠΈΠΏΡΡ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Β«luaΒ» ΠΈ Β«luacΒ» Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ, Π±Π΅Π· Π½Π΅Ρ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, LUA ΡΠΊΡΠΈΠΏΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ.
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ LUA ΡΠΊΡΠΈΠΏΡΡ Π² T16?
Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ», Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΠΏΠ°ΠΏΠΊΠ° Β«objΒ» ΠΈ Π² Π½Π΅ΠΉ ΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ: Β«BFΒ«, Β«SCRIPTSΒ» ΠΈ Β«SOUNDSΒ«.
ΠΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π² ΠΊΠΎΡΠ΅Π½Ρ SD ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² T16.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ Π°ΠΏΠΏΡ Π² ΡΠ΅ΠΆΠΈΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° (bootloader mode), ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ USB ΠΊΠ°Π±Π΅Π»Ρ (ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π²ΡΡΠ°ΡΠΈΡΡ ΡΠ»Π΅ΡΠΊΡ ΠΈΠ· Π°ΠΏΠΏΡ ΠΈ Π²ΠΎΡΠΊΠ½ΡΡΡ Π² ΠΊΠ°ΡΠ΄-ΡΠΈΠ΄Π΅Ρ).
ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ/ΠΏΠ°ΠΏΠΊΠΈ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠΆΠ΅ Π΅ΡΡΡ, ΡΠΎ Π²Π°Ρ ΡΠΏΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π»ΠΈ ΠΈΡ , Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ LUA ΡΠΊΡΠΈΠΏΡΡ?
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ LUA ΡΠΊΡΠΈΠΏΡ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΈ Π΄Π΅ΡΠΆΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«SYSΒ«, ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅Π½Ρ Radio Setup (Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π΄ΠΈΠΎ).
ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«PAGEΒ«, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ SD, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡ Β«BFΒ«.
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ Β«bf.luaΒ» ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π΅Π³ΠΎ (Β«ExecuteΒ«).
ΠΡΠ»ΠΈ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠ»ΠΈ ΠΈΡ Π½Π΅Ρ, ΡΠΎ Ρ Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΠ΅ΠΉ.
ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«PageΒ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΡΠ»Π΅Π΄. ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ Π΅Ρ ΠΆΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ LUA ΡΠΊΡΠΈΠΏΡΠ° Π΄Π»Ρ Betaflight ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° Ρ ΠΠΠ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈ Π΄ΡΡΠ³ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊΠ°.
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΡΠΎΠΊΡ Β«local currentPage = 1Β» ΠΈ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΈΡΠ»ΠΎ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π½Π°ΠΌ. Π‘ΡΡΠ°Π½ΠΈΡΠ° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ Π½ΠΎΠΌΠ΅Ρ 8.
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ (Β«Script syntax error: not enough memoryΒ«), ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π²Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°Π±ΡΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π³Π°Π»ΠΊΡ Β«luacΒ» ΠΏΡΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ OpenTX Π² Π°ΠΏΠΏΡ.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΠ°ΠΉΠ΄ ΠΡΡ ΠΎ Lua ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π΅ Π΄Π»Ρ MoonLoader
ΠΠ»Ρ Π»ΡΠ³ΠΊΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Lua ΡΠΊΡΠΈΠΏΡΠΎΠ² Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Lua Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π±Π»ΠΎΠΊΠ½ΠΎΡ Windows Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠ»ΠΎΡ ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MoonLoader Π΅ΡΡΡ Π² Atom ΠΈ Notepad++, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Visual Studio Code ΠΈ Sublime Text.
ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π ΠΌΠ΅Π½Ρ File Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Open Folder. ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ moonloader, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΈ Π² Atom, Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΊΠ°Π·Π° ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° ΡΠΎΡΠ½Π΅Π΅ Β«ΠΠ°ΠΏΠΊΠ° ΠΊΠ°ΠΊ ΠΡΠΎΠ΅ΠΊΡΒ». Π ΠΌΠ΅Π½Ρ Β«Π€Π°ΠΉΠ»Β» Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Β«ΠΡΠΊΡΡΡΡ ΠΠ°ΠΏΠΊΡ ΠΊΠ°ΠΊ ΠΡΠΎΠ΅ΠΊΡΒ» ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Β«moonloaderΒ».
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°Π΄ Π»Π΅Π½ΡΠΎΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ ΠΠΏΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ. Π ΠΌΠ΅Π½Ρ ΡΠ»Π΅Π²Π° Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ ΠΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ°Π²ΠΈΠΌ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π° ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Windows-1251
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ² Lua ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ MoonLoader, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΎΡ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅, Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π΅ Π²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, Π·Π° ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π° Π²ΠΈΠΊΠΈ.
Π‘ΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΊΠΎΠ»Π±ΡΠΊΠΈ
Π‘ΠΎΠ±ΡΡΠΈΡΠΌΠΈ, Π° ΡΠΎΡΠ½Π΅Π΅ ΠΈΡ
ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π² MoonLoader Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π² ΠΈΠ³ΡΠ΅, ΡΡΠ΅Π±ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΡ, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠΊΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π»ΠΈΠ±ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ addEventHandler. Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
Π‘ΠΊΡΠΈΠΏΡΡ Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΡΠΈΠΌΠ΅Ρ: onScriptTerminate Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
Π‘ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡ ΠΈ ΠΏΡΠΈ ΡΡΠΈΡ Π·Π½Π°Π½ΠΈΡΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠΎΠ΄ΡΠ»ΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° Π΄Π²Π° ΡΠΈΠΏΠ°: Lua ΠΈ DLL. Lua-ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΈΡΡΡΡΡ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, Π½Π° ΡΠ·ΡΠΊΠ΅ Lua ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Lua-ΡΠΊΡΠΈΠΏΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°Π·ΠΎΠ²ΡΠΌ Π΅Π³ΠΎ example: