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

Вывод информации на open glass, доработка

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

есть прога, лагучая, дремучая, судьбою убитая
болячки:
вылетает при отдалении от компа( телепортации и т.д.)
https://prnt.sc/12z77cx/


что нужно:
добавить и изменить код отображения в очках, а именно:
было:
glasses.addText(18.7, 42.7, tostring(me.getItemDetail({id = "dwcity:Materia"}).all().qty), 0x3F3F3F).setAlpha(0.9)
  glasses.addIcon(0, 37, "dwcity:Materia")

стало(кусок другой проги):
function addinformation()
materia=com.me_controller.getItemsInNetwork() 
for k=1,#materia do
if  materia[k].name=="dwcity:Materia" then nmat=k
end
end


так же: сделать простой и удобный в добавлении новых вещей( предметов, энергии, блоков отображения информации ) интерфейс,
который самостоятельно адаптируется под изменения , без "налезания" строк


текущая программа:

Скрытый текст
  1. local com = require("component")
  2. local sensor = com.openperipheral_sensor
  3. local glasses = com.openperipheral_bridge
  4. local averageCounter = com.average_counter
  5. local me = com.me_controller
  6.  
  7. local function Text()
  8.     os.execute("cls")
  9.     print("\n Если ты это видишь, значит все работает")
  10.     print("\n Собрал из костылей: RealHero")
  11. end
  12.  
  13. Text()
  14.  
  15. while true do
  16.   glasses.clear()
  17.  
  18.     local y = 50
  19.     for i = 1, #sensor.getPlayers() do
  20.         local n = y + 10
  21.         y = n
  22.         if sensor.getPlayers()[i].name == "RealHero"
  23.         or sensor.getPlayers()[i].name == "Schnuk"
  24.         then
  25.             glasses.addText(3.7 , y + 0.7, sensor.getPlayers()[i].name, 0x2A0000).setAlpha(0.9)
  26.             glasses.addText(3, y, sensor.getPlayers()[i].name, 0xAA0000)
  27.         elseif
  28.         sensor.getPlayers()[i].name == "flash2005"
  29.         or sensor.getPlayers()[i].name == "Denys_Caplit"
  30.         then
  31.             glasses.addText(3.7, y + 0.7, sensor.getPlayers()[i].name, 0x15153F).setAlpha(0.9)
  32.             glasses.addText(3, y, sensor.getPlayers()[i].name, 0x5555FF)
  33.             createText(3, y, 0x5555FF).setText(sensor.getPlayers()[i].name)
  34.         else
  35.             glasses.addText(3.7, y + 0.7, sensor.getPlayers()[i].name, 0x3F3F3F).setAlpha(0.9)
  36.             glasses.addText(3, y, sensor.getPlayers()[i].name, 0xFFFFFF)
  37.         end
  38.     end
  39.  
  40.     glasses.addText(18.7, 30.7, averageCounter.getAverage() .. " EU/t", 0x2A2A00).setAlpha(0.9)
  41.     glasses.addText(18, 30, averageCounter.getAverage() .. " EU/t", 0xFFAA00)
  42.  
  43.    
     
  44.     glasses.addText(18, 42, tostring(me.getItemDetail({id = "dwcity:Materia"}).all().qty), 0xFFFFFF)
  45.  
  46.     glasses.addIcon(-1, 25, "AdvancedSolarPanel:BlockMolecularTransformer").setScale(1.2)
  47.   glasses.addIcon(0, 37, "dwcity:Materia")
  48.   glasses.addText(3.7, 50.7, "кто в доме:", 0x3F153F).setAlpha(0.8)
  49.   glasses.addText(3, 50, "кто в доме:", 0xFF55FF)
  50.  
  51.   glasses.sync()
  52.  
  53.   os.sleep(0.5)
  54. end


как выглядит работа проги выше:
https://prnt.sc/12z75hk

 

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


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

Программа вылетает из-за радара, так как это самый "нехороший" радар. Варианты исправления

  1. Всё завернуть в pcall (ужасный вариант)
  2. Использовать демонов

Собственно я больше склоняюсь ко второму варианту так как там если программа крашится то оно продолжит работать дальше.

Переделывать программу нет никакого желания поэтому скажу только свою теорию. Отдельно отрезай сканер от других этапов работы программы, все упаковывай в функцию

Используй следующее:

function onChatMessage(eventName, address, user, message) 
  print(user .. " sent: " .. message) 
end 
event.listen("touch", onChatMessage) --рекомендую юзать для отлова моментов одевания очков (они вечно отваливаются и не рисуют картинку при перезаходе на сервак)
-- тут просто базовый пример отлова тыков по экрану, эвент сам поменяешь dmesg в помощь
function start()
  --сканим
  --отрисовываем игроков
  --прогоняем данные по материи
  --отрисовываем материю
end

event.timer(5, start, math.huge) --это основной цикл, запуск каждые 5 сек

А, и переключи сохранение картинок на имгур или дропбокс, они поддкрживают прямую вставку картинки сюда, а то уверен у 90% тех кто прочитал твою проблему лень запретила переходить по ссылке

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


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

Ну, будем ждать кто поможет переписать это, сам в луа еще не очень шарю ._.

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

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


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

unknown.png
если кто сможет сделать так же, то можно и о денежном эквиваленте поговорить

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


Ссылка на сообщение
Поделиться на других сайтах
В 17.05.2021 в 03:54, demongts1998 сказал:

unknown.png
если кто сможет сделать так же, то можно и о денежном эквиваленте поговорить

Готов взяться за такое, опыт написания подобного есть. Имеется даже рабочий прототип. Скажи, версия мода openglasses первая или вторая? И напиши дс для связи

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

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


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

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

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

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

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

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

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

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

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


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