По стечению обстоятельств выкладываю немного не дописанный (разработка продолжается), но в рабочем состоянии магазинчик внутриигровых предметов.
репозиторий:
https://github.com/Zardar/pimmarket/
ссылка для загрузки:
https://raw.githubusercontent.com/Zardar/pimmarket/pimmarket_0.8/loader.lua
alternative dl from pastebin:
market - https://pastebin.com/M5anF9JW (pastebin get M5anF9JW market.lua)
server - https://pastebin.com/jGMM1vqD (pastebin get jGMM1vqD server.lua)
Что подтверждено на практике:
Работа сервера с четырьмя клиентами
Что на данный момент реализовано:
Взаимодействие с клиентом/сервером путём касания экрана.
Игногрирование касаний экрана посторонними при игроке на PIM. Полное игнорирование касаний экрана без игрока на PIM.
Авторегистрация владельца/цев через пим подключенный к серверу.
Авторегистрация игроков через пим подключенный к клиенту.
Поддержка ме-сети в качестве источника товаров.
Поддержка указанных сундуков в качестве источника товаров, если не подключен ме-интерфейс. Из коробки это сундуки мод-пака GTImpact.
Собственно сама продажа предметов. В качестве источника средств используется NPC money.
Регистрация клиентов на терминале. +Автоматический запрос регистрации клиентом.
Сохранение адресов клиентов сервером. Их загрузка из файла в случае перезапуска сервера.
Сохранение списка владельцев. Сохранение списка посетителей магазина и их баланс.
Автовключение клиентов после запуска сервера. Вам достаточно прописать на клиенте его название в автозагрузку для автоподнятия торговой сети если всё было выключено.
Редактирование цен и названий отображаемых предметов владельцем. Переход в режим редактирования осуществляется кликанием по надписи owner в верхнем левом углу.
Автосохранение базы предметов после редактирования.
Автообновление количества доступных предметов после покупки и по нажатию кнопки 'отмена' (как бы странно это ни было).
Что на данный момент не реализовано:
Поиск предмета по названию.
Пополнение счёта без осуществления покупки. В данный момент счёт пополняется остатками от операции покупки товара, а именно: если цена предмета неравна целому от операции цена/10. Не планировалось изначально. Будет добавлено для работы казино
Возможность смены типа валюты через инвентарь игрока.
Проверка на сервере кто коснулся экрана. Критический момент, если сервер стоит в доступном для посещения посторонними месте. Впрочем, функционал взаимодействия с сервером мал, и при отключенном от сервера пиме (а он нужен только для регистрации владельцев) опасность невелика, но есть. Можно отправить на сервер запрос регистрации клиента и зарегистрировать его, после чего имитировать покупки для пополнения баланса.
Поддержка реквестов крафта купленных товаров
Подключение сторонних программ. Предполагается подключить некоторые из приложений казино автора Кровяка: рулетка, больше меньше и ещё что-то. Сам не помню что :-)
Возможно, будут ещё идеи.
Что не доделано:
Графическое меню магазина. Выполнено примерно на 90-95%. Впрочем, это область визуальной эстетики не влияющая на работоспособность в целом.
Каковы системные требования?
Для комфортной инсталляции рекомендуется экран тира 2 и выше.
После установки для работы клиента и сервера достаточно корпуса компьютера второго тира. Но рекомендуется тир 3. Если предполагается огромная база пользователей/товаров, то скорее всего потребуется коробка тир 3 и соответствующие по тиру компоненты.
Моя комплектация сервера и клиента. Используется исключительно для тестов работоспособности:
Виды в меню клиента:
Взгляд мельком на экран сервера: