Настройка
Всё, что предполагается менять, находится в четырёх открытых папках: config/, locales/, bridge/ и items/. Остальной Lua-код зашифрован (escrow).
Какой файл за что отвечает
Заголовок раздела «Какой файл за что отвечает»| Файл | За что отвечает | Открыт? |
|---|---|---|
config/config.lua | Язык, система взаимодействия, уведомления, доставка, офлайн-майнинг, NPC-дилер и его блип | Да |
config/warehouses.lua | Три склада: цена, места под фермы, картинка, точка входа, место появления коробок; настройки выхода и блипов складов | Да |
config/shop.lua | Все детали в магазине ноутбука: цена, ватты, хешрейт, категория | Да |
config/cryptos.lua | Монеты: название, базовая цена, волатильность, сложность, цвет, иконка | Да |
config/webhook.lua | Два Discord webhook. Загружается только на сервере | Да |
locales/*.lua | Все строки — в игре и на ноутбуке | Да |
bridge/bridge_client.lua | Уведомления, текст подсказок, колбэки и обёртка над ox_target / qb-target / drawtext | Да |
bridge/bridge_server.lua | Игроки, деньги, имена и предметы через fmLib | Да |
items/ | Определения предметов для ox, qb и ESX, а также иконки предметов | Да |
html/ | Магазин дилера и экран ноутбука, а также картинки складов в html/img/ | Да, не зашифрован |
mic_crypto_props/ | Стримящиеся модели и 3D-превью, которые показывает ноутбук | Только ассеты |
Общее — config/config.lua
Заголовок раздела «Общее — config/config.lua»| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.Locale | Какой файл из locales/ используется | 'en' |
Config.Interaction | ox_target, qb-target или drawtext (подсказка Нажмите E) | 'ox_target' |
Config.CustomLaptopNotificacions | true: сообщения магазина и сделок появляются всплывающими уведомлениями на экране ноутбука. false: обычные уведомления фреймворка | true |
Config.ReceiveProductsDirectlyToInventory | true: купленные на ноутбуке детали сразу попадают в инвентарь. false: на складе появляется коробка, которую нужно забрать | false |
Config.OfflineMining | Майнят ли фермы, пока владелец отключён | true |
Config.OfflineRate | Скорость офлайн-майнинга. 1.0 — полная скорость, 0.5 — половина | 1.0 |
Параметр CustomLaptopNotificacions в файле написан именно так — сохраняйте написание.
Дилер — Config.NPC и Config.Blip
Заголовок раздела «Дилер — Config.NPC и Config.Blip»| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.NPC.model | Модель педа дилера | s_m_y_ammucity_01 |
Config.NPC.coords | Где стоит дилер, с направлением (heading) | У порта |
Config.NPC.scenario | Чем занимается дилер | WORLD_HUMAN_CLIPBOARD |
Config.NPC.interactDistance | Насколько близко нужно подойти | 2.5 |
Config.Blip.enable | Показывать дилера на карте | true |
Config.Blip.sprite / color / scale | Внешний вид блипа | 478 / 5 / 0.8 |
Config.Blip.name | Подпись блипа | Crypto Warehouse Shop |
Склады — config/warehouses.lua
Заголовок раздела «Склады — config/warehouses.lua»| Склад | id | Цена | Места под фермы (rigSlots) |
|---|---|---|---|
| Маленький | warehouse_small | 50,000 | 8 |
| Средний | warehouse_medium | 150,000 | 21 |
| Большой | warehouse_large | 350,000 | 37 |
У каждого склада есть следующие поля:
| Поле | Что делает |
|---|---|
id | Внутреннее имя. Не меняйте три id |
name, description | Текст в магазине, берётся из файла локали |
price | Стоимость, оплачивается наличными или с банка — покупатель выбирает сам |
rigSlots | Число, которое показывается в магазине |
image | Картинка в магазине, из html/img/ |
security, power | Подписи, показываемые в магазине |
viewCoords | Куда кнопка Просмотр отправляет покупателя осмотреться перед оплатой |
insideCoords | Где вы появляетесь при входе; здесь же находится и выход |
packageCoords | Куда падает коробка с доставкой |
Над списком расположены:
| Параметр | Что делает | По умолчанию |
|---|---|---|
Config.ExitCoords | Где все выходят, из какого бы склада они ни вышли | Рядом с дилером |
Config.WarehouseBlips | Спрайт, цвет и масштаб блипа для принадлежащих вам складов | 478, зелёный, 0.7 |
Магазин — config/shop.lua
Заголовок раздела «Магазин — config/shop.lua»Config.Shop.Categories задаёт четыре вкладки магазина на ноутбуке (видеокарты, блоки питания, вентиляторы, стойки). Config.Shop.Items — это список деталей. Покупки на ноутбуке всегда оплачиваются с банка.
| Поле | Что делает |
|---|---|
id | Название предмета. Должно совпадать с предметом в вашем инвентаре и моделью в mic_crypto_props |
category | gpus, psus, fans или racks |
label, description | Текст в магазине, берётся из файла локали |
price | Стоимость |
image | Имя файла иконки |
watts | Для видеокарт и вентиляторов — сколько они потребляют. Для блоков питания — сколько выдают |
hashrate | Только для видеокарт: GH/s на одну карту |
temperature, cooling | Нагрев видеокарты и охлаждение вентилятора, используются в балансовой таблице в начале файла. В этой версии игра их не учитывает — применяется только ограничение по питанию |
Цены по умолчанию:
| Деталь | Цена | Деталь | Цена |
|---|---|---|---|
| Badger Comm-100 | 450 | PostOP 500W | 150 |
| Wiwang PC-G | 900 | Whiz Wireless 850W | 350 |
| eCola OC Edition | 1,600 | Merryweather 1600W | 800 |
| iFruit Pro Max | 2,800 | Darrell Brother Fan | 45 |
| Sprunk Xtreme | 4,500 | FlyUS Aero Fan | 120 |
| Standard 5-Slot Rig | 1,200 | Atomic Vortex 120mm | 250 |
В блоке комментариев в начале config/shop.lua разобрано, какие блоки питания и вентиляторы нужны каждому классу видеокарт для полной фермы. Прочитайте его, прежде чем менять watts — это самый быстрый способ сохранить возможность собрать ферму любого уровня.
Как проверяется питание. При установке видеокарты или вентилятора суммарное потребление фермы (все видеокарты и вентиляторы) плюс новая деталь должно укладываться в сумму мощностей её блоков питания. Если не укладывается, деталь отклоняется с сообщением недостаточно питания.
Монеты — config/cryptos.lua
Заголовок раздела «Монеты — config/cryptos.lua»В комплекте четыре монеты. Записи можно свободно добавлять и удалять; новая монета попадает в таблицу рынка при следующем запуске.
| Монета | Название | Базовая цена | range | difficulty |
|---|---|---|---|---|
MWX | Merryweather Crypto | 850.50 | 10 | 1.0 |
FLK | Fleeca Token | 45.20 | 5 | 0.5 |
PEG | Pegassi Coin | 12,500.00 | 25 | 5.0 |
LIFE | LifeInvader Chain | 120.75 | 15 | 0.8 |
| Поле | Что делает |
|---|---|
label | Название на ноутбуке, берётся из файла локали |
short | Тикер |
basePrice | Цена, вокруг которой колеблется курс |
range | На сколько процентов в любую сторону он может колебаться |
difficulty | Чем выше, тем медленнее добыча |
color, icon | Цвет и иконка Font Awesome на ноутбуке |
Как двигается рынок. Каждые 15 минут каждая монета получает новую цену: её basePrice, смещённый вверх или вниз на случайную величину в пределах range процентов. Цена сохраняется, поэтому переживает перезапуск.
Как оплачивается майнинг. Владельцы делят хешрейт своего склада между монетами с помощью ползунков на ноутбуке. Каждую минуту каждая монета приносит выделенные GH/s × 0.01 ÷ difficulty. Одна карта Badger (0.10 GH/s) на MWX даёт 0.001 MWX в минуту. Хешрейт, не выделенный ни на одну монету, ничего не добывает.
Торговля. При покупке монеты деньги списываются с банковского счёта игрока за ноутбуком; при продаже деньги зачисляются на банковский счёт игрока за ноутбуком. Балансы принадлежат складу, поэтому торговать ими могут все, кому вы дали доступ.
Webhook — config/webhook.lua
Заголовок раздела «Webhook — config/webhook.lua»| Параметр | Что логируется |
|---|---|
Config.WebhookBuy | Каждая покупка криптовалюты на бирже |
Config.WebhookSell | Каждая продажа криптовалюты на бирже |
В каждом сообщении указаны имя персонажа, его идентификаторы license, steam и discord (Discord — в виде упоминания), монета, количество и итоговая сумма. Оставьте URL пустым, чтобы отключить этот лог. Текст сообщения находится в файле локали (webhook_buy, webhook_sell).
Этот файл загружается только на сервере, поэтому URL никогда не отправляются игрокам.
В locales/ поставляются одиннадцать: en, es, fr, de, it, pt, nl, ar, ja, ko, ru. Укажите нужный код в Config.Locale.
Чтобы добавить свой, скопируйте locales/en.lua в новый файл с названием по вашему коду, замените в строке Locales['en'] код на свой, переведите правую часть каждой строки и укажите этот код в Config.Locale. Ноутбук и магазин дилера читают один и тот же файл.
Отсутствующий в вашем файле ключ отображается как Translation [xx][key] does not exist — возврата к английскому нет, поэтому сохраните все ключи из en.lua.
Несколько подсказок написаны по-английски в зашифрованном коде (текст Press E to place Rig / install GPU и надпись Collect Package) и не берутся из файла локали.
Папка bridge/ открыта, чтобы вы могли подключить скрипт к тому, что работает на вашем сервере.
| Файл | Что охватывает |
|---|---|
bridge/bridge_client.lua | Определение фреймворка, Bridge.Notify, Bridge.ShowHelpNotification, колбэки и все взаимодействия: таргеты по сущностям, зонам и моделям для ox_target, qb-target или встроенного цикла drawtext |
bridge/bridge_server.lua | Определение фреймворка, игроки, наличные и банк, имена персонажей, а также AddItem / HasItem / RemoveItem / RegisterUsableItem через fmLib |
Другой ресурс уведомлений: измените Bridge.Notify в обоих файлах.
Другой ресурс таргета: три функции Add…Interaction и парные им Remove… в bridge_client.lua — единственные места, где используются таргеты.
Другой фреймворк: это блок определения в начале каждого файла и функции денег, игрока и имени — больше ничего. Предметы не зависят от фреймворка — они идут через fmLib.
Денежные счета. Склады оплачиваются с cash или bank (выбирает покупатель); покупки на ноутбуке и сделки используют bank. На ESX cash — это деньги игрока, а bank — банковский счёт.