Danechka 0 Опубликовано: 21 октября, 2023 Здравствуйте, нарыл на просторах форумов (кажется, именно на этом форуме) замечательный код для проверки ваниша на сервере. Помогите, пожалуйста, сделать так, чтобы эта информация выводилась на очки из мода 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BenniShifer919 14 Опубликовано: 21 октября, 2023 Это нужно все граф. операции под API мода переписать. Там вроде не сложно только компонент поменять, но я не уверен т.к. сам с ОС не играю и не пишу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oleshe 36 Опубликовано: 21 октября, 2023 (изменено) Скрытый текст 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-н виджет. Ну вот собственно и всё (❁´◡`❁) Изменено 21 октября, 2023 пользователем Oleshe 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Danechka Автор темы 0 Опубликовано: 21 октября, 2023 Всем спасибо большое! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах