Перейти к содержимому
Danechka

CheckVanish

Рекомендуемые сообщения

Здравствуйте, нарыл на просторах форумов (кажется, именно на этом форуме) замечательный код для проверки ваниша на сервере. Помогите, пожалуйста, сделать так, чтобы эта информация выводилась на очки из мода OpenPeripheral. Сам я новичок, стараюсь учиться на чужих кодах, ибо тяжело найти дельную информацию по lua :( Буду очень признателен!

 

local users = {
  {"nick1","Admin"},
  {"nick2","Admin"},
  {"nick3","Admin"},
  {"nick4","Admin"},
  {"nick5","Admin"},
  {"nick6","User"}
}
 
local x_resol = 35
local y_resol = 16
 
local component = require("component")
local computer = require("computer")
local event = require("event")
local gpu = component.gpu
local w,h = gpu.getViewport()

 
local function check()
  gpu.fill(1,1,x_resol,y_resol," ")
  local line = 1
  for ind = 1,#users do
    local name = users[ind][1]
    local rank = users[ind][2]
    gpu.setForeground(0xFFFFFF)
    gpu.set(1,line,"[")
    gpu.set(string.len(rank)+2,line,"] - "..name)
    if rank == "Admin" then
      gpu.setForeground(0xFF0000)
    elseif rank == "Member" then
      gpu.setForeground(0x0000FF)
    end
    gpu.set(2,line,rank)
    if computer.addUser(name) then
      computer.removeUser(name)
      gpu.setForeground(0x00FF00)
      gpu.set(x_resol-7,line,"online")
    else
      gpu.setForeground(0x999999)
      gpu.set(x_resol-7,line,"offline")
    end
    line = line + 1
  end
end
 
for ind = 1,#users do
  computer.removeUser(users[ind][1])
end
os.execute("cls")
gpu.setResolution(x_resol,y_resol)

 
while true do
  check()
  local e = ({event.pull(5,"key_down")})[4]
  if e == 29 or e == 157 then -- Ctrl Выход
    gpu.setResolution(w,h)
    gpu.setBackground(0x000000)
    gpu.setForeground(0xFFFFFF)
    os.execute("cls")
    os.exit()
  end
end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это нужно все граф. операции под API мода переписать. Там вроде не сложно только компонент поменять, но я не уверен т.к. сам с ОС не играю и не пишу

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Скрытый текст

local users = {
  {"nick1","Admin"},
  {"nick2","Админ"},
  {"ТЕТС","Admin"},
  {"test","Admin"},
  {"Ну за ящиком этим","Admin"},
  {"За ящиком","User"}
}
 
local cmp = require("component")
local computer = require("computer")
local uni = require("unicode")
local gpu = cmp.gpu
local w,h = gpu.getViewport()
local bridge = cmp.openperipheral_bridge
bridge.clear()

for i = 1, #users do
  bridge.addText(1,i*10,"[" .. string.rep(" ",uni.len(users[i][2])) .. "] - " .. users[i][1],0xFFFFFF)
  users[i][4] = bridge.addText(4,i*10,users[i][2],0xFFFFFF) 
  users[i][3] = bridge.addText(120,i*10,"SETUP",0x505050)
end
bridge.sync()

gpu.setForeground(0xFFFFFF)
gpu.set(1,1,"Information on glasses")

local function check()
  for ind = 1,#users do
    local name = users[ind][1]
    local rank = users[ind][2]
    local objectStatus = users[ind][3]
    local socialStatusObject = users[ind][4]

    if rank == "Admin" then
      socialStatusObject.setColor(0xFF0000)
    elseif rank == "Member" then
      socialStatusObject.setColor(0x0000FF)
    end

    if computer.addUser(name) then
      computer.removeUser(name)
      objectStatus.setColor(0x00FF00)
      objectStatus.setText("Online")
    else
      objectStatus.setText("Offline")
      objectStatus.setColor(0x999999)
    end

    bridge.sync()
  end
end
 
for ind = 1,#users do
  computer.removeUser(users[ind][1])
end
gpu.setResolution(22,1)

while true do
  check()
  local e = ({require("event").pull(5,"key_down")})[4]
  if e == 29 or e == 157 then -- Ctrl Выход
    gpu.setResolution(w,h)
    os.exit()
  end
end

 

Ну вот как-бы. Убрал вывод на монитор, привинтил всё к окам. Еще можно экономить на бюджетах вызовах, но в данном случаи это не критично. Еще имейте ввиду что у очков возможно(Не проверял) есть потолок виджетов на экране. 1-н пользователь это 3 виджета. Обусловлено окрашиванием текста. Если вам не принципиальны цвета, можно сделать монохромно в 1-н виджет. Ну вот собственно и всё (❁´◡`❁)

Изменено пользователем Oleshe

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...