<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x41F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B;: Lua</title><link>https://opencomputers.ru/forum/93-lua/</link><description>&#x41F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x44B;: Lua</description><language>ru</language><item><title>&#x41A;&#x430;&#x43A; &#x43A;&#x43E;&#x434;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x447;&#x438;&#x441;&#x43B;&#x430; &#x441;&#x438;&#x43C;&#x432;&#x43E;&#x43B;&#x430;&#x43C;&#x438; &#x42E;&#x43D;&#x438;&#x43A;&#x43E;&#x434;&#x430;?</title><link>https://opencomputers.ru/topic/7426-kak-kodirovat-chisla-simvolami-yunikoda/</link><description><![CDATA[<p>
	Предположим у нас есть цифра 128. Мы попускаем её через unicode.char и получаем символ. Этот символ мы пропускаем через string.byte и вот не задача, начиная с 127 уникодовского символа оно выдаёт 194. Если мы попустим 130 а не 128, мы получим 194.<br>
	Как сделать так что-бы цифры сохранялись без огромных циклов в символ и обратно?
</p>

]]></description><guid isPermaLink="false">7426</guid><pubDate>Sat, 15 Jul 2023 15:50:41 +0000</pubDate></item><item><title>&#x43F;&#x43E;&#x447;&#x435;&#x43C;&#x443; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B; &#x441; &#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x43E;&#x439; &#x43A;&#x43B;&#x44E;&#x447; - &#x437;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x435; &#x440;&#x430;&#x43D;&#x434;&#x43E;&#x43C;&#x43D;&#x44B;?</title><link>https://opencomputers.ru/topic/7339-pochemu-tablitsy-s-strukturoy-klyuch-znachenie-randomny/</link><description><![CDATA[<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Скрытый текст</span>
	</div>

	<div class="ipsSpoiler_contents">
		<pre class="ipsCode prettyprint lang-lua prettyprinted">

<span class="kwd">local</span><span class="pln"> a </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    a </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pun">,</span><span class="pln">
        y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">56</span><span class="pun">,</span><span class="pln">
    </span><span class="pun">},</span><span class="pln">
    b </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">562</span><span class="pun">,</span><span class="pln">
        y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">56</span><span class="pun">,</span><span class="pln">
    </span><span class="pun">},</span><span class="pln">
    c </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pun">,</span><span class="pln">
        y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">456</span><span class="pun">,</span><span class="pln">
    </span><span class="pun">},</span><span class="pln">
    d </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">542</span><span class="pun">,</span><span class="pln">
        y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">546</span><span class="pun">,</span><span class="pln">
    </span><span class="pun">},</span><span class="pln">
    e </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1564</span><span class="pun">,</span><span class="pln">
        y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">546</span><span class="pun">,</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">for</span><span class="pln"> key</span><span class="pun">,</span><span class="pln"> value </span><span class="kwd">in</span><span class="pln"> pairs</span><span class="pun">(</span><span class="pln">a</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
    print</span><span class="pun">(</span><span class="pln">key</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span></pre>

		<p>
			 
		</p>
	</div>
</div>

<p>
	к примеру вот такой код
</p>

<p>
	 
</p>

<p>
	по моей логие оно должно вывести: a b c d e, а выводит: <img alt="1102125445_.png.f6e978f812c2883253f3968f5df6467f.png" class="ipsImage ipsImage_thumbnailed" data-fileid="2703" data-ratio="24.31" width="469" src="https://opencomputers.ru/uploads/monthly_2023_06/1102125445_.png.f6e978f812c2883253f3968f5df6467f.png">
</p>

<p>
	почему это так и как лучше это пофиксить что бы оно всё выводило по очереди как в таблице?
</p>

]]></description><guid isPermaLink="false">7339</guid><pubDate>Mon, 12 Jun 2023 20:46:44 +0000</pubDate></item><item><title>&#x41A;&#x43E;&#x43F;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x442;&#x430;&#x431;&#x43B;&#x438;&#x446;&#x44B;</title><link>https://opencomputers.ru/topic/7087-kopirovanie-tablitsy/</link><description><![CDATA[<p>
	MineOS но вопрос по луа. Есть 2 таблицы: game.screen и game.screen.buffer. В процессе отрисовки нужно что-бы все параметр из game.screen перекатились в game.screen.buffer. Они это делают но вот загвоздка: мне не всралось что-бы когда в game.screen менялось значение, оно менялось и в game.screen.buffer.
</p>

<p>
	Мега ультра код:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Скрытый текст</span>
	</div>

	<div class="ipsSpoiler_contents">
		<pre class="ipsCode prettyprint lang-html prettyprinted">

<span class="pln">for i = 1, #game.screen do
	if game.screen.buffer[i] == nil then
		print('nil !')
		game.screen.buffer[i] = {visible = false}
	end
	print(game.screen.buffer[i].text, game.screen[i].text)

...

print('Copy buffer')
game.screen.buffer = {}
for i = 1,#game.screen do
	table.insert(game.screen.buffer, game.screen[i]) -- Пробовал (изначально было) game.screen.buffer[i] = game.screen[i], результат тотже
	print(game.screen.buffer[i].text)
end</span></pre>

		<p>
			 
		</p>
	</div>
</div>

<p>
	В том то и смысл что если в скрине менялось значение, а в буфере нет, то означает что объект изменили и мы смотрим что изменили, после чего изменяем на значение скрина, а в конце копируем скрин в буфер потому-что значение то изменилось дабы если снова изменилось и так по кругу.
</p>

<p>
	Весь код:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Скрытый текст</span>
	</div>

	<div class="ipsSpoiler_contents">
		<pre class="ipsCode prettyprint lang-html prettyprinted">

<span class="pln">		for i = 1, #game.screen do
					if game.screen.buffer[i] == nil then
							print('nil !')
							game.screen.buffer[i] = {visible = false}
					end
					if game.screen[i].type == 'text' then
							print('text')
							if game.screen[i].visible ~= game.screen.buffer[i].visible then
									print('Visible')
									if game.screen[i] and not game.screen.buffer[i].visible then 
											local tmp = screen:addChild(GUI.text(game.screen[i].x,game.screen[i].y,game.screen[i].color,game.screen[i].text))
											game.screen[i].raw = tmp
									else
											game.screen[i].raw:remove()
									end
							end
							if game.screen[i].x ~= game.screen.buffer[i].x then
									game.screen[i].raw.localX = game.screen[i].x
									print('x')
							end
							if game.screen[i].y ~= game.screen.buffer[i].y then
									game.screen[i].raw.localY = game.screen[i].y
									print('y')
							end
							if game.screen[i].text ~= game.screen.buffer[i].text then
									game.screen[i].raw.text= game.screen[i].text
									print('text')
							end
							if game.screen[i].color ~= game.screen.buffer[i].color then
									game.screen[i].raw.color = game.screen[i].color
									print('color')
							end
					end
		end
		print('Copy buffer')
		game.screen.buffer = {}
		for i = 1,#game.screen do -- Поэелементно и в лоб шо-бы у нас не дюпались буфера (game.screen.buffer = game.screen &lt;-- Содержить буфер), которые там и не будем использовать. (Внутри буффера)
			print(game.screen.buffer[i].text)
			table.insert(game.screen.buffer, game.screen[i]) -- Было еще и game.screen.buffer[i] = game.screen[i]
			print(game.screen.buffer[i].text)
		end</span></pre>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

]]></description><guid isPermaLink="false">7087</guid><pubDate>Sat, 01 Apr 2023 15:20:28 +0000</pubDate></item><item><title>Chatbox &#x438; &#x441;&#x447;&#x438;&#x442;&#x44B;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43A;&#x43E;&#x43C;&#x430;&#x43D;&#x434; &#x434;&#x43B;&#x44F; &#x43D;&#x435;&#x433;&#x43E;</title><link>https://opencomputers.ru/topic/2111-chatbox-i-schityvanie-komand-dlya-nego/</link><description><![CDATA[<p>В общем есть чат бокс из Computronics</p>
<p>И надо сделать добавление юзера в вайт-лист командой из чата</p>
<p>допустим $$adduser НИК</p>
<p>Как считать ник?</p>
<p> </p>
<p>Допустим отправляем в чат $$adduser Koteyk0o и получаем сообщение "$$adduser Koteyk0o"</p>
<p>Как из этого сообщения считать ник?</p>

]]></description><guid isPermaLink="false">2111</guid><pubDate>Fri, 18 Aug 2017 18:20:32 +0000</pubDate></item><item><title>&#x420;&#x43E;&#x431;&#x43E;&#x442; &#x438; &#x441;&#x443;&#x43D;&#x434;&#x443;&#x43A;</title><link>https://opencomputers.ru/topic/6700-robot-i-sunduk/</link><description><![CDATA[<p>
	Как можно заставить робота выкладывать в сундук спереди определённый лут?<br>
	Допустим у робота в первом слоте алмаз, во втором слоте редстон, а в третьем слоте лежил изумруд
</p>

<p>
	мне нужно выложить из робота алмаз<br>
	Как без использования select(номер слота) дать возможность роботу выкладывать алмаз в определённый слот сундука?
</p>

]]></description><guid isPermaLink="false">6700</guid><pubDate>Tue, 13 Dec 2022 11:16:48 +0000</pubDate></item><item><title>&#x441;&#x431;&#x43E;&#x440;&#x43A;&#x430; &#x43C;&#x443;&#x441;&#x43E;&#x440;&#x430; &#x441;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x434;&#x43E;&#x43B;&#x433;&#x430;&#x44F; &#x438; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x43C;&#x430; &#x432;&#x44B;&#x43B;&#x435;&#x442;&#x430;&#x435;&#x442; &#x441; too long without yielding</title><link>https://opencomputers.ru/topic/5922-sborka-musora-slishkom-dolgaya-i-programma-vyletaet-s-too-long-without-yielding/</link><description><![CDATA[<ol>
	<li>
		что создает мусор в lua?
	</li>
	<li>
		как исправить столь долгую сборку мусора?
	</li>
	<li>
		какие операции с памятью не создают мусор?
	</li>
</ol>

]]></description><guid isPermaLink="false">5922</guid><pubDate>Sun, 24 Jul 2022 18:15:16 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x440;&#x430;&#x437;&#x431;&#x438;&#x442;&#x44C; &#x441;&#x43B;&#x43E;&#x432;&#x43E; &#x43F;&#x43E;&#x431;&#x443;&#x43A;&#x432;&#x435;&#x43D;&#x43D;&#x43E;?</title><link>https://opencomputers.ru/topic/5927-kak-razbit-slovo-pobukvenno/</link><description><![CDATA[<p>
	допустим есть слово World мне нужно разбить слово побуквенно и поместить в таблицу
</p>

<p>
	тип было так
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="pln">a </span><span class="pun">=</span><span class="pln"> </span><span class="str">"World"</span></pre>

<p>
	а стало так
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">a = {W, o, r, l, d}</span></pre>

<p>
	 
</p>

]]></description><guid isPermaLink="false">5927</guid><pubDate>Mon, 25 Jul 2022 13:49:07 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x430;&#x441;&#x438;&#x43D;&#x445;&#x440;&#x43E;&#x43D;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x441;&#x432;&#x44F;&#x437;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43A;&#x430;&#x440;&#x442;&#x435; OpenComputers?</title><link>https://opencomputers.ru/topic/5718-kak-asinhronno-proveryat-soobschenie-na-svyazannoy-karte-opencomputers/</link><description><![CDATA[<p>
	У меня есть следующий код:
</p>

<p>
	 
</p>

<p>
	<strong>local component = require('component') </strong>
</p>

<p>
	<strong>local tunn = component.tunnel</strong>
</p>

<p>
	<strong>local event = require('event') </strong>
</p>

<p>
	<strong>local robot = require('robot') </strong>
</p>

<p>
	 
</p>

<p>
	<strong>function getMsg()</strong>
</p>

<p>
	<strong>  return event.pull("modem_message")</strong>
</p>

<p>
	 
</p>

<p>
	<strong>while true do</strong>
</p>

<p>
	<strong>  print(getMsg())</strong>
</p>

<p>
	<strong>  robot.forward()</strong>
</p>

<p>
	 
</p>

<p>
	Мне нужно сделать так, чтобы в главном цикле получались сообщения из связанной карты, а затем выполняющий робот шел дальше. 
</p>

<p>
	Но на деле происходит так: робот ждет сообщения, тупо стоя на одном месте. Он идет дальше только тогда, когда я отправляю сообщение.
</p>

<p>
	Мне надо чтобы бот одновременно и шел и получал сообщения, не стопарясь, но при этом не запускалась куча процессов получения сообщения. Как такое реализовать? 
</p>

]]></description><guid isPermaLink="false">5718</guid><pubDate>Mon, 30 May 2022 12:55:36 +0000</pubDate></item><item><title>LUA &#x41B;&#x44F;&#x43C;&#x431;&#x434;&#x430;-&#x438;&#x441;&#x447;&#x438;&#x441;&#x43B;&#x435;&#x43D;&#x438;&#x435;</title><link>https://opencomputers.ru/topic/5427-lua-lyambda-ischislenie/</link><description><![CDATA[<p>
	Я пишу свой интерпретатор на Lua для роботов. Мне потребовалось использовать лямбда-вычисления.
</p>

<p>
	 
</p>

<p>
	Задача - написать функцию <strong>L</strong><span style="background-color:#fafafa;color:#111111;font-size:13px;text-align:left;">, где <strong>L(f, n)</strong> выдавало бы функцию <strong>Ln(a1)(a2)(...)(an)</strong> которая при выполнении выдает <strong>f(a1, a2, ..., an).</strong></span>
</p>

<p>
	 
</p>

<p>
	<a contenteditable="false" data-ipshover="" data-ipshover-target="https://opencomputers.ru/profile/23675-programcrafter/?do=hovercard" data-mentionid="23675" href="https://opencomputers.ru/profile/23675-programcrafter/" rel="">@ProgramCrafter</a> подсказал написать так:
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="kwd">local</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> L</span><span class="pun">(</span><span class="pln">f</span><span class="pun">,</span><span class="pln">n</span><span class="pun">)</span><span class="pln">
  </span><span class="kwd">if</span><span class="pln"> n</span><span class="pun">&lt;=</span><span class="lit">1</span><span class="pln"> </span><span class="kwd">then</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> f
  </span><span class="kwd">else</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">(</span><span class="pln">a</span><span class="pun">)</span><span class="pln">
      </span><span class="kwd">return</span><span class="pln"> L</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">(...)</span><span class="pln">
        </span><span class="kwd">return</span><span class="pln"> f</span><span class="pun">(</span><span class="pln">a</span><span class="pun">,...)</span><span class="pln">
      </span><span class="kwd">end</span><span class="pun">,</span><span class="pln"> n</span><span class="lit">-1</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">
</span><span class="kwd">end</span></pre>

<p>
	Такая функция работает при значениях <strong>n&gt;=1</strong>, но не работает с <strong>n=0</strong>
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="pln">f </span><span class="pun">=</span><span class="pln"> L</span><span class="pun">(</span><span class="pln">print</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">)</span><span class="pln">
f</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)(</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="com">-- печатает: 1 2</span><span class="pln">

f </span><span class="pun">=</span><span class="pln"> L</span><span class="pun">(</span><span class="pln">print</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln">
f</span><span class="pun">()</span><span class="pln"> </span><span class="com">-- выдает функцию print</span></pre>

<p>
	<strong><span style="font-size:16px;">Вопрос:</span></strong>
</p>

<p>
	Нужна функция <strong>L</strong>, которая принимает в параметр функцию <strong>f </strong>и дополнительно <strong>n </strong>аргументов - стандартных значений, которые так же будут показывать количество аргументов.
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="kwd">local</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> L</span><span class="pun">(</span><span class="pln">f</span><span class="pun">,</span><span class="pln"> </span><span class="pun">...)</span><span class="pln">
  </span><span class="com">-- ???</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="com">-- Функция для примера - просто выводит три своих параметра</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> abc</span><span class="pun">(</span><span class="pln">a</span><span class="pun">,</span><span class="pln"> b</span><span class="pun">,</span><span class="pln"> c</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> 
        </span><span class="str">'"a:'</span><span class="pun">..</span><span class="pln">tostring</span><span class="pun">(</span><span class="pln">a</span><span class="pun">)..</span><span class="pln">
        </span><span class="str">' b:'</span><span class="pun">..</span><span class="pln">tostring</span><span class="pun">(</span><span class="pln">b</span><span class="pun">)..</span><span class="pln">
        </span><span class="str">' c:'</span><span class="pun">..</span><span class="pln">tostring</span><span class="pun">(</span><span class="pln">c</span><span class="pun">)..</span><span class="str">'"'</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">local</span><span class="pln"> f </span><span class="pun">=</span><span class="pln"> L</span><span class="pun">(</span><span class="pln">abc</span><span class="pun">,</span><span class="pln"> </span><span class="str">'a'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'b'</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">nil</span><span class="pun">)</span><span class="pln"> </span><span class="com">-- Создаем λ-функцию с тремя значениями по умолчанию</span><span class="pln">

</span><span class="com">-- Должно выводить:</span><span class="pln">
print</span><span class="pun">(</span><span class="pln"> f</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)(</span><span class="lit">2</span><span class="pun">)(</span><span class="lit">3</span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="com">-- "a:1 b:2 c:3"</span><span class="pln">
print</span><span class="pun">(</span><span class="pln"> f</span><span class="pun">()()()</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="com">-- "a:a b:b c:nil"</span><span class="pln">
print</span><span class="pun">(</span><span class="pln"> f</span><span class="pun">(</span><span class="kwd">nil</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">)()</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="com">-- "a:a b:2 c:nil"</span></pre>

<p>
	 
</p>

]]></description><guid isPermaLink="false">5427</guid><pubDate>Sat, 05 Mar 2022 09:59:38 +0000</pubDate></item><item><title>&#x421;&#x43B;&#x43E;&#x436;&#x43D;&#x430;&#x44F; &#x422;&#x435;&#x43C;&#x430;</title><link>https://opencomputers.ru/topic/5336-slozhnaya-tema/</link><description><![CDATA[<p>
	Есть такая функция getStoreLSC которая получает информацию о энергии, можно ли при помощи неё сделать так чтоб если достигалось значение меньше к примеру 1кк то setActiveReactor запускался?
</p>

]]></description><guid isPermaLink="false">5336</guid><pubDate>Wed, 02 Feb 2022 12:43:33 +0000</pubDate></item><item><title>&#x432; &#x447;&#x435;&#x43C; &#x440;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x435;&#x436;&#x434;&#x443; &#x432;&#x441;&#x44F;&#x43A;&#x438;&#x43C;&#x438; dofile loadfile &#x438; &#x442;&#x434;?</title><link>https://opencomputers.ru/topic/5308-v-chem-raznitsa-mezhdu-vsyakimi-dofile-loadfile-i-td/</link><description><![CDATA[<p>
	просто я делаю свою ос но loadfile dofile и require скопипастил из опенос и я в душе не еб* чем они отличаются
</p>

]]></description><guid isPermaLink="false">5308</guid><pubDate>Sat, 22 Jan 2022 14:51:05 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; &#x441;&#x43B;&#x443;&#x447;&#x430;&#x439;&#x43D;&#x43E;&#x435; &#x446;&#x435;&#x43B;&#x43E;&#x435; &#x447;&#x438;&#x441;&#x43B;&#x43E;?</title><link>https://opencomputers.ru/topic/2896-kak-poluchit-sluchaynoe-tseloe-chislo/</link><description><![CDATA[<p>
	Как получить рандомное число?
</p>

<p>
	Просто math.random() в конце ещё .0 добавляет. Нам не нужно дробное число.
</p>

]]></description><guid isPermaLink="false">2896</guid><pubDate>Fri, 22 Nov 2019 15:20:03 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x432;&#x44B;&#x440;&#x435;&#x437;&#x430;&#x442;&#x44C; &#x441;&#x438;&#x43C;&#x432;&#x43E;&#x43B;&#x44B; &#x438; &#x441;&#x43B;&#x43E;&#x432;&#x430; &#x438;&#x437; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438;</title><link>https://opencomputers.ru/topic/5273-kak-vyrezat-simvoly-i-slova-iz-stroki/</link><description><![CDATA[<p>
	Допустим у меня есть прекрасное словосочетание "Hello World !", как мне из него в отдельную переменную запихнуть "Hello" и по порядку, чтобы получилось <em>3</em> переменные и я мог их дальше использовать.
</p>

]]></description><guid isPermaLink="false">5273</guid><pubDate>Sat, 08 Jan 2022 22:04:24 +0000</pubDate></item><item><title>&#x414;&#x432;&#x43E;&#x439;&#x43D;&#x44B;&#x435; &#x43F;&#x430;&#x440;&#x44B; &#x441;&#x43A;&#x43E;&#x431;&#x43E;&#x43A; &#x432; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;</title><link>https://opencomputers.ru/topic/4892-dvoynye-pary-skobok-v-funktsii/</link><description><![CDATA[<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="pln">loadfile</span><span class="pun">(</span><span class="str">"file"</span><span class="pun">)(</span><span class="pln">loadfile</span><span class="pun">)</span><span class="pln">
component</span><span class="pun">.</span><span class="pln">list</span><span class="pun">(</span><span class="str">"gpu"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)()</span></pre>

<p>
	Что именно означают вторые пары скобок? Для чего они нужны?
</p>

]]></description><guid isPermaLink="false">4892</guid><pubDate>Sat, 16 Oct 2021 16:08:13 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x441;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x442;&#x430;&#x43A; &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x437;&#x430;&#x43F;&#x443;&#x441;&#x442;&#x438;&#x442;&#x44C; 2 &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x430; while &#x43E;&#x434;&#x43D;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x431;&#x435;&#x437; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x438;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x432; 1-&#x43C; &#x431;&#x44B;&#x43B;&#x43E; io.read(), &#x430; &#x432;&#x43E; 2-&#x43C; event.pull?</title><link>https://opencomputers.ru/topic/4884-kak-sdelat-tak-chtoby-zapustit-2-povtora-while-odno-vremenno-bez-oshibki-chtoby-v-1-m-bylo-ioread-a-vo-2-m-eventpull/</link><description><![CDATA[<p>
	Я сижу и надумал сделать себе что то типа смс, но, когда запускаю сравнение с even.pull даже с задержкой 2, оно не даёт пользывателю написать сообщение, выглядит это примерно так: запрашиваем от сервера свободный порт, получает его и сравнивает цифра, ставит отметку на тот порт который ему прислал сервер, открывает его, после ждёт сообщения(even.pull) и ждёт сообщения для отправки(io.read) если сообщение отправлено то оно посылает порт для получателя и само сообщение, сервер отправляет сообщение по порту на планшет (или ПК) но указанный порт, если мы введём exit то мы отправим что ранее записанный порт программой свободен сервер отметит, и мы закрываем порт, если сообщение приходит, то мы выводим его на экран.<a class="ipsAttachLink ipsAttachLink_image" href="https://opencomputers.ru/uploads/monthly_2021_10/2021-10-13_14_35_06.png.5ff35a45de7c168a2c12691e71ca2e8f.png" data-fileid="2220" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="2220" data-ratio="56.30" width="1000" alt="2021-10-13_14_35_06.thumb.png.2ed31a74321e8526b68abc37237f8b53.png" src="https://opencomputers.ru/uploads/monthly_2021_10/2021-10-13_14_35_06.thumb.png.2ed31a74321e8526b68abc37237f8b53.png"></a>
</p>

<p>
	Также может прислать просто пустое сообщение.
</p>

<p>
	извините что так много но я очь много времени потратил ;-;
</p>

<p>
	event = require('event')<br>
	cmp = require('component')<br>
	os = require('os')<br>
	modem = cmp.modem<br>
	print('удачность соединения:')<br>
	print(modem.open(1))<br>
	two = false<br>
	thre = false<br>
	four = false<br>
	five = false<br>
	beep = cmp.computer.beep()<br>
	function prog()<br>
	  while boo == false do<br>
	    _, _, _, _, _, sus = event.pull("modem_message")<br>
	    print(sus)<br>
	    if sus == 'sms_chek' then<br>
	      if two == false then<br>
	        modem.broadcast(16, '2')<br>
	        print('послано 2')<br>
	        two = true<br>
	      else<br>
	        os.sleep(0.5)<br>
	        if thre == false then<br>
	          modem.broadcast(16, '3')<br>
	          print('послано 3')<br>
	          thre = true<br>
	        else<br>
	          os.sleep(0.5)<br>
	          if four == false then<br>
	            modem.broadcast(16, '4')<br>
	            print('послано 4')<br>
	            four = true<br>
	          else<br>
	            os.sleep(0.5)<br>
	            if five == false then<br>
	              modem.broadcast(16, '5')<br>
	              print('послано 5')<br>
	              five = true<br>
	            else<br>
	              print('ОШИБКА, НЕТ МЕСТ &lt;SMS&gt;')<br>
	            end<br>
	          end<br>
	        end<br>
	      end<br>
	    end<br>
	    if sus == 'sms_exit' then<br>
	      _, _, _, _, _, oi = event.pull("modem_message")<br>
	      if oi == '2' then<br>
	        two = false<br>
	      else if oi == '3' then<br>
	        thre = fasle<br>
	       end<br>
	      end<br>
	    if oi == '4' then<br>
	      four = false<br>
	    else if oi == '5' then<br>
	      five = false<br>
	    end<br>
	    end<br>
	    end<br>
	    if sus == 'sms_messege' then<br>
	      _, _, _, _, _, s = event.pull("modem_message")<br>
	      os.sleep(1)<br>
	      _, _, _, _, _, sms = event.pull("modem_message")<br>
	      if s == '' then<br>
	        print('чуть не произошла ошибка')<br>
	      else<br>
	      print('oправленно: ' .. sms .. '  ' .. 'на порт: ' .. s)<br>
	      portsms = tonumber(s)<br>
	      smska = sms<br>
	      modem.broadcast(portsms, 'SMS')<br>
	      os.sleep(1)<br>
	      modem.broadcast(portsms, sms)<br>
	      end<br>
	    end<br>
	  end<br>
	end<br>
	boo = false<br>
	function shell ()<br>
	  while exit == false do<br>
	    as = io.read()<br>
	    if as == 'exit' then exit = true<br>
	  end<br>
	    end<br>
	end<br>
	shell()<br>
	prog()
</p>

<p>
	ето код сервера
</p>

<p>
	реально много получается
</p>

<p>
	код: планшета:
</p>

<p>
	local cmp = require('component')<br>
	local modem = cmp.modem<br>
	local event = require('event')<br>
	local exit = false<br>
	print(modem.open(16))<br>
	local a = 0<br>
	modem.open(16)<br>
	sms = ''<br>
	while sms == '' do<br>
	  modem.broadcast(1, 'sms_chek')<br>
	  print('попытка соединения с сервером')<br>
	  _, _, _, _, _, sms = event.pull("modem_message")<br>
	  if sms == '2' then<br>
	   modem.close(16)<br>
	   modem.open(2)<br>
	   port = '2'<br>
	   print('порт: 2')<br>
	    print(modem.open(2))<br>
	  else if sms == '3' then<br>
	    modem.close(16)<br>
	    modem.open(3)<br>
	    port = '3'<br>
	    print('порт: 3')<br>
	    print(modem.open(3))<br>
	  else if sms == '4' then<br>
	    modem.close(16)<br>
	    modem.open(4)<br>
	    port = '4'<br>
	    print('порт: 4')<br>
	    print(modem.open(4))<br>
	  else if sms == '5' then<br>
	    modem.close(16)<br>
	    modem.open(5)<br>
	    port = '5'<br>
	    print('порт: 5')<br>
	    print(modem.open(5))<br>
	  end<br>
	end<br>
	end<br>
	end<br>
	end<br>
	smsRAM = false<br>
	RAM = ''<br>
	function send ()<br>
	  while exit == false do<br>
	    _, _, _, _, _, sms = event.pull(2, "modem_message")<br>
	    if sms == '' then<br>
	      <br>
	    else if sms == 'SMS' then<br>
	      print('получен смс:')<br>
	      _, _, _, _, _, sms = event.pull(2, "modem_message")<br>
	      RAM = sms<br>
	      smsRAM = true<br>
	      print(sms)<br>
	    end<br>
	    end<br>
	    local sa = io.read()<br>
	    if sa == 'exit' then<br>
	       exit = true<br>
	       modem.broadcast(1, 'sms_exit')<br>
	       modem.broadcast(1, port)<br>
	       <br>
	       cmp.computer.beep()<br>
	    else<br>
	      modem.broadcast(1, 'sms_messege')<br>
	      os.sleep(1)<br>
	      modem.broadcast(1, sa)<br>
	      local sa =io.read()<br>
	      modem.broadcast(1, sa)<br>
	      print('отправлено')<br>
	    end<br>
	    if sa == '' then<br>
	      if smsRAM == true then<br>
	        print(RAM)<br>
	        smsRAM = false<br>
	      end<br>
	    end<br>
	  end<br>
	end<br>
	send()
</p>

<p>
	еше раз извините что много, прост хочется решить проблему
</p>

<p>
	 
</p>

]]></description><guid isPermaLink="false">4884</guid><pubDate>Wed, 13 Oct 2021 11:45:19 +0000</pubDate></item><item><title>&#x423;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x44D;&#x43A;&#x440;&#x430;&#x43D;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x443;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x44E;&#x449;&#x438;&#x445; &#x441;&#x438;&#x43C;&#x432;&#x43E;&#x43B;&#x43E;&#x432;</title><link>https://opencomputers.ru/topic/4637-ubrat-ekranirovanie-upravlyayuschih-simvolov/</link><description><![CDATA[<p>
	Всем привет! Есть такая задача: на входе строка с экранированными управляющими символами: "Lorem ipsum \\n dolor sit amet", на выходе она должна быть такой "Lorem ipsum \n dolor sit amet". Как можно сделать это максимально компактно? Заранее благодарен)
</p>

]]></description><guid isPermaLink="false">4637</guid><pubDate>Mon, 30 Aug 2021 12:10:29 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x44D;&#x442;&#x43E; &#x43F;&#x43E;&#x444;&#x438;&#x43A;&#x441;&#x438;&#x442;&#x44C;?</title><link>https://opencomputers.ru/topic/4574-kak-eto-pofiksit/</link><description><![CDATA[<p>
	local soc = require("internet")
</p>

<p>
	soc:write("MOTD")
</p>

<p>
	motd = soc:read(100)
</p>

<p>
	Всё роботает. А если я еще раз запрошу MOTD то или ошибка или ничего.
</p>

<p>
	 
</p>

]]></description><guid isPermaLink="false">4574</guid><pubDate>Sun, 15 Aug 2021 17:27:59 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x43F;&#x43E;&#x43B;&#x443;&#x447;&#x438;&#x442;&#x44C; UNIX &#x432;&#x440;&#x435;&#x43C;&#x44F; &#x432; OpenComputer?</title><link>https://opencomputers.ru/topic/4570-kak-poluchit-unix-vremya-v-opencomputer/</link><description><![CDATA[<p>
	Как получить UNIX время в OpenComputer?
</p>

]]></description><guid isPermaLink="false">4570</guid><pubDate>Sat, 14 Aug 2021 15:31:51 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x44C; &#x441;&#x442;&#x440;&#x43E;&#x43A;&#x443; &#x43D;&#x430; Lua?</title><link>https://opencomputers.ru/topic/4535-kak-razdelit-stroku-na-lua/</link><description><![CDATA[<p>
	У меня есть строка:
</p>

<p>
	local reguser = "1.10a4d55a8d778e5022fab701977c5d840bbc486d0,d8f4590320e1343a915b6394170650a8f35d6926,8888"
</p>

<p>
	мне надо всё ввести в переменные:
</p>

<p>
	 
</p>

<p>
	versions = 1.1
</p>

<p>
	login = '10a4d55a8d778e5022fab701977c5d840bbc486d0'
</p>

<p>
	pass = 'd8f4590320e1343a915b6394170650a8f35d6926'
</p>

<p>
	seed = 8888
</p>

<p>
	Как обрезать это?
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>

]]></description><guid isPermaLink="false">4535</guid><pubDate>Thu, 05 Aug 2021 17:18:08 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x44D;&#x442;&#x43E; &#x437;&#x434;&#x435;&#x43B;&#x430;&#x442;&#x44C; &#x43D;&#x430; Lua?</title><link>https://opencomputers.ru/topic/4513-kak-eto-zdelat-na-lua/</link><description><![CDATA[<pre class="ipsCode prettyprint prettyprinted">
<span class="kwd">import</span><span class="pln"> socket

server </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="str">"localhost"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">8888</span><span class="pun">)</span><span class="pln"> </span><span class="com">#I don't remember the port</span><span class="pln">

soc </span><span class="pun">=</span><span class="pln"> socket</span><span class="pun">.</span><span class="pln">socket</span><span class="pun">()</span><span class="pln">
soc</span><span class="pun">.</span><span class="pln">connect</span><span class="pun">(</span><span class="pln">server</span><span class="pun">)</span><span class="pln">

version </span><span class="pun">=</span><span class="pln"> soc</span><span class="pun">.</span><span class="pln">recv</span><span class="pun">(</span><span class="lit">5</span><span class="pun">)</span><span class="pln"> </span><span class="com">#Decode it</span><span class="pln">

soc</span><span class="pun">.</span><span class="pln">send</span><span class="pun">(</span><span class="pln">bytes</span><span class="pun">(</span><span class="str">"PING"</span><span class="pun">,</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf8"</span><span class="pun">))</span><span class="pln">

pong </span><span class="pun">=</span><span class="pln"> soc</span><span class="pun">.</span><span class="pln">recv</span><span class="pun">(</span><span class="lit">8</span><span class="pun">)</span><span class="pln"> </span><span class="com">#Decode it</span></pre>

<p>
	Как реалезовать это:
</p>

<p>
	bytes("PING", encoding="utf8")
</p>

]]></description><guid isPermaLink="false">4513</guid><pubDate>Fri, 30 Jul 2021 16:35:22 +0000</pubDate></item></channel></rss>
