<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://gravitywiki.ru/index.php?action=history&amp;feed=atom&amp;title=guides%2Fopencomputers%2Flua_basics</id>
	<title>guides/opencomputers/lua basics - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://gravitywiki.ru/index.php?action=history&amp;feed=atom&amp;title=guides%2Fopencomputers%2Flua_basics"/>
	<link rel="alternate" type="text/html" href="https://gravitywiki.ru/index.php?title=guides/opencomputers/lua_basics&amp;action=history"/>
	<updated>2026-04-23T16:23:02Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://gravitywiki.ru/index.php?title=guides/opencomputers/lua_basics&amp;diff=14076&amp;oldid=prev</id>
		<title>Pryn1k: Новая страница: «Lua в OpenComputers — это основной язык программирования, который используется для управления компьютерами, роботами и сетевыми системами внутри Minecraft. Он выполняется через OpenOS и взаимодействует с компонентами системы через API. Понимание базового Lua необходи...»</title>
		<link rel="alternate" type="text/html" href="https://gravitywiki.ru/index.php?title=guides/opencomputers/lua_basics&amp;diff=14076&amp;oldid=prev"/>
		<updated>2026-04-23T10:58:09Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Lua в OpenComputers — это основной язык программирования, который используется для управления компьютерами, роботами и сетевыми системами внутри Minecraft. Он выполняется через OpenOS и взаимодействует с компонентами системы через API. Понимание базового Lua необходи...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Lua в OpenComputers — это основной язык программирования, который используется для управления компьютерами, роботами и сетевыми системами внутри Minecraft. Он выполняется через OpenOS и взаимодействует с компонентами системы через API. Понимание базового Lua необходимо для любой автоматизации: от простых скриптов до сложных распределённых систем.&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
Lua — это лёгкий, интерпретируемый язык программирования, встроенный в OpenComputers как основной инструмент управления логикой. В отличие от визуальных модов автоматизации, здесь игрок пишет код, который напрямую взаимодействует с виртуальным «железом».&lt;br /&gt;
&lt;br /&gt;
В OpenComputers Lua используется для:&lt;br /&gt;
&lt;br /&gt;
управления компонентами (GPU, Redstone, Network)&lt;br /&gt;
&lt;br /&gt;
работы с файлами и OpenOS&lt;br /&gt;
&lt;br /&gt;
создания автоматизации&lt;br /&gt;
&lt;br /&gt;
обработки событий&lt;br /&gt;
&lt;br /&gt;
построения сетевых систем&lt;br /&gt;
&lt;br /&gt;
Все программы выполняются внутри операционной системы OpenOS, которая предоставляет терминал и среду выполнения Lua.&lt;br /&gt;
&lt;br /&gt;
== Как работает ==&lt;br /&gt;
Lua в OpenComputers работает как интерпретатор внутри операционной системы. Когда игрок запускает команду lua, система открывает интерактивную среду, где код выполняется построчно.&lt;br /&gt;
&lt;br /&gt;
Основные принципы:&lt;br /&gt;
&lt;br /&gt;
код выполняется последовательно сверху вниз&lt;br /&gt;
&lt;br /&gt;
переменные создаются динамически&lt;br /&gt;
&lt;br /&gt;
типизация динамическая (не нужно указывать тип)&lt;br /&gt;
&lt;br /&gt;
функции являются первоклассными объектами&lt;br /&gt;
&lt;br /&gt;
таблицы используются как основная структура данных&lt;br /&gt;
&lt;br /&gt;
Lua взаимодействует с компонентами через библиотеку component, которая предоставляет доступ к железу компьютера.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
local component = require(&amp;quot;component&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Каждое устройство (GPU, redstone, filesystem) является объектом, к которому можно обращаться через API.&lt;br /&gt;
&lt;br /&gt;
== Основные механики ==&lt;br /&gt;
Lua в OpenComputers строится на нескольких ключевых механиках.&lt;br /&gt;
&lt;br /&gt;
Переменные&lt;br /&gt;
&lt;br /&gt;
Используются для хранения данных:&lt;br /&gt;
&lt;br /&gt;
x = 10&lt;br /&gt;
&lt;br /&gt;
Типы данных&lt;br /&gt;
&lt;br /&gt;
number (числа)&lt;br /&gt;
&lt;br /&gt;
string (строки)&lt;br /&gt;
&lt;br /&gt;
boolean (true/false)&lt;br /&gt;
&lt;br /&gt;
table (таблицы)&lt;br /&gt;
&lt;br /&gt;
function (функции)&lt;br /&gt;
&lt;br /&gt;
Условные операторы&lt;br /&gt;
&lt;br /&gt;
if x &amp;gt; 5 then&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;big&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Циклы&lt;br /&gt;
&lt;br /&gt;
while true do&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;loop&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
os.sleep(1)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Функции&lt;br /&gt;
&lt;br /&gt;
function add(a, b)&lt;br /&gt;
&lt;br /&gt;
return a + b&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Таблицы&lt;br /&gt;
&lt;br /&gt;
table = {1, 2, 3}&lt;br /&gt;
&lt;br /&gt;
require()&lt;br /&gt;
&lt;br /&gt;
Используется для подключения библиотек:&lt;br /&gt;
&lt;br /&gt;
local component = require(&amp;quot;component&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
API компонентов&lt;br /&gt;
&lt;br /&gt;
Доступ к железу:&lt;br /&gt;
&lt;br /&gt;
local rs = component.redstone&lt;br /&gt;
&lt;br /&gt;
rs.setOutput(1, 15)&lt;br /&gt;
&lt;br /&gt;
События&lt;br /&gt;
&lt;br /&gt;
local event = require(&amp;quot;event&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
event.pull(&amp;quot;key_down&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Пошаговая инструкция ==&lt;br /&gt;
Запуск Lua&lt;br /&gt;
&lt;br /&gt;
После загрузки OpenOS введи:&lt;br /&gt;
&lt;br /&gt;
lua&lt;br /&gt;
&lt;br /&gt;
Первая программа&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Hello OpenComputers&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Переменные&lt;br /&gt;
&lt;br /&gt;
x = 5&lt;br /&gt;
&lt;br /&gt;
print(x)&lt;br /&gt;
&lt;br /&gt;
Условие&lt;br /&gt;
&lt;br /&gt;
if x == 5 then&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;OK&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Цикл&lt;br /&gt;
&lt;br /&gt;
for i = 1, 5 do&lt;br /&gt;
&lt;br /&gt;
print(i)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Бесконечный цикл&lt;br /&gt;
&lt;br /&gt;
while true do&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;running&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
os.sleep(1)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Подключение компонентов&lt;br /&gt;
&lt;br /&gt;
local component = require(&amp;quot;component&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Работа с редстоуном&lt;br /&gt;
&lt;br /&gt;
local rs = component.redstone&lt;br /&gt;
&lt;br /&gt;
rs.setOutput(1, 15)&lt;br /&gt;
&lt;br /&gt;
Работа с GPU&lt;br /&gt;
&lt;br /&gt;
local gpu = component.gpu&lt;br /&gt;
&lt;br /&gt;
gpu.set(1, 1, &amp;quot;Text&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Скрипт в файле&lt;br /&gt;
&lt;br /&gt;
edit test.lua&lt;br /&gt;
&lt;br /&gt;
test.lua&lt;br /&gt;
&lt;br /&gt;
== Частые ошибки ==&lt;br /&gt;
Отсутствие end&lt;br /&gt;
&lt;br /&gt;
Lua требует закрытия блоков.&lt;br /&gt;
&lt;br /&gt;
Ошибка require&lt;br /&gt;
&lt;br /&gt;
Забывают подключить component или event.&lt;br /&gt;
&lt;br /&gt;
Бесконечные циклы без sleep&lt;br /&gt;
&lt;br /&gt;
Приводят к лагам и зависанию системы.&lt;br /&gt;
&lt;br /&gt;
Неправильные типы данных&lt;br /&gt;
&lt;br /&gt;
Сравнение строки и числа вызывает ошибки.&lt;br /&gt;
&lt;br /&gt;
Ошибки индексации таблиц&lt;br /&gt;
&lt;br /&gt;
Lua использует 1-based индексацию.&lt;br /&gt;
&lt;br /&gt;
Попытка использовать несуществующий компонент&lt;br /&gt;
&lt;br /&gt;
Вызывает runtime error.&lt;br /&gt;
&lt;br /&gt;
Игнорирование event-системы&lt;br /&gt;
&lt;br /&gt;
Пишут polling вместо событий.&lt;br /&gt;
&lt;br /&gt;
== Советы для сервера GravityCraft ==&lt;br /&gt;
На серверах важно оптимизировать Lua-код:&lt;br /&gt;
&lt;br /&gt;
всегда добавляй os.sleep() в циклы&lt;br /&gt;
&lt;br /&gt;
используй event вместо постоянных проверок&lt;br /&gt;
&lt;br /&gt;
минимизируй обращения к компонентам&lt;br /&gt;
&lt;br /&gt;
разделяй большие системы на модули&lt;br /&gt;
&lt;br /&gt;
избегай бесконечных heavy loops&lt;br /&gt;
&lt;br /&gt;
следи за нагрузкой на TPS&lt;br /&gt;
&lt;br /&gt;
Плохо оптимизированный Lua-код может сильно влиять на производительность сервера.&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
Lua в OpenComputers — это основа всей логики мода. Он позволяет управлять компьютерами, автоматизировать процессы и строить сложные системы внутри Minecraft. Освоение базовых конструкций — переменных, циклов, функций и API компонентов — открывает доступ ко всей мощи OpenComputers.&lt;/div&gt;</summary>
		<author><name>Pryn1k</name></author>
	</entry>
</feed>