146 lines
5.3 KiB
Lua
146 lines
5.3 KiB
Lua
Config = {}
|
|
|
|
-- =====================
|
|
-- ALLGEMEIN
|
|
-- =====================
|
|
|
|
-- Discord Webhook URL für Blackmarket-Logs (leer lassen = deaktiviert)
|
|
-- WICHTIG: Niemals die Webhook-URL im öffentlichen Code teilen!
|
|
Config.WebhookURL = "https://discordapp.com/api/webhooks/1490122439026540714/F-do1bWGLaO4etCOal4nrjxByDfBaQccqmUwLmlXJkUqaxk-skc93Ib1UljbYPE9KuyI"
|
|
|
|
-- Interaktionsdistanz zum NPC (in Metern)
|
|
Config.InteractionDistance = 2.5
|
|
|
|
-- Erkennungsdistanz für NPC-Suche (Performance-Optimierung)
|
|
Config.CoarseDistance = 50.0
|
|
|
|
-- =====================
|
|
-- BENACHRICHTIGUNGEN
|
|
-- =====================
|
|
Config.Notification = {
|
|
event = 'hex_4_hud:notify', -- Event-Name für Benachrichtigungen
|
|
title = 'Schwarzmarkt', -- Standard-Titel
|
|
duration = 3000, -- Dauer in ms
|
|
}
|
|
|
|
-- Help-Notify (E-Taste Anzeige)
|
|
Config.HelpNotify = {
|
|
export = 'hex_4_hud', -- Resource-Name
|
|
showFunc = 'ShowHelpNotify', -- exports[export]:showFunc(text, key)
|
|
hideFunc = 'HideHelpNotify', -- exports[export]:hideFunc()
|
|
}
|
|
|
|
-- =====================
|
|
-- BEZAHLUNG
|
|
-- =====================
|
|
-- 'money' = Bargeld | 'black_money' = Schwarzgeld | 'both' = Schwarzgeld zuerst, Rest Bargeld
|
|
Config.PaymentMethod = 'black_money'
|
|
|
|
-- =====================
|
|
-- NPC
|
|
-- =====================
|
|
Config.DefaultNpcModel = 's_m_y_dealer_01'
|
|
Config.DefaultNpcScenario = 'WORLD_HUMAN_DRUG_DEALER'
|
|
|
|
-- =====================
|
|
-- UI THEME (wird als CSS-Variablen ans Frontend gesendet)
|
|
-- =====================
|
|
Config.Theme = {
|
|
accent = '#dc2626', -- Hauptakzentfarbe (Rot)
|
|
accentLight = '#ef4444', -- Helle Akzentfarbe
|
|
surfaceBase = 'rgba(10, 10, 14, 0.97)', -- Hintergrundfarbe
|
|
gridTileHeight = 160, -- Höhe der Kategorie-Kacheln in Pixel
|
|
}
|
|
|
|
-- =====================
|
|
-- STANDORT-SYSTEM
|
|
-- =====================
|
|
-- 'fixed' = alle Standorte immer aktiv | 'rotating' = zufällige Rotation
|
|
Config.LocationMode = 'rotating'
|
|
|
|
-- Rotation-Einstellungen (nur bei LocationMode = 'rotating')
|
|
Config.Rotation = {
|
|
maxActive = 1, -- Wie viele Standorte gleichzeitig aktiv
|
|
intervalMinutes = 720, -- Rotation alle X Minuten
|
|
}
|
|
|
|
-- Alle möglichen Standorte
|
|
-- Bei 'fixed': ALLE sind aktiv | Bei 'rotating': maxActive werden zufällig gewählt
|
|
Config.Locations = {
|
|
['bm_1'] = {
|
|
label = 'Schwarzmarkt',
|
|
coords = vector4(720.71, -1148.72, 23.74, 175.47),
|
|
npcModel = nil, -- nil = Config.DefaultNpcModel
|
|
npcScenario = nil, -- nil = Config.DefaultNpcScenario
|
|
},
|
|
['bm_2'] = {
|
|
label = 'Schwarzmarkt',
|
|
coords = vector4(714.67224121094, -695.48962402344, 31.754278182983, 0.17864993214607),
|
|
npcModel = nil,
|
|
npcScenario = nil,
|
|
},
|
|
}
|
|
|
|
-- =====================
|
|
-- KATEGORIEN & ITEMS (Grid-Kacheln auf der Startseite)
|
|
-- =====================
|
|
-- Felder pro Kategorie:
|
|
-- id = Eindeutige ID (wird intern für Filter verwendet)
|
|
-- label = Anzeigename auf der Kachel
|
|
-- icon = Icon-Name (crosshairs, pills, wrench, shield, package)
|
|
-- image = Hintergrundbild-URL (Unsplash o.ä., leer = Fallback-Icon + Gradient)
|
|
-- color = Rahmen-/Akzentfarbe als Hex (z.B. '#dc2626')
|
|
-- gridSize = Breite: 'small' (1 Spalte), 'medium' (2 Spalten), 'large' (volle Breite)
|
|
-- height = Individuelle Höhe in Pixel (optional, Standard = Config.Theme.gridTileHeight)
|
|
-- items = Array der kaufbaren Items { name, price, limit, label (optional) }
|
|
|
|
Config.Categories = {
|
|
{
|
|
id = 'waffen',
|
|
label = 'Waffen',
|
|
icon = 'crosshairs',
|
|
image = 'https://images.unsplash.com/photo-1595590424283-b8f17842773f?w=600&q=80',
|
|
color = '#dc2626',
|
|
gridSize = 'medium',
|
|
items = {
|
|
{ name = 'weapon_pistol', price = 15000, limit = 1, label = 'Pistole' },
|
|
{ name = 'weapon_knife', price = 2000, limit = 3, label = 'Messer' },
|
|
{ name = 'ammo_mg', price = 500, limit = 10, label = 'Munition' },
|
|
},
|
|
},
|
|
{
|
|
id = 'drogen',
|
|
label = 'Drogen',
|
|
icon = 'pills',
|
|
image = 'https://images.unsplash.com/photo-1639677425025-e4f43c990156?w=600&q=80',
|
|
color = '#a855f7',
|
|
gridSize = 'small',
|
|
items = {
|
|
{ name = 'weed_baggy', price = 200, limit = 20, label = 'Weed Tüte' },
|
|
{ name = 'coke_baggy', price = 500, limit = 10, label = 'Koks Tüte' },
|
|
{ name = 'meth_baggy', price = 600, limit = 10, label = 'Meth Tüte' },
|
|
},
|
|
},
|
|
{
|
|
id = 'werkzeuge',
|
|
label = 'Werkzeuge',
|
|
icon = 'wrench',
|
|
image = 'https://images.unsplash.com/photo-1514443031610-8c063c7a9822?w=600&q=80',
|
|
color = '#f97316',
|
|
gridSize = 'large',
|
|
items = {
|
|
{ name = 'lockpick', price = 800, limit = 5, label = 'Dietrich' },
|
|
{ name = 'advancedlockpick', price = 2500, limit = 2, label = 'Profi-Dietrich' },
|
|
},
|
|
},
|
|
}
|
|
|
|
-- =====================
|
|
-- KAUFLIMITS
|
|
-- =====================
|
|
-- 'restart' = Limits reset bei Server-Restart (kein DB nötig)
|
|
-- 'daily' = Limits reset täglich um Mitternacht (braucht DB)
|
|
-- 'interval' = Limits reset alle X Minuten (kein DB nötig)
|
|
Config.LimitResetMode = 'interval'
|
|
Config.LimitResetIntervalMinutes = 120 -- Nur bei 'interval' Modus
|