RU/Resource:Runcode: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{RU/Resource page}} | {{RU/Resource page}} | ||
'''runcode''' - ресурс, который позволяет динамически выполнять код Lua, | '''runcode''' - ресурс, который позволяет динамически выполнять код Lua, введенный из игровой консоли, консоли сервера или через веб-интерфейс. В принципе, эту возможность следует ограничивать для администрации сервера. | ||
== | ==Консольные команды== | ||
Для выполнения кода могут быть использованы три команды: | Для выполнения кода могут быть использованы три команды: | ||
'''/run <lua code>''': выполняет кусок серверного кода и информирует всех игроков. | '''/run <lua code>''': выполняет кусок серверного кода и информирует об этом всех игроков. | ||
'''/srun <lua code>''': выполняет кусок серверного кода тихо ( | '''/srun <lua code>''': выполняет кусок серверного кода "тихо" (выводит результат команды только для игрока, который ее ввел). | ||
'''/crun <lua code>''': выполняет кусок клиентского кода для игрока, который ввел команду. | '''/crun <lua code>''': выполняет кусок клиентского кода для игрока, который ввел команду. | ||
Пожалуйста заметьте, что чаще всего мы также хотим получить результат, который вернул нам код, и в связи с этим он автоматически возвращается для всех трех команд выше (то самое, "return " в начале кода). Если это повлечет за собой постоянное выведение сообщения с "return", будет выведена ошибка, ответственная за случаи, когда код стоит внутри структуры языка, которая не возвращает значений (напр. присвоение или цикл с for). Для таких случаев, вы можете использовать следущее: | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
loadstring(" | loadstring("ваш код в виде строки")() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Это позволит загрузить кусок вашего кода как новую функцию и выполнить ее, | Это позволит загрузить кусок вашего кода как новую функцию и выполнить ее так, чтобы возможно было вернуть результат. | ||
==Веб-интерфейс== | ==Веб-интерфейс== | ||
HTTP | Страница 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 функции.