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

Настройка

Всё, что предполагается менять, находится в четырёх открытых папках: 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.LocaleКакой файл из locales/ используется'en'
Config.Interactionox_target, qb-target или drawtext (подсказка Нажмите E)'ox_target'
Config.CustomLaptopNotificacionstrue: сообщения магазина и сделок появляются всплывающими уведомлениями на экране ноутбука. false: обычные уведомления фреймворкаtrue
Config.ReceiveProductsDirectlyToInventorytrue: купленные на ноутбуке детали сразу попадают в инвентарь. false: на складе появляется коробка, которую нужно забратьfalse
Config.OfflineMiningМайнят ли фермы, пока владелец отключёнtrue
Config.OfflineRateСкорость офлайн-майнинга. 1.0 — полная скорость, 0.5 — половина1.0

Параметр CustomLaptopNotificacions в файле написан именно так — сохраняйте написание.

ПараметрЧто делаетПо умолчанию
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

СкладidЦенаМеста под фермы (rigSlots)
Маленькийwarehouse_small50,0008
Среднийwarehouse_medium150,00021
Большойwarehouse_large350,00037

У каждого склада есть следующие поля:

ПолеЧто делает
idВнутреннее имя. Не меняйте три id
name, descriptionТекст в магазине, берётся из файла локали
priceСтоимость, оплачивается наличными или с банка — покупатель выбирает сам
rigSlotsЧисло, которое показывается в магазине
imageКартинка в магазине, из html/img/
security, powerПодписи, показываемые в магазине
viewCoordsКуда кнопка Просмотр отправляет покупателя осмотреться перед оплатой
insideCoordsГде вы появляетесь при входе; здесь же находится и выход
packageCoordsКуда падает коробка с доставкой

Над списком расположены:

ПараметрЧто делаетПо умолчанию
Config.ExitCoordsГде все выходят, из какого бы склада они ни вышлиРядом с дилером
Config.WarehouseBlipsСпрайт, цвет и масштаб блипа для принадлежащих вам складов478, зелёный, 0.7

Config.Shop.Categories задаёт четыре вкладки магазина на ноутбуке (видеокарты, блоки питания, вентиляторы, стойки). Config.Shop.Items — это список деталей. Покупки на ноутбуке всегда оплачиваются с банка.

ПолеЧто делает
idНазвание предмета. Должно совпадать с предметом в вашем инвентаре и моделью в mic_crypto_props
categorygpus, psus, fans или racks
label, descriptionТекст в магазине, берётся из файла локали
priceСтоимость
imageИмя файла иконки
wattsДля видеокарт и вентиляторов — сколько они потребляют. Для блоков питания — сколько выдают
hashrateТолько для видеокарт: GH/s на одну карту
temperature, coolingНагрев видеокарты и охлаждение вентилятора, используются в балансовой таблице в начале файла. В этой версии игра их не учитывает — применяется только ограничение по питанию

Цены по умолчанию:

ДетальЦенаДетальЦена
Badger Comm-100450PostOP 500W150
Wiwang PC-G900Whiz Wireless 850W350
eCola OC Edition1,600Merryweather 1600W800
iFruit Pro Max2,800Darrell Brother Fan45
Sprunk Xtreme4,500FlyUS Aero Fan120
Standard 5-Slot Rig1,200Atomic Vortex 120mm250

В блоке комментариев в начале config/shop.lua разобрано, какие блоки питания и вентиляторы нужны каждому классу видеокарт для полной фермы. Прочитайте его, прежде чем менять watts — это самый быстрый способ сохранить возможность собрать ферму любого уровня.

Как проверяется питание. При установке видеокарты или вентилятора суммарное потребление фермы (все видеокарты и вентиляторы) плюс новая деталь должно укладываться в сумму мощностей её блоков питания. Если не укладывается, деталь отклоняется с сообщением недостаточно питания.


В комплекте четыре монеты. Записи можно свободно добавлять и удалять; новая монета попадает в таблицу рынка при следующем запуске.

МонетаНазваниеБазовая ценаrangedifficulty
MWXMerryweather Crypto850.50101.0
FLKFleeca Token45.2050.5
PEGPegassi Coin12,500.00255.0
LIFELifeInvader Chain120.75150.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 в минуту. Хешрейт, не выделенный ни на одну монету, ничего не добывает.

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


ПараметрЧто логируется
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 — банковский счёт.