01配置
快速安装 · config.lua · Agency-Minerjob V2
--[[ ============================================================================
AGENCY MINERJOB V2 · config.lua
----------------------------------------------------------------------------
A mining job in three places: the Davis Quartz quarry, the mine shaft in
the hills and the foundry in the city. Players break real rocks with
pickaxes and a drill, smelt ore into bars, cut rough gems, take contracts
from the foreman and sell on a market whose prices move.
Finds QBCore, Qbox or ESX by itself and runs fully standalone without any
of them, with or without a database or an inventory.
Admins change the most used values in the menu (/mineradmin). Those are
saved for the whole server and win over this file until "Reset to
config.lua" is pressed.
============================================================================ ]]
Config = {}
-- =============================================================================
-- 1. GENERAL
-- =============================================================================
Config.Framework = 'auto' -- 'auto' | 'qbcore' (also Qbox) | 'esx' | 'standalone'
Config.Locale = 'en' -- en de fr es it pt nl pl cs sv da no fi ro hu hr bg el tr ru uk ar hi ja ko zh
-- Debug mode: every request and every reward in the server console.
-- Admins can switch it in the menu as well.
Config.Debug = false
-- Where levels, tools, furnaces and contracts are saved. 'auto' uses oxmysql
-- when it runs (one table, created by itself) and otherwise the server's own
-- key value store, so a server without a database works too.
Config.Storage = 'auto' -- 'auto' | 'mysql' | 'kvp'
-- Who keeps the items:
-- 'auto' ox_inventory, qs-inventory, then the framework (qb-inventory,
-- ps, lj, jpr and other QB forks, ESX), then the miner's own
-- satchel in the menu (standalone without an inventory)
-- 'own' always the satchel in the menu, even with an inventory
Config.Inventory = 'auto' -- 'auto' | 'ox' | 'qs' | 'framework' | 'own'
-- Item pictures in the menu: 'auto' takes them from the inventory that runs
-- and falls back to the pictures in html/images. A link ('https://...' or
-- 'nui://my-inventory/images/') uses that folder instead.
Config.Images = 'auto'
-- Messages: Agency-Notify when it runs (free: https://agencyscripts.dev/en/product/notify),
-- otherwise the Agency style cards of this script.
Config.UseAgencyNotify = true
-- =============================================================================
-- 2. LOOK
-- =============================================================================
Config.UI = {
accent = '#E2B649', -- accent colour of the menu (Agency gold)
scale = 1.0, -- size of the menu, 0.8 to 1.3
}
-- =============================================================================
-- 3. KEYS AND COMMANDS
-- =============================================================================
Config.Keys = {
interact = 38, -- E: mine, talk to the foreman, use the furnace or the bench
}
Config.Commands = {
menu = 'miner', -- the menu, from anywhere (selling, buying and the furnace need the place)
level = 'mininglevel', -- level and progress (V1 command)
admin = 'mineradmin', -- admin page of the menu
}
-- =============================================================================
-- 4. PLACES
-- =============================================================================
-- Seven mining areas, each with its own blip, lowest level and ore. Six of
-- them are the terraces of Davis Quartz (the quarry east of Sandy Shores),
-- the seventh is the old mine shaft in the Tataviam Mountains.
--
-- A foreman buys ore, sells and repairs tools and hands out contracts; the
-- foreman of the pit serves every area of Davis Quartz. Rocks appear for
-- players within `radius` of `center`.
-- `ores`: weight at the area's first level, change per level and the bounds,
-- like V1. The weights of an area always add up to 100 %.
Config.Zones = {
quarry = {
label = 'Davis Quartz Pit',
center = vec3(2941.0, 2792.2, 41.5),
radius = 55.0,
level = 1, -- lowest level to mine here
blip = { sprite = 618, colour = 5, scale = 0.8 },
foreman = { model = 's_m_y_construct_01', coords = vec4(2956.95, 2744.58, 43.56, 286.29) },
ores = {
stone = { weight = 60.0, perLevel = -0.4, min = 20.0, max = 60.0 },
coal = { weight = 25.0, perLevel = -0.2, min = 10.0, max = 35.0 },
silver = { weight = 10.0, perLevel = -0.1, min = 8.0, max = 25.0 },
copper = { weight = 4.0, perLevel = 0.2, min = 4.0, max = 20.0 },
diamond = { weight = 0.8, perLevel = 0.3, min = 0.8, max = 15.0 },
emerald = { weight = 0.2, perLevel = 0.2, min = 0.2, max = 10.0 },
},
rocks = {
vec3(2951.82, 2769.76, 39.03), vec3(2969.16, 2777.00, 38.43), vec3(2973.73, 2775.26, 38.20),
vec3(2939.32, 2772.49, 39.27), vec3(2929.48, 2788.70, 39.91), vec3(2926.46, 2794.93, 40.77),
vec3(2930.37, 2811.02, 43.47), vec3(2925.04, 2807.35, 42.93), vec3(2927.23, 2799.80, 41.33),
vec3(2930.23, 2794.45, 40.64), vec3(2935.81, 2795.59, 40.69), vec3(2940.86, 2800.04, 40.95),
vec3(2935.34, 2802.25, 41.30), vec3(2932.22, 2806.70, 42.23), vec3(2941.54, 2805.18, 41.19),
vec3(2938.45, 2811.39, 42.57), vec3(2944.70, 2817.50, 42.73), vec3(2947.33, 2819.38, 42.68),
vec3(2954.88, 2819.88, 42.52), vec3(2953.42, 2756.13, 43.52), vec3(2943.83, 2742.77, 43.37),
vec3(2929.83, 2761.15, 44.70),
},
},
quarry_south = {
label = 'Davis Quartz South Bench',
center = vec3(2993.2, 2758.9, 43.3),
radius = 30.0,
level = 3,
blip = { sprite = 618, colour = 47, scale = 0.8 },
ores = {
stone = { weight = 35.0, perLevel = -0.3, min = 15.0, max = 35.0 },
coal = { weight = 25.0, perLevel = -0.15, min = 12.0, max = 25.0 },
silver = { weight = 20.0, perLevel = 0.05, min = 20.0, max = 28.0 },
copper = { weight = 18.0, perLevel = 0.1, min = 18.0, max = 28.0 },
diamond = { weight = 1.5, perLevel = 0.1, min = 1.5, max = 8.0 },
emerald = { weight = 0.5, perLevel = 0.06, min = 0.5, max = 5.0 },
},
rocks = {
vec3(2991.07, 2777.86, 43.28), vec3(2998.41, 2759.32, 42.95), vec3(2983.30, 2761.86, 42.79),
vec3(2977.84, 2741.26, 44.74), vec3(2980.57, 2748.40, 43.20), vec3(2985.72, 2750.95, 43.26),
vec3(2990.25, 2750.40, 43.60), vec3(3000.97, 2753.95, 43.70), vec3(3004.29, 2761.18, 43.84),
vec3(3006.38, 2768.63, 42.79), vec3(3005.94, 2773.78, 42.51),
},
},
north_face = {
label = 'Davis Quartz North Face',
center = vec3(2954.5, 2847.9, 47.2),
radius = 15.0,
level = 5,
blip = { sprite = 618, colour = 17, scale = 0.8 },
ores = {
stone = { weight = 25.0, perLevel = -0.2, min = 12.0, max = 25.0 },
coal = { weight = 15.0, perLevel = -0.1, min = 8.0, max = 15.0 },
copper = { weight = 45.0, perLevel = 0.1, min = 45.0, max = 55.0 },
silver = { weight = 12.0, perLevel = 0.05, min = 12.0, max = 18.0 },
diamond = { weight = 2.0, perLevel = 0.08, min = 2.0, max = 8.0 },
emerald = { weight = 1.0, perLevel = 0.05, min = 1.0, max = 5.0 },
},
rocks = {
vec3(2949.88, 2851.03, 48.35), vec3(2955.06, 2850.16, 47.60), vec3(2959.48, 2848.07, 46.81),
vec3(2952.21, 2847.91, 47.25), vec3(2956.31, 2845.92, 46.56), vec3(2947.42, 2848.02, 47.75),
vec3(2961.44, 2844.13, 46.06),
},
},
east_ridge = {
label = 'Davis Quartz East Ridge',
center = vec3(3027.2, 2760.2, 56.3),
radius = 20.0,
level = 8,
blip = { sprite = 618, colour = 55, scale = 0.8 },
ores = {
stone = { weight = 20.0, perLevel = -0.15, min = 10.0, max = 20.0 },
coal = { weight = 12.0, perLevel = -0.08, min = 6.0, max = 12.0 },
silver = { weight = 45.0, perLevel = 0.1, min = 45.0, max = 55.0 },
copper = { weight = 18.0, perLevel = 0.05, min = 18.0, max = 24.0 },
diamond = { weight = 3.0, perLevel = 0.1, min = 3.0, max = 10.0 },
emerald = { weight = 2.0, perLevel = 0.06, min = 2.0, max = 6.0 },
},
rocks = {
vec3(3027.83, 2772.18, 55.48), vec3(3030.89, 2767.52, 56.47), vec3(3028.25, 2764.44, 56.07),
vec3(3030.58, 2760.33, 57.46), vec3(3025.91, 2756.87, 56.01), vec3(3026.10, 2751.26, 57.28),
vec3(3020.68, 2748.78, 55.54),
},
},
south_terrace = {
label = 'Davis Quartz South Terrace',
center = vec3(2960.5, 2697.5, 54.8),
radius = 18.0,
level = 12,
blip = { sprite = 618, colour = 25, scale = 0.8 },
ores = {
stone = { weight = 25.0, perLevel = -0.2, min = 12.0, max = 25.0 },
coal = { weight = 10.0, perLevel = -0.05, min = 6.0, max = 10.0 },
silver = { weight = 15.0, perLevel = 0.0, min = 15.0, max = 15.0 },
copper = { weight = 15.0, perLevel = 0.0, min = 15.0, max = 15.0 },
diamond = { weight = 18.0, perLevel = 0.1, min = 18.0, max = 26.0 },
emerald = { weight = 12.0, perLevel = 0.1, min = 12.0, max = 20.0 },
ruby = { weight = 5.0, perLevel = 0.08, min = 5.0, max = 12.0 },
},
rocks = {
vec3(2969.42, 2697.80, 54.51), vec3(2966.65, 2694.42, 54.66), vec3(2962.93, 2697.26, 54.66),
vec3(2953.25, 2697.23, 55.14), vec3(2950.21, 2700.96, 54.86),
},
},
high_ridge = {
label = 'Davis Quartz High Ridge',
center = vec3(3053.3, 2731.7, 63.8),
radius = 28.0,
level = 20,
blip = { sprite = 618, colour = 46, scale = 0.8 },
ores = {
stone = { weight = 15.0, perLevel = -0.1, min = 8.0, max = 15.0 },
coal = { weight = 8.0, perLevel = -0.05, min = 4.0, max = 8.0 },
gold_ore = { weight = 40.0, perLevel = 0.15, min = 40.0, max = 55.0 },
silver = { weight = 12.0, perLevel = 0.0, min = 12.0, max = 12.0 },
copper = { weight = 10.0, perLevel = 0.0, min = 10.0, max = 10.0 },
ruby = { weight = 8.0, perLevel = 0.1, min = 8.0, max = 16.0 },
diamond = { weight = 5.0, perLevel = 0.08, min = 5.0, max = 12.0 },
emerald = { weight = 2.0, perLevel = 0.05, min = 2.0, max = 6.0 },
},
rocks = {
vec3(3041.40, 2719.44, 63.18), vec3(3047.69, 2717.88, 62.76), vec3(3045.97, 2722.41, 63.17),
vec3(3052.43, 2721.98, 63.14), vec3(3052.26, 2728.10, 63.63), vec3(3058.06, 2731.15, 64.68),
vec3(3056.00, 2737.53, 64.32), vec3(3060.63, 2741.50, 64.53), vec3(3058.53, 2746.53, 64.35),
vec3(3060.26, 2750.58, 64.33),
},
},
mineshaft = {
label = 'Mine Shaft',
center = vec3(-527.3, 1998.7, 126.7),
radius = 85.0,
level = 10,
blip = { sprite = 618, colour = 40, scale = 0.8 },
foreman = { model = 's_m_y_construct_02', coords = vec4(-594.96, 2091.30, 131.47, 67.65) },
ores = {
stone = { weight = 30.0, perLevel = -0.25, min = 10.0, max = 30.0 },
coal = { weight = 20.0, perLevel = -0.1, min = 8.0, max = 20.0 },
copper = { weight = 15.0, perLevel = 0.05, min = 15.0, max = 20.0 },
silver = { weight = 12.0, perLevel = 0.0, min = 12.0, max = 12.0 },
gold_ore = { weight = 12.0, perLevel = 0.15, min = 12.0, max = 24.0 },
diamond = { weight = 4.0, perLevel = 0.1, min = 4.0, max = 12.0 },
emerald = { weight = 3.0, perLevel = 0.08, min = 3.0, max = 10.0 },
ruby = { weight = 4.0, perLevel = 0.1, min = 4.0, max = 12.0 },
},
rocks = {
vec3(-589.25, 2050.53, 130.11), vec3(-580.30, 2037.82, 128.80), vec3(-572.68, 2022.37, 127.93),
vec3(-563.00, 2011.85, 127.45), vec3(-548.99, 1996.56, 127.28), vec3(-534.22, 1982.90, 127.18),
vec3(-531.53, 1978.88, 127.35), vec3(-523.71, 1981.21, 126.75), vec3(-516.25, 1977.32, 126.49),
vec3(-506.58, 1980.66, 126.14), vec3(-499.52, 1981.87, 125.88), vec3(-488.44, 1982.74, 124.64),
vec3(-469.78, 1993.57, 123.86), vec3(-458.53, 2003.33, 123.73),
},
},
}
-- The foundry: a buyer who pays for everything, the furnaces and the cutting
-- benches. Ore can be sold to every foreman as well.
Config.Foundry = {
label = 'LS Foundry',
blip = { coords = vec3(1090.18, -1999.51, 30.93), sprite = 473, colour = 47, scale = 0.8 },
buyer = { model = 'g_m_m_chemwork_01', coords = vec4(1090.18, -1999.51, 30.93, 146.24) },
furnaces = { vec3(1112.29, -2009.90, 31.46) },
benches = {
{ coords = vec4(1077.11, -1984.22, 31.02, 235.8), prop = 'gr_prop_gr_speeddrill_01c' },
{ coords = vec4(1075.19, -1985.45, 30.92, 144.89), prop = 'gr_prop_gr_speeddrill_01c' },
},
}
Config.Blips = {
places = true, -- a blip for every mining area and the foundry
foremen = true, -- a blip for every foreman
foremanBlip = { sprite = 207, colour = 5, scale = 0.7 },
rocks = true, -- a small dot for every rock, only while you are near its area
rockDistance = 150.0, -- metres from an area where its rocks show on the map
}
-- Arrows above the rocks while you are close: gold where you can mine now,
-- grey where the rock is broken or needs a higher level.
Config.Markers = {
enabled = true,
distance = 30.0, -- metres
type = 2, -- GTA marker type, 2 is the arrow
size = 0.45,
ready = { 226, 182, 73, 210 },
waiting = { 150, 155, 165, 120 },
}
-- =============================================================================
-- 5. ITEMS
-- =============================================================================
-- The names of the items in your inventory. V1 names are kept (stone, coal,
-- copper, silver, diamond, emerald), the rest is new in V2: see install/ for
-- ox_inventory, qb-core and ESX. `ox` sets another name for ox_inventory only.
-- `price` is the range the market moves in, per piece.
Config.Items = {
stone = { kind = 'ore', price = { 250, 500 } },
coal = { kind = 'ore', price = { 500, 1000 } },
copper = { kind = 'ore', price = { 2000, 3000 } },
silver = { kind = 'ore', price = { 1000, 2000 } },
gold_ore = { kind = 'ore', price = { 3500, 5000 } },
diamond = { kind = 'gem', price = { 3000, 5000 } },
emerald = { kind = 'gem', price = { 8000, 10000 } },
ruby = { kind = 'gem', price = { 5000, 7000 } },
copper_bar = { kind = 'bar', price = { 11000, 15000 } },
silver_bar = { kind = 'bar', price = { 6500, 10000 } },
gold_bar = { kind = 'bar', price = { 20000, 26000 } },
cut_diamond = { kind = 'cut', price = { 6500, 9000 } },
cut_emerald = { kind = 'cut', price = { 15000, 19000 } },
cut_ruby = { kind = 'cut', price = { 9000, 12000 } },
pickaxe = { kind = 'tool' },
reinforced_pickaxe = { kind = 'tool' },
mining_drill = { kind = 'tool' },
}
-- QBCore with its own inventory: items qb-core does not know yet are added
-- while the server runs, so nothing has to be edited in qb-core. Pictures for
-- your inventory are in install/images.
Config.RegisterItems = true
-- =============================================================================
-- 6. TOOLS
-- =============================================================================
-- Sold and repaired by every foreman. A better tool means fewer and easier
-- rounds of the mining game and more ore per rock. `uses` is how often it
-- works before it breaks; the foreman repairs it for `repair`.
Config.RequireTool = true -- false: without a tool players mine like with the basic pickaxe (V1 style)
Config.Tools = {
{ item = 'pickaxe', price = 750, level = 1, uses = 60, rounds = 3, zone = 1.0, yield = 0, repair = 150,
prop = 'prop_tool_pickaxe', style = 'pickaxe' },
{ item = 'reinforced_pickaxe', price = 3500, level = 10, uses = 150, rounds = 3, zone = 1.3, yield = 1, repair = 600,
prop = 'prop_tool_pickaxe', style = 'pickaxe' },
{ item = 'mining_drill', price = 12500, level = 25, uses = 300, rounds = 2, zone = 1.55, yield = 2, repair = 2000,
prop = 'hei_prop_heist_drill', style = 'drill' },
}
-- =============================================================================
-- 7. MINING
-- =============================================================================
Config.Mining = {
distance = 2.4, -- metres to a rock
difficulty = 'normal', -- 'easy' | 'normal' | 'hard': size and speed of the gold zone
hitsPerRock = 3, -- times a rock can be mined before it breaks
respawn = 300, -- seconds until a broken rock is back
cooldown = 3, -- seconds between two minings of one player
amount = { min = 1, max = 2 }, -- pieces per mining; tools add their yield on top
failWear = true, -- a lost mining game costs one use of the tool too
rockModels = { 'cs_x_rubweec' }, -- base game props, one is picked per rock
brokenModel = 'prop_rock_5_a', -- what is left of a broken rock, '' = nothing
}
-- =============================================================================
-- 8. LEVELS
-- =============================================================================
-- Same curve as V1. V1 levels are taken over on the first start.
Config.Levels = {
max = 100,
xpMining = 8, -- XP per mining
xpPerLevel = 1.5, -- plus this much per level
xpFormula = function(level) return math.floor(120 * (level ^ 1.8)) end,
}
-- =============================================================================
-- 9. SMELTING (foundry furnaces)
-- =============================================================================
-- Ore goes in, bars come out after a while, also while the player is away.
-- They are picked up at the furnace.
Config.Smelting = {
enabled = true,
level = 5, -- lowest level to use a furnace
seconds = 20, -- per bar
maxQueue = 20, -- bars in the furnace at once per player
fuel = { item = 'coal', amount = 1 }, -- per bar
xp = 12, -- per bar picked up
recipes = {
{ from = 'copper', amount = 4, to = 'copper_bar' },
{ from = 'silver', amount = 4, to = 'silver_bar' },
{ from = 'gold_ore', amount = 4, to = 'gold_bar' },
},
}
-- =============================================================================
-- 10. GEM CUTTING (foundry benches)
-- =============================================================================
-- A precise game: every round has to hit. A miss can break the stone.
Config.Cutting = {
enabled = true,
level = 15,
rounds = 3,
difficulty = 'hard',
breakChance = 25, -- % that a miss breaks the rough gem
xp = 20,
gems = {
{ from = 'diamond', to = 'cut_diamond' },
{ from = 'emerald', to = 'cut_emerald' },
{ from = 'ruby', to = 'cut_ruby' },
},
}
-- =============================================================================
-- 11. CONTRACTS (foreman)
-- =============================================================================
-- Each player gets a few offers that change every `refresh` minutes. One can
-- be taken at a time; delivered in time at any foreman, it pays the market
-- value times `bonus` and XP.
Config.Contracts = {
enabled = true,
offers = 3,
refresh = 20, -- minutes
minutes = { min = 20, max = 45 }, -- time to deliver
bonus = 1.35,
xp = 60,
pool = {
{ item = 'stone', min = 15, max = 30, level = 1 },
{ item = 'coal', min = 10, max = 20, level = 1 },
{ item = 'silver', min = 6, max = 14, level = 1 },
{ item = 'copper', min = 5, max = 12, level = 3 },
{ item = 'copper_bar', min = 2, max = 6, level = 5 },
{ item = 'silver_bar', min = 2, max = 6, level = 5 },
{ item = 'gold_ore', min = 4, max = 10, level = 10 },
{ item = 'gold_bar', min = 1, max = 4, level = 12 },
{ item = 'cut_diamond', min = 1, max = 3, level = 15 },
{ item = 'cut_ruby', min = 1, max = 3, level = 15 },
{ item = 'cut_emerald', min = 1, max = 2, level = 20 },
},
}
-- =============================================================================
-- 12. MARKET AND MONEY
-- =============================================================================
-- Prices move within the range of each item every `update` minutes, by up to
-- `swing` percent (V1 dynamic pricing).
Config.Market = {
dynamic = true,
update = 10, -- minutes
swing = 20, -- percent
payTo = 'cash', -- what selling and contracts pay into: 'cash' | 'bank'
buyWith = 'cash', -- what tools and repairs are paid with: 'cash' | 'bank'
currency = '$',
}
-- =============================================================================
-- 13. ADMINS
-- =============================================================================
-- Players with the ACE below, group.admin or group.superadmin, one of the
-- framework groups, or one of the identifiers.
Config.Admin = {
ace = 'agency.minerjob.admin',
groups = { 'admin', 'god', 'superadmin' },
identifiers = {
-- 'license:xxxxxxxx', 'discord:xxxxxxxx',
},
}
-- =============================================================================
-- 14. STANDALONE
-- =============================================================================
-- Without QBCore, Qbox or ESX:
-- money: 'auto' uses Agency-Banking when it runs, otherwise the miner's own
-- wallet in the menu. 'hooks' uses the functions below.
-- items: without an inventory the satchel in the menu keeps them; the
-- hooks connect your own inventory instead.
Config.Standalone = {
money = 'auto', -- 'auto' | 'banking' | 'wallet' | 'hooks'
walletStart = 1000, -- a new miner's wallet, enough for the first pickaxe
-- getMoney = function(src, account) return 0 end, -- account: 'cash' | 'bank'
-- removeMoney = function(src, account, amount) return true end,
-- addMoney = function(src, account, amount) return true end,
-- itemCount = function(src, item) return 0 end,
-- addItem = function(src, item, amount) return true end,
-- removeItem = function(src, item, amount) return true end,
}
-- =============================================================================
-- 15. YOUR OWN WORDING
-- =============================================================================
-- Any text of the language files can be replaced here and survives updates:
-- Config.Text = { ui_sell_all = 'Sell it all!', notify_title = 'Quarry' }
Config.Text = {}
02SQL 文件
可选:资源启动时会自动创建这些数据表。只有在手动配置数据库时才需要导入此文件:
-- Agency-Minerjob V2
-- Optional: the script creates this table by itself on the first start when oxmysql runs.
-- Only needed when your database user may not create tables.
-- Without oxmysql everything is saved in the server's key value store instead.
-- Levels from V1 (player_mining_skills) are taken over on the first start; that table stays untouched.
CREATE TABLE IF NOT EXISTS `agency_minerjob` (
`scope` VARCHAR(16) NOT NULL,
`id` VARCHAR(96) NOT NULL,
`data` LONGTEXT NOT NULL,
`updated` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`scope`, `id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+值得了解
config.lua 中的每个选项都有作用,分为 15 个部分,涵盖框架设置到自定义文本。最常用的值也可以在游戏内的管理页面中为整个服务器修改。
- 常规与外观
- Config.Framework、Config.Locale、Config.Debug、Config.Storage、Config.Inventory、Config.Images 和 Config.UseAgencyNotify 用于选择脚本的运行方式。Config.UI 用于设置菜单的强调色和大小。
- 按键与命令
- Config.Keys 用于设置交互按键,默认为 E。Config.Commands 用于设置 /miner、/mininglevel 和 /mineradmin 命令。
- 地点
- Config.Zones 包含七个采矿区域,包括中心点、半径、最低等级、工头,以及按等级设置权重的矿石。Config.Foundry 用于放置收购商、熔炉和切割台。Config.Blips 和 Config.Markers 用于设置地图标记和岩石上方的箭头。
- 物品与工具
- Config.Items 用于定义每种物品的名称、类型和市场价格范围。Config.RequireTool 用于设置是否需要工具,Config.Tools 用于设置每种工具的价格、等级、使用次数、轮数、区域大小、额外矿石和维修费用。
- 采矿与等级
- Config.Mining 用于设置距离、难度、每块岩石的采矿次数、重生时间、冷却时间和每次采矿获得的矿石数量。Config.Levels 包含最高等级、每次采矿获得的 XP 和 XP 曲线。
- 铸造厂
- Config.Smelting 设置最低等级、每根金属锭所需秒数、队列、每根金属锭所需煤炭和配方。Config.Cutting 设置等级、轮数、难度,以及失误时石头破碎的几率。
- 合约与市场
- Config.Contracts 设置报价数量、报价更新频率、交付时限、奖励和物品池。Config.Market 设置价格是否浮动、浮动频率和幅度、资金的收入与支出位置,以及货币符号。
- 管理员、独立模式与文本
- Config.Admin 设置管理员的 ACE、群组和标识符。Config.Standalone 为不使用框架的服务器连接金钱和物品。Config.Text 可覆盖语言文件中的任意文本。
?常见问题
管理员页面上的设置会更改什么?
调试模式、是否需要工具、合约、铸造、切割、浮动价格、XP 和价格倍率、岩石重生,以及每块岩石的开采次数。这些设置会保存到整个服务器,并优先于 config.lua,直到按下 Reset to config.lua 或在控制台运行 minerjob reset。
如何使用自定义文本?
将 locales/en.lua 中的键和自定义文本放入 Config.Text,例如 Config.Text = { ui_sell_all = '全部卖掉!' }。自定义文本会覆盖所有语言,并且在更新后仍会保留。
