Перейти к публикации

В ближайшее время постараюсь разобраться с картой сервера/ЛК/бб кодами

mercurial

Отслеживание предметов

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

  • Описание: Требуется программа для отслеживания количества предметов в бочке (из мода storage drawers);
  • Награда: К сожалению не игрок сервера, так что награды нет;
  • Установка: Любые компоненты;
  • Требования: Нужно выводить на монитор сколько сейчас предметов в бочке и так же показывать график изменения.
  • Связь: Топик, личка, vk - /m1ster_robot, дискорд.
Изменено пользователем mercurial

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


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

Бесят такие темки (сделайте за меня, мне лень даже розбиратся в этом) 

  • Like 1

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


Ссылка на сообщение
Поделиться на других сайтах
47 минут назад, whiskas сказал:

Бесят такие темки (сделайте за меня, мне лень даже розбиратся в этом) 

Да нормально всё. Бывает, кому-то нужны идеи для программирования. Такие темы помогают заказчику и исполнителю найти друг друга.

 

Но меня смущает формулировка, кочующая из темы в тему:

10.12.2018 в 22:14, mercurial сказал:

Награда: К сожалению не игрок сервера, так что награды нет

Если и в самом деле сожалеешь, предложи другие варианты награды. А то получается как в том анекдоте: хотели положить тебе 10 долларов, да письмо уже запечатали.

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, eu_tomat сказал:

Если и в самом деле сожалеешь, предложи другие варианты награды. А то получается как в том анекдоте: хотели положить тебе 10 долларов, да письмо уже запечатали.

Он все верно пишет. Там же есть образец, где так прям и сказано. Ну а то что игрок не играет на сервере тут уже не его вина.

10.12.2018 в 22:14, mercurial сказал:

Описание: Требуется программа для отслеживания количества предметов в бочке (из мода storage drawers);

Вот тут вопрос, сколько предметов может быть в бочке в этой? 1/2/4/8 или сколько. С одним теоретически можно график выводить. С 2 уже сложнее будет, а вот если больше предметов тут уже у меня идей даже нет как это реализовать.

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


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, whiskas сказал:

Бесят такие темки (сделайте за меня, мне лень даже розбиратся в этом) 

Когда русский язык выучишь, тогда и пиши пожалуйста сюда, а по делу, то у меня не так много времени и желания учить луа, поэтому пишу сюда.

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


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, Asior сказал:

Вот тут вопрос, сколько предметов может быть в бочке в этой? 1/2/4/8 или сколько. С одним теоретически можно график выводить. С 2 уже сложнее будет, а вот если больше предметов тут уже у меня идей даже нет как это реализовать.

Мне нужно один предмет выводить, и храниться в ней будет только один предмет, древесный уголь.

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


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

Угу, понятно. Курю тогда как работают гистограммы и графики. Как будет время накатаю. Вроде все просто, но надо тестить.

Библиотека для создания гистограмм и прогрессбаров

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

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


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

Так, программка готова. Рекомендую размер экрана 3х2. Хотя вроде должно нормально работать и на экранах большего размера. Рядом (сверху/снизу/неважно короче) с бочкой надо поставить адаптер. Его подключить к компьютеру. По устройству компьютера требований вообще никаких, что запихаешь то и будет.

Установка программы в 2 шага:

Загрузка библиотеки:

  • pastebin get -f wchQZtZB /lib/charts.lua

Загрузка программы:

  • pastebin get -f mSRmMS72 Graf_drawer.lua

Рекомендую вручную вбивать команды, а то при копировании лезет дополнительная информация в буфер обмена и ОС начинает глючить.

Ну и скрин, как это выглядит:

FYkZKOs.png

Обновляется программа каждую 1 секунду, но график меняется только при изменении количества предметов, что там заложены. Название предмета, если ты играешь на сервере может выводиться на каком-то другом языке (зависит от настроек сервера)

  • Like 4

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


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

@Asior, а не приведёт ли постоянное добавление новых записей в таблицу payload.values к переполнению памяти?

  • Like 1

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


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

@Asior можешь график немного поменять?  Примерно такой, желательно всё что выше середины зеленое, ниже - красное. Как в машине тесла

 

Безымянный.png

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

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


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

@Asior а так же вторую строчку передвинуть на верх, там где 1 строчка, и объем не нужно писать сколько может вместить, нужно только сколько сейчас хранится, потому что у меня там большие цифры, по 30к

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


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

@Asior при включении программы, не важно сколько было бы в бочке предметов, он брал начальное значение за середину этого графика, если идет профит, то график ползет вверх, если наоборот, то вниз. Я бы сам попробовал написать программки, но я к сожалению плохо воспринимаю материал, когда сам пытаюсь понять, я очень хорошо понимаю, когда мне какой-нибудь человек рассказывает, а еще при этом показывает на примере.

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


Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, eu_tomat сказал:

@Asior, а не приведёт ли постоянное добавление новых записей в таблицу payload.values к переполнению памяти?

Как ни странно, но память не переполняется. Или у библиотеки есть очистка, или я хз. Память потихоньку растет, а потом падает.

17 часов назад, mercurial сказал:

Как в машине тесла

Это то тут причем? Непонятно, но смысл как переделать я понял.

 

14 часов назад, mercurial сказал:

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

Лень уже добавлять это, программу уже переписал по другому. Следующим сообщением добавляю программу.

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


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

Программка почти не изменилась, просто использует другой тип графика.

IypdSoo.png

Конечно тут речи никакой не идет о тонкой линии которая будет чертить график, я использовал то что есть в уже готовой библиотеке.

Для работы программы все так-же требуется адаптер. К требованиям компьютера изменений нет, все так-же что запихаешь то и будет работать. Единственное что поменял, это теперь график не имеет никаких ограничений по размерам экрана. Да и вообще никакая информация кроме графика больше не рисуется. Проверка на изменения количества ресурсов в бочке проводится раз в секунду, если изменений нет, график не отрисовывается. График показывается следующим образом: 

Берется максимально допустимое количество ресурсов, что можно запихать в бочку, и делится пополам. Все что выше половины то отрисовывается зеленым, если уровень ресурсов падает ниже середины, то отрисовка проходит красным.

Установка программы в 2 шага:

Загрузка библиотеки:

  • pastebin get -f wchQZtZB /lib/charts.lua

Загрузка программы:

  • pastebin get -f zjiKv5F0 Graf_drawer.lua
  • Like 5

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


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

@Asior подожди, программа отслеживает только поступление предметов? Я думал она постоянно график делает.

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


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

А как часто у тебя происходит изменение количества предметов?

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


Ссылка на сообщение
Поделиться на других сайтах
33 минуты назад, mercurial сказал:

@Asior подожди, программа отслеживает только поступление предметов? Я думал она постоянно график делает.

График рисуется в рамках условий ТЗ:

10.12.2018 в 22:14, mercurial сказал:

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

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

  • Like 2

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


Ссылка на сообщение
Поделиться на других сайтах
14.12.2018 в 16:08, mercurial сказал:

Я думал она постоянно график делает.

Это можешь и сам исправить достаточно закомментировать или удалить строки

46, 47, 53.

Если график будет слишком быстро рисоваться (как по мне он рисуется очень быстро) то можешь поиграть со значением os.sleep(1)

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


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

@Asior, что-то в текущей версии код усложнился, а кое-где явно избыточно. Например, в этом фрагменте

  if drawer.getItemCount(1) == 0 then
    gr = payload.min
  else
    gr = -(drawer.getMaxCapacity(1)/2-drawer.getItemCount(1))
  end

достаточно было бы написать:

  gr = payload.min+drawer.getItemCount(1)

Похоже на незавершённую попытку добавить какую-то новую фичу.

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


Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, eu_tomat сказал:

Похоже на незавершённую попытку добавить какую-то новую фичу.

Скорее на очередной мой костыль "Добраться из точки А в точку Б можно по прямой, но это скучно поэтому пойдем через весь алфавит рандомом".

Как-то я не уверен, что такой код сработает. Но спасибо за подсказку. (и да, это вообще никакая не фича а просто попытка затолкать данные в этот график)

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


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Asior сказал:

Как-то я не уверен, что такой код сработает.

Если сомнения останутся, дай знать. Я распишу последовательность действий по минимизации кода. Возможно, это и не так очевидно, как кажется мне. Или кто-то другой распишет.

 

И ещё одно замечание. @mercurial в личке просил меня помочь ему с этой программой. Я пока отказался и, подумав, уже не соглашусь в будущем. Думаю, имеет прояснить эту идею для всех:

 

Разбор программ на форуме более эффективен, чем при индивидуальной работе. Во-первых, можно получить более разностороннюю помощь, кто-то из подсказывающих форумчан может допустить ошибку, другой его поправит, а у кого-то найдётся лучший вариант. Во-вторых, форум читает не только автор темы, но и другие новички, поэтому разбор программы на форуме сможет помочь кому-то ещё.

 

Давайте выбирать более эффективные способы взаимодействия.

 

Спасибо за внимание.

  • Like 1

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


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

@Asior мне очень важно, чтобы график рисовался при включении программы, не важно сколько было бы в бочке предметов, он брал начальное значение за середину этого графика. И желательно чтобы график был таким как на картинке, т.е. линиями, а не столбиками :) Ты можешь объяснить как это сделать или просто переделать?

ÐаÑÑинки по запÑоÑÑ opencomputers graph

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

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


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, mercurial сказал:

Asior мне очень важно, чтобы график рисовался при включении программы, не важно сколько было бы в бочке предметов, он брал начальное значение за середину этого графика. И желательно чтобы график был таким как на картинке, т.е. линиями, а не столбиками :) Ты можешь объяснить как это сделать или просто переделать?

Начну по порядку.

Нужно чтобы график брал за середину то значение, что есть в бочке. Да такое возможно, но только ошибок при таком выводе будет море и график будет скособоченный, тоесть со смещением вверх. Это выглядеть будет во первых некрасиво, во вторых при опускании графика ниже начнутся ошибки, можно конечно все это обработать и исключить, но увы мне лень.

Желательно чтобы график был как на картинке? Я взялся за эту работу так как видел уже готовую библиотеку графиков. Мне хотелось самому научиться работать с ней и вообще посмотреть пощупать, как это все работает. Я для себя задачу выполнил, разобрался что да как работает, как вывести синусоиду, полосу, или гистограмму. Именно на ней построена текущая программа и та библиотека по определению не поддерживает рисование таких графиков. Это можно увидеть в описании библиотеки. А разрабатывать свой код для того чтобы выводить 1 единственную линию ... извините меня, но это не очень как-то звучит.

Объяснять как это можно переделать я не буду. Библиотека которую я использовал не удовлетворяет вашим запросам, а писать костыли для того чтобы заставить её выводить как вам надо информацию, на мой взгляд это кощунство по отношению к её создателю.

Как самому сделать? Учить луа, разобраться как работает GPU, подтянуть математику, вывести формулу для отрисовки и написать программу. Можете даже использовать готовую уже программу по выводу графиков, что на скрине у вас, но боюсь для вас это будет как блохе до паровоза.

Ну а коль моя программа не удовлетворяет вашим требованиям, дерзайте сами или ждите может кто подтянется и напишет то, что вам надо. Вообще зачастую приходится потом самому заказанную программу сидеть и напильником точить до нужного состояния.

  • Like 2

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


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

Это конечно оффтоп, но всё таки с этой библиотекой можно много чего интересного сделать.

giphy.gif

Изменено пользователем BrightYC
  • Like 1

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×