Chebuya 415 Опубликовано: 15 ноября, 2019 (изменено) Для тех, кто торопится: https://github.com/BrightYC/RipMarket/tree/master Всем привет, решил выложить свою программу-магазин. Экономикой, в отличии от не обладает. Так же, интерфейс позаимствован с программы выше. Скажу сразу, программа писалась для себя. Работать без OpenPeripheral/AE2 не будет. Возможности: Продажа/покупка товара Обменник руды(Коэффицент можно настроить в файлике items.lua - ratio) Раздатчик бесплатной еды(Кол-во выдаваемой еды настроить можно только через код =\, но по стандарту - 16 яблок/арбузов) Лотерея(Делалось наспех, для заполнения меню) Инфо-панель(Поддерживает только цвета, настроить можно в начале - FAQ Возможность оставить отзыв об магазине Установка: Настройка, увы, не из простых. Нужно заиметь какой-нибудь vds, так как вся информация хранится на стороне. По стандарту, NodeJS сервер запускается на 1414 порту. После, нужно придумать уникальный ключ, и вставить его в код всех терминалов. Так же, нужно разместить таблицу со всеми предметами, и вставить ссылку в код(В таблице хранится вся информация - какую руду обработать, какая еда доступна к выдаче и т.д) По поводу хранения информации всех пользователей - они хранятся в виде txt файлов в JSON. Хранятся они в относительном пути, где установлен сервер. К примеру: /home/user/pi/ripmarket/users Логи покупок/регистраций хранятся по такому же пути, но вместо users - logs /home/user/pi/ripmarket/logs Монтирование всего в игре - к каждому терминалу нужно подключить PIM, снизу PIM'а мэ интерфейс(мэ интерфейс нужно подключить к МЭ сети). Ко всему этому надо подключить адаптеры. В видео можно увидеть как это всё выглядит в игре. Запуск: Желательно запускать код через start.lua, который есть в репозитории. Так как если будет какая-то ошибка - программа вылетит. Поэтому нужен лаунчер. Все логи терминала(Не путать с сервером!) хранятся в директории /home/logs Видеодемонстрация: Скрытый текст Изменено 2 ноября, 2020 пользователем BrightYC 8 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 16 ноября, 2019 Это рип. Посмотрел в конфиг, вообще рип. Пимка - рип. Админские ключи пихать в опенкомпы это совсем рип. Их любой игрок может из памяти прочитать. А если постараться, то прямо из потока. Ты сподвиг меня, в очередной раз переписать свой маркет. Давно хотел минимализм и нормальную поддержку OreDict с автообновлением и телеметрией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 16 ноября, 2019 Смотрел только видос. + Хороший, минималистичный дизайн + Навигация по менюшкам быстрая - Магаз не умеет искать нужные предметы по всему инвентарю - Не обойтись одними лишь средствами игры(нужна vds) А что если больше одного игрока встанут на одну PIM? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 16 ноября, 2019 4 часа назад, Doob сказал: Это рип. Посмотрел в конфиг, вообще рип. Пимка - рип. Админские ключи пихать в опенкомпы это совсем рип. Их любой игрок может из памяти прочитать. А если постараться, то прямо из потока. Пимка разрешена, почему нет. Несложно приделать какого-нибудь робота. А что не так с админскими ключами? Да какому-нибудь читаку проще мэ сломать и ресы себе забрать. Ну забрали ключ, поменяю. (Учитывая, что просто открыть конфиг и забрать не получится.).ККакие-то проблемы, которые малореализуемы. 4 часа назад, Doob сказал: Ты сподвиг меня, в очередной раз переписать свой маркет. Давно хотел минимализм и нормальную поддержку OreDict с автообновлением и телеметрией. Тот что был у тебя, меня не устраивал. Но я рад, что кого-то замотивировал. Да и писал я для себя, кому надо - пусть сами разбираются. Мне всё просто и понятно. 37 минут назад, hohserg сказал: - Магаз не умеет искать нужные предметы по всему инвентарю - Не обойтись одними лишь средствами игры(нужна vds) А что если больше одного игрока встанут на одну PIM? Я думал так сделать, но просто игроки на сервере могут нажатием кнопки продать весь свой инвентарь, а потом возмущаться, мол ресурсы украли. Мне оно не нужно, если честно. По поводу вдс - сначала был игровой сервер, но потом понял, что вытаскивать все файлики в случая чего - жуткий геморрой. Увы, переделывать обратно я не буду. По поводу пима - пим захватывает инвентарь того игрока, что встал первый. Если стоит два игрока, и авторизовавшийся выйдет - авторизуется тот, что стоял на пим'е 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 16 ноября, 2019 1 минуту назад, BrightYC сказал: могут нажатием кнопки продать весь свой инвентарь Сделай дружественный UI, чтобы юзер не мог неосознанно стрелять себе в ногу 2 минуты назад, BrightYC сказал: что вытаскивать все файлики в случая чего А какие там файлики вообще хранятся? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 16 ноября, 2019 Только что, hohserg сказал: Сделай дружественный UI, чтобы юзер не мог неосознанно стрелять себе в ногу Да ну его, если честно. На сервере постоянно говорят, мол у меня ресы отобрали, а монеты не дали(думают, что дают серверные монеты). Кому надо - пусть переделывает. Только что, hohserg сказал: А какие там файлики вообще хранятся? Ну в основном сейчас в .txt файлах хранятся данные о пользователе. Дата регистрации, последнего входа, баланс, кол-во транзакций, следующее время до бесплатной еды, отзыв. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 7 декабря, 2019 Ну, надеюсь точно доделал. Доделал почти всё что хотел. Из новинок: Возможность выбрать режим поиска(весь инвентарь/1 слот) Запуск с EEPROM(никаких зависимостей, программа целиком и полностью на голом HDD) Админ-панель. Ну, чтож, теперь "админы" в программе указываются в EEPROM, ибо для обновления/запуска программы требуется знать, кто же администратор. В админ-панели можно банить игроков, обновлять базу данных предметов, вводить терминал в режим тех-работ, удалить ключ с диска. Небольшая переделка интерфейса, так же теперь игроки при первом логине ОБЯЗАНЫ прочитать "помощь"(Это отсеивает игроков, которые не понимают что это вообще такое) Ключ не указывается в программе, его теперь нужно вставлять через буфер обмена. Сохраняется на жёстком диске по пути в корне диска key.lua Немного адекватнее стал конфиг. Добавил openperipheral selector, позволяет показывать предмет, который пользователь выбрал. И еще куча всяких вещей, вроде того что скроллбар работает с мышью. К слову, теперь установить программу можно вроде как проще. Прошиваем EEPROM, и она автоматически скачивает программу с репозитория. Обновить можно будет комбинацией клавиш CTRL+D. Появилась утилита автоматического экспорта. Позволяет автоматически экспортировать предметы, если в таблице items указать параметр needed. Будет поддерживать это кол-во в мэ сети, но нужен мост между основной мэ-сетью и сетью магазина. Buffer - это сколько предметов должно быть в сети, чтобы можно было экспортировать предмет(Необязательный параметр). Для работы этого экспорта нужна деревянная мотыга в сети. Даже не спрашивайте зачем Пачка скриншотов: Скрытый текст 5 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 7 декабря, 2019 Еще нужна фича автоматического стирания соглашения всем игрокам при обновлении соглашения Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 7 декабря, 2019 5 часов назад, hohserg сказал: Еще нужна фича автоматического стирания соглашения всем игрокам при обновлении соглашения а, да это я сам вручную делаю просто. Утилита есть небольшая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 12 декабря, 2019 В плане безопасности ничего не изменилось, хацкер может спокойно модифицировать свой счет и выкупить все товары. Самый надежный способ хранить информацию - на жестком диске в игровом сервере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 12 декабря, 2019 (изменено) 2 часа назад, Doob сказал: В плане безопасности ничего не изменилось, хацкер может спокойно модифицировать свой счет и выкупить все товары. Самый надежный способ хранить информацию - на жестком диске в игровом сервере. Каким образом? Я не понимаю о чём ты. Как он модифицирует свой счёт? P.S Приведи реальный пример, я не в курсе каким образом можно достать данные с жёсткого диска не имея к нему прямого доступа. Ключ хранится на жёстком диске - каким образом игрок может вытащить ключ? Есть реальный метод, или это теория? P.P.S Был у меня сервер в игровом мире, это неудобно. Всякие отзывы и прочее при вайпе потом фиг достанешь, это не практично. Изменено 12 декабря, 2019 пользователем BrightYC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 12 декабря, 2019 Содержимое сервера общедоступно, любой игрок может прочитать из памяти ключ и использовать его, чтобы управлять базой данных. Есть один способ защититься. Надо сделать шлюз для связи с интернетом в отдельном мире, куда не имеет доступ ни один игрок. Туда от магазина прокинуть мост туннельными картами. Хотя, я не уверен, что из персонального измерения нельзя вытащить информацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 12 декабря, 2019 15 минут назад, Doob сказал: Содержимое сервера общедоступно, любой игрок может прочитать из памяти ключ и использовать его, чтобы управлять базой данных. Есть один способ защититься. Надо сделать шлюз для связи с интернетом в отдельном мире, куда не имеет доступ ни один игрок. Туда от магазина прокинуть мост туннельными картами. Хотя, я не уверен, что из персонального измерения нельзя вытащить информацию. Каким образом из памяти игры прочитать ключ? @vx13 призываю тебя, @NEO так же обсуждали эту тему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 12 декабря, 2019 57 минут назад, BrightYC сказал: Каким образом из памяти игры прочитать ключ? @vx13 призываю тебя, @NEO так же обсуждали эту тему Мне самому интересно что там за дыра такая) 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 13 декабря, 2019 Никакой дыры нет. Все очевидно, если примерно понимать, как работает компьютер. Что-то OBS после обновы стал туго писать несколько окон, но общий принцип, думаю ясен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 13 декабря, 2019 8 минут назад, Doob сказал: Никакой дыры нет. Все очевидно, если примерно понимать, как работает компьютер. Что-то OBS после обновы стал туго писать несколько окон, но общий принцип, думаю ясен. Это же одиночная игра. С какой стати серверу посылать состояние компов? Нужно только клавиатуру/монитор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 13 декабря, 2019 Было бы здорово если все было так просто. На одном сервере я прочитал исходники админского магазина и нашел их на пастбине. Сервер многое не сообщает клиентам, но протокол открытый. Немного покопавшись, можно заставить сервер делать удивительные вещи. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 13 декабря, 2019 Только что, Doob сказал: Было бы здорово если все было так просто. На одном сервере я прочитал исходники админского магазина и нашел их на пастбине. Сервер многое не сообщает клиентам, но протокол открытый. Немного покопавшись, можно заставить сервер делать удивительные вещи. Какого магазина? В смысле моего? Там же без ключа в любом случае не получится ничего сделать. Да и магаз же лежит в открытую на гитхабе, зачем искать где-то на пастебине? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 13 декабря, 2019 1 час назад, BrightYC сказал: Да и магаз же лежит в открытую на гитхабе Этот факт, если честно, не способствует защищённости =) Потому что внимательнее всего код будут изучать как раз те, кто хочет найти там дыру в безопасности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 13 декабря, 2019 @Doob из одиночной то игры понятно, вытащить можно что угодно, но в потоке сервера как мне кажется 0 шансов отловить этот ключик Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах