Pular para o conteúdo

Personalização

Tudo o que você deve alterar está em quatro pastas abertas: config/, locales/, bridge/ e items/. O restante do código Lua possui proteção escrow.


ArquivoO que ele decideAberto?
config/config.luaIdioma, sistema de interação, notificações, entregas, mineração offline, o NPC vendedor e seu blipSim
config/warehouses.luaOs três armazéns: preço, vagas de rig, imagem, onde você chega, onde as caixas caem; configurações de saída e blip de propriedadeSim
config/shop.luaCada peça na loja do laptop: preço, watts, hashrate, categoriaSim
config/cryptos.luaAs moedas: nome, preço base, volatilidade, dificuldade, cor, íconeSim
config/webhook.luaOs dois webhooks do Discord. Carregado apenas no servidorSim
locales/*.luaTodos os textos, no jogo e no laptopSim
bridge/bridge_client.luaNotificações, texto de ajuda, callbacks e o wrapper de ox_target / qb-target / drawtextSim
bridge/bridge_server.luaJogadores, dinheiro, nomes e itens através do fmLibSim
items/Definições de itens para ox, qb e ESX, e os ícones dos itensSim
html/A loja do vendedor e a tela do laptop, além das imagens dos armazéns em html/img/Sim, sem escrow
mic_crypto_props/Os modelos transmitidos (streamed) e as pré-visualizações 3D que o laptop mostraApenas assets

OpçãoO que fazPadrão
Config.LocaleQual arquivo em locales/ é usado'en'
Config.Interactionox_target, qb-target ou drawtext (um aviso Pressione E)'ox_target'
Config.CustomLaptopNotificacionstrue: mensagens da loja e negociações aparecem como avisos na tela do laptop. false: notificações normais do seu frameworktrue
Config.ReceiveProductsDirectlyToInventorytrue: peças compradas no laptop vão direto para o inventário. false: uma caixa é deixada no armazém para ser recolhidafalse
Config.OfflineMiningSe as rigs mineram enquanto o dono está desconectadotrue
Config.OfflineRateVelocidade da mineração offline. 1.0 é velocidade total, 0.5 metade1.0

O nome da opção CustomLaptopNotificacions está escrito dessa forma no arquivo — mantenha a grafia.

OpçãoO que fazPadrão
Config.NPC.modelModelo de ped do vendedors_m_y_ammucity_01
Config.NPC.coordsOnde o vendedor fica, com direçãoPerto do porto
Config.NPC.scenarioO que o vendedor está fazendoWORLD_HUMAN_CLIPBOARD
Config.NPC.interactDistanceQuão perto você precisa estar2.5
Config.Blip.enableMostrar o vendedor no mapatrue
Config.Blip.sprite / color / scaleAparência do blip478 / 5 / 0.8
Config.Blip.nameNome do blipCrypto Warehouse Shop

ArmazémidPreçoVagas de rig (rigSlots)
Pequenowarehouse_small50,0008
Médiowarehouse_medium150,00021
Grandewarehouse_large350,00037

Cada armazém possui estes campos:

CampoO que faz
idNome interno. Mantenha os três ids como estão
name, descriptionTexto da loja, vindo do arquivo de idioma
priceCusto, pago em dinheiro ou banco — o comprador escolhe
rigSlotsO número mostrado na loja
imageImagem na loja, vinda de html/img/
security, powerRótulos mostrados na loja
viewCoordsPara onde Visualizar envia o comprador para olhar antes de pagar
insideCoordsOnde você chega ao entrar; a saída também fica aqui
packageCoordsOnde a caixa de entrega aparece

Acima da lista:

OpçãoO que fazPadrão
Config.ExitCoordsOnde todos saem, independentemente do armazém em que estavamAo lado do vendedor
Config.WarehouseBlipsSprite, cor e escala do blip para os armazéns que você possui478, verde, 0.7

Config.Shop.Categories define as quatro abas da loja do laptop (GPUs, PSUs, ventoinhas, racks). Config.Shop.Items é a lista de peças. Compras no laptop são sempre pagas pelo banco.

CampoO que faz
idO nome do item. Deve corresponder a um item no seu inventário e a um modelo em mic_crypto_props
categorygpus, psus, fans ou racks
label, descriptionTexto da loja, vindo do arquivo de idioma
priceCusto
imageNome do arquivo de ícone
wattsPara GPUs e ventoinhas: quanto consome. Para PSUs: quanto fornece
hashrateApenas GPUs: GH/s por placa
temperature, coolingCalor por GPU e resfriamento por ventoinha, usados pela tabela de balanceamento no topo do arquivo. Esta versão não aplica isso no jogo — apenas a energia é exigida

Preços padrão:

PeçaPreçoPeçaPreço
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

O bloco de comentários no topo de config/shop.lua detalha quais PSUs e ventoinhas cada nível de GPU precisa para uma rig completa. Leia-o antes de alterar watts — é a maneira mais rápida de manter cada nível montável.

Como a energia é verificada. Quando uma GPU ou ventoinha é instalada, o consumo total da rig (todas as GPUs e ventoinhas) mais a nova peça deve caber dentro do total de suas PSUs. Se não couber, a peça é recusada com uma mensagem de energia insuficiente.


Quatro moedas já vêm configuradas. Adicione ou remova entradas livremente; uma nova moeda é adicionada à tabela de mercado na próxima inicialização.

MoedaNomePreço baserangedifficulty
MWXMerryweather Crypto850.50101.0
FLKFleeca Token45.2050.5
PEGPegassi Coin12,500.00255.0
LIFELifeInvader Chain120.75150.8
CampoO que faz
labelNome mostrado no laptop, vindo do arquivo de idioma
shortSímbolo (ticker)
basePriceO preço em torno do qual a moeda oscila
rangeO quanto ela pode oscilar, em porcentagem para mais/menos
difficultyQuanto maior, mais lento para minerar
color, iconCor e ícone do Font Awesome no laptop

Como o mercado se move. A cada 15 minutos, cada moeda recebe um novo preço: seu basePrice sobe ou desce por um valor aleatório dentro de range por cento. O preço é salvo, sobrevivendo a reinicializações.

Como a mineração paga. Os donos dividem o hashrate do seu armazém entre as moedas com os controles deslizantes do laptop. A cada minuto, cada moeda ganha GH/s alocado × 0.01 ÷ difficulty. Uma placa Badger (0.10 GH/s) em MWX gera 0.001 MWX por minuto. Hashrate não alocado a uma moeda não minera nada.

Negociação. Comprar uma moeda retira o dinheiro do banco do jogador que está no laptop; vender deposita no banco do jogador que está no laptop. Os saldos pertencem ao armazém, portanto qualquer pessoa com quem você o compartilhe pode negociá-los.


OpçãoO que é registrado
Config.WebhookBuyCada compra de cripto na corretora
Config.WebhookSellCada venda de cripto na corretora

Cada mensagem contém o nome do personagem, seus identificadores license, steam e discord (o do Discord como menção), a moeda, a quantidade e o total. Deixe uma URL vazia para desativar esse log. O texto da mensagem fica no arquivo de idioma (webhook_buy, webhook_sell).

Este arquivo é carregado apenas no servidor, de modo que as URLs nunca são enviadas aos jogadores.


Onze vêm em locales/: en, es, fr, de, it, pt, nl, ar, ja, ko, ru. Defina Config.Locale com o código desejado.

Para adicionar um, copie locales/en.lua para um novo arquivo com o nome do seu código, altere a linha Locales['en'] para o seu código, traduza o lado direito de cada linha e defina Config.Locale para ele. O laptop e a loja do vendedor leem o mesmo arquivo.

Uma chave ausente no seu arquivo aparece como Translation [xx][key] does not exist — não há fallback para o inglês, então mantenha todas as chaves de en.lua.

Alguns avisos estão escritos em inglês no código protegido por escrow (o texto de ajuda Press E to place Rig / install GPU e o rótulo Collect Package) e não vêm do arquivo de idioma.


A pasta bridge/ é aberta para que você possa adaptar o script ao que o seu servidor utiliza.

ArquivoO que cobre
bridge/bridge_client.luaDetecção de framework, Bridge.Notify, Bridge.ShowHelpNotification, callbacks e todas as interações: targets de entidade, zona e modelo para ox_target, qb-target ou o loop drawtext
bridge/bridge_server.luaDetecção de framework, jogadores, dinheiro e banco, nomes de personagens e AddItem / HasItem / RemoveItem / RegisterUsableItem através do fmLib

Um resource de notificação diferente: altere Bridge.Notify em ambos os arquivos.

Um resource de target diferente: as três funções Add…Interaction e suas parceiras Remove… em bridge_client.lua são os únicos lugares onde os targets são tocados.

Um framework diferente: o bloco de detecção no topo de cada arquivo e as funções de dinheiro, jogador e nome são tudo o que existe. Os itens não dependem do framework — eles passam pelo fmLib.

Contas de dinheiro. Os armazéns são pagos com cash ou bank (o comprador escolhe); compras e negociações no laptop usam bank. No ESX, cash é o dinheiro em mãos do jogador e bank é a conta bancária.