RU/Resource:Runcode: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(new page)
 
m (replaced http links with https)
 
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:RU/Resource]]
{{RU/Resource page}}
'''runcode''' is a resource that allows dynamic execution of Lua code input from the in-game console, server console or the web interface. This should, in principle, be restricted to server admins.
'''runcode''' - ресурс, который позволяет динамически выполнять код Lua, введенный из игровой консоли, консоли сервера или через веб-интерфейс. В принципе, эту возможность следует ограничивать для администрации сервера.


==Console commands==
==Консольные команды==
There are three runcode commands that can be used:
Для выполнения кода могут быть использованы три команды:


'''/run <lua code>''': executes a chunk of server-side code and notifies all players.
'''/run <lua code>''': выполняет кусок серверного кода и информирует об этом всех игроков.


'''/srun <lua code>''': executes a chunk of server-side code silently (only outputs the command's results to the player who input it).
'''/srun <lua code>''': выполняет кусок серверного кода "тихо" (выводит результат команды только для игрока, который ее ввел).


'''/crun <lua code>''': executes a chunk of client-side code for the player who input the command.
'''/crun <lua code>''': выполняет кусок клиентского кода для игрока, который ввел команду.


Please note that, more often that not, we want to get the value returned by our code, and due to this, the value of the input expression is automatically returned by runcode for all of these commands (this is, "return " is appended to the beginning of the code). While this saves constant typing of the "return" expression, it will produce an error when the code consists in a language construct that does not yield a value (e.g an assignment or a for statement). For these cases, you can input the following statement:
Пожалуйста заметьте, что чаще всего мы также хотим получить результат, который вернул нам код, и в связи с этим он автоматически возвращается для всех трех команд выше (то самое, "return " в начале кода). Если это повлечет за собой постоянное выведение сообщения с "return", будет выведена ошибка, ответственная за случаи, когда код стоит внутри структуры языка, которая не возвращает значений (напр. присвоение или цикл с for). Для таких случаев, вы можете использовать следущее:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
loadstring("your code here as a string")()
loadstring("ваш код в виде строки")()
</syntaxhighlight>
</syntaxhighlight>


This will load your code chunk as a new function and calls it, so returning its value is possible.
Это позволит загрузить кусок вашего кода как новую функцию и выполнить ее так, чтобы возможно было вернуть результат.


==Web interface==
==Веб-интерфейс==
A http interface page is also provided where admins can run server side snippets in a more convenient way. It uses [http://codepress.org CodePress] for syntax highlighting, including all available Lua and MTA functions.
Страница HTTP интерфейса также дает возможность админам запускать куски кода серверно, что более удобно. Она использует [https://codepress.org CodePress] для подсветки синтаксиса, включая все используемые Lua и MTA функции.
 
[[en:Resource:Runcode]]

Latest revision as of 00:47, 3 January 2022

runcode - ресурс, который позволяет динамически выполнять код Lua, введенный из игровой консоли, консоли сервера или через веб-интерфейс. В принципе, эту возможность следует ограничивать для администрации сервера.

Консольные команды

Для выполнения кода могут быть использованы три команды:

/run <lua code>: выполняет кусок серверного кода и информирует об этом всех игроков.

/srun <lua code>: выполняет кусок серверного кода "тихо" (выводит результат команды только для игрока, который ее ввел).

/crun <lua code>: выполняет кусок клиентского кода для игрока, который ввел команду.

Пожалуйста заметьте, что чаще всего мы также хотим получить результат, который вернул нам код, и в связи с этим он автоматически возвращается для всех трех команд выше (то самое, "return " в начале кода). Если это повлечет за собой постоянное выведение сообщения с "return", будет выведена ошибка, ответственная за случаи, когда код стоит внутри структуры языка, которая не возвращает значений (напр. присвоение или цикл с for). Для таких случаев, вы можете использовать следущее:

loadstring("ваш код в виде строки")()

Это позволит загрузить кусок вашего кода как новую функцию и выполнить ее так, чтобы возможно было вернуть результат.

Веб-интерфейс

Страница HTTP интерфейса также дает возможность админам запускать куски кода серверно, что более удобно. Она использует CodePress для подсветки синтаксиса, включая все используемые Lua и MTA функции.