RU/Resource:Runcode: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{RU/Resource page}}
{{RU/Resource page}}
'''runcode''' - ресурс, который позволяет динамически выполнять код Lua, введенны из игровой консоли, серверной консоли или через веб-интерфейс. Эту возможность следует ограничить для серверных админов.
'''runcode''' - ресурс, который позволяет динамически выполнять код Lua, введенный из игровой консоли, консоли сервера или через веб-интерфейс. В принципе, эту возможность следует ограничивать для администрации сервера.


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


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


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


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


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


==Веб-интерфейс==
==Веб-интерфейс==
HTTP интерфейс также дает возможность админам запускать куски кода серверно, что более удобно. Он использует [http://codepress.org CodePress] для подсветки синтаксиса, включая все используемые Lua и MTA функции.
Страница HTTP интерфейса также дает возможность админам запускать куски кода серверно, что более удобно. Она использует [http://codepress.org CodePress] для подсветки синтаксиса, включая все используемые Lua и MTA функции.


[[en:Resource:Runcode]]
[[en:Resource:Runcode]]

Revision as of 11:02, 18 May 2012

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

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

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

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

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

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

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

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

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

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

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