Alex 4 683 Опубликовано: 15 мая, 2015 Вот простенькая малюсенькая программулька для чата. Простая как лопата, но работает стабильно и надежно. Бокс расширяется и сужается по высоте в зависимости от количества сообщений. Жизнь сообщения 15 секунд. Если сообщений нет, долгое время, они потихоньку все очистятся и пропадут с экрана вообще. Длина строки ограничена 140 символов. Нет никаких банов, управления чатом, админов и префиксов, прав и очистки чата. Это самая простая реализация, какая может только быть. Уже с друзьями можете уединится в этом чатике и общаться. Подключите блок моста через адаптер к ПК, запустите программу, кликните ПКМ по мосту, наденьте очки и пишите собщения в чат игровой в виде $$ Привет, Петя. В чат сообщение не отобразиться, но его увидят все, кто в очках, прилинкованных к данному блоку. local com = require('component') local computer = require('computer') local event = require('event') local fs = require("filesystem") local term = require('term') local serial = require('serialization') local com = require('component') local gl = com.openperipheral_bridge local max_len = 140 local function chatDraw() gl.clear() gl.addBox(1,1,400,#chat_buffer*10,0x000000,0.5) for i=1, #chat_buffer do gl.addText(3,10*i-8,chat_buffer[i], 0xFFF700) end gl.sync() end term.clear() chat_buffer = {} gl.clear() gl.sync() while true do e,adr,nick,uuid,msg = event.pull(15, "chat_command") if e == nil then if #chat_buffer~=0 then table.remove(chat_buffer,1) chatDraw() end else print(nick..': '..msg) if #msg > max_len then msg = string.sub(msg,1,max_len)..'..' end table.insert(chat_buffer,nick..': '..msg) if #chat_buffer > 7 then table.remove(chat_buffer,1) end chatDraw() end end Мощный и управяемый чат делает игрок FingerComp. Там будет и система администрирования и очистки чата, префиксы и права, баны и прочее. 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ShuraGamer 25 Опубликовано: 3 июля, 2015 Можно вопрос, а каковы функции метода .sync()? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 3 июля, 2015 Можно вопрос, а каковы функции метода .sync()? Синхронизация, обновление — называйте, как хотите. У всех подключённых клиентов обновляются очки. Зачем? С 1.7 при изменениях виртуального экрана (добавление/изменение/удаление объектов) инфа сохранится в мосте... Но не отправится на очки! Для отправки и нужен метод glasses.sync(). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ShuraGamer 25 Опубликовано: 3 июля, 2015 Синхронизация, обновление — называйте, как хотите. У всех подключённых клиентов обновляются очки. Зачем? С 1.7 при изменениях виртуального экрана (добавление/изменение/удаление объектов) инфа сохранится в мосте... Но не отправится на очки! Для отправки и нужен место glasses.sync()А при .clear() очищаются очки или мост? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 3 июля, 2015 А при .clear() очищаются очки или мост? Все объекты на мосте. Нужно опять вызывать glasses.sync() для синхронизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ShuraGamer 25 Опубликовано: 3 июля, 2015 Все объекты на мосте. Нужно опять вызывать glasses.sync() для синхронизации.Спасибо огромное, помог[emoji106] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах