Zum Hauptinhalt springen

🛒 Shop System

Ein hochwertiges, modernes Spieler-Laden-System für RedM mit Glasmorphismus-UI und umfangreichen Verwaltungsfunktionen.

✨ Features

🏪 Spieler-eigene Läden

  • Kaufsystem - Spieler können Läden für konfigurierbaren Preis kaufen
  • Dynamisches Inventar - Besitzer entscheidet, was verkauft wird
  • Verwaltungs-Dashboard - Gesicherter Bereich für Geschäftsführung

💼 Shop-Verwaltung

  • Lager befüllen - Items aus eigenem Inventar hinzufügen
  • Preise setzen - Individuelle Preise für jedes Item
  • Kategorisierung - Items per Dropdown kategorisieren (Essen, Waffen, Sonstiges, etc.)
  • Bearbeitung - Preis und Kategorie jederzeit ändern
  • Entfernung - Items aus dem Shop entfernen
  • Kasse - Einnahmen direkt in die "Shop-Kasse", jederzeit abhebbar

⏱️ Inaktivitäts-System

  • Auto-Wipe - Läden werden nach Inaktivität automatisch freigegeben
  • Aufräumung - Entfernt Besitzer und leert Inventar
  • Aktivitäts-Tracking - Aktionen wie Items hinzufügen oder Geld abheben setzen Timer zurück

🖥️ Benutzeroberfläche

  • Modernes Design - Glasmorphismus-Ästhetik mit dunklen Transparenzen
  • Echtzeit-Updates - Lager und Kasse aktualisieren sich sofort
  • Zwei Ansichten - "Shop-Ansicht" für Kunden, "Verwaltungs-Ansicht" für Besitzer

📥 Installation

  1. Kopiere mulderdev_shop in deinen resources Ordner
  2. Importiere install.sql in deine Datenbank
  3. Passe config.lua an (siehe Config.MaxInactivityDays)
  4. Füge ensure mulderdev_shop zu deiner server.cfg hinzu

Upgrade von V1

ALTER TABLE `mulderdev_shops` ADD COLUMN `last_active` TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE `mulderdev_shop_inventory` ADD COLUMN `category` varchar(50) DEFAULT 'misc';

⚙️ Konfiguration

Allgemeine Einstellungen

Config.CanBuyShops = true       -- Spieler-Eigentum aktivieren
Config.DefaultShopPrice = 1000.0
Config.MaxInactivityDays = 14 -- Auto-Wipe nach 14 Tagen Inaktivität
Config.Locale = 'de' -- 'de' oder 'en'

Kategorien hinzufügen

Config.Categories = {
['food'] = { label = "Essen & Trinken", icon = "fas fa-utensils" },
['rare'] = { label = "Seltenes", icon = "fas fa-gem" },
}

🎮 Nutzung

🛍️ Items im Shop kaufen (Als Kunde)

  1. Shop finden - Gehe zu einem Shop-Marker auf der Karte
  2. Shop öffnen - Drücke [G] um das Shop-Menü zu öffnen
  3. Kategorien durchsuchen - Klicke auf die gewünschte Kategorie (z.B. "Essen & Trinken", "Waffen")
  4. Item auswählen - Klicke auf das gewünschte Item
  5. Menge wählen - Gib die gewünschte Anzahl ein
  6. Kaufen - Klicke auf "Kaufen" um den Kauf abzuschließen

Hinweis: Der Kaufpreis wird dir vor dem Kauf angezeigt. Das Geld wird automatisch von deinem Charakter abgezogen.

🏪 Einen Shop kaufen

Um einen eigenen Shop zu erwerben:

  1. Freien Shop finden - Gehe zu einem Shop ohne Besitzer (erkennbar am "Zu Verkaufen" Schild)
  2. Shop öffnen - Drücke [G]
  3. Kaufen klicken - Im Menü erscheint ein "Shop Kaufen" Button mit dem Preis
  4. Bestätigen - Klicke auf den Button um den Shop zu kaufen

Voraussetzung: Du brauchst genügend Geld in deinem Inventar (Standard: $1000, konfigurierbar in Config.DefaultShopPrice)

🔧 Shop-Besitzer Verwaltung

  1. Shop verwalten - Öffne deinen Shop und klicke "Verwaltung" (oben links)
    • Item hinzufügen - Klicke auf ein Item in "Dein Inventar", setze Menge/Preis/Kategorie
    • Item bearbeiten - Klicke auf das Stift-Icon
    • Item entfernen - Klicke auf das Papierkorb-Icon
    • Abheben - Siehe "Shop Kasse" und hebe deine Einnahmen ab

⚙️ Konfiguration (Detailliert)

Kaufsystem aktivieren/deaktivieren

Config.CanBuyShops = true       -- true = Spieler können Shops kaufen
-- false = Shops sind nicht kaufbar

Wichtig: Wenn Config.CanBuyShops = false ist, können Spieler keine Shops kaufen. Der "Shop Kaufen" Button wird dann nicht angezeigt.

Shop-Kaufpreis festlegen

Config.DefaultShopPrice = 1000.0  -- Preis in Dollar/Währungseinheit

Du kannst auch individuelle Preise pro Shop setzen:

Config.Shops = {
['valentine_general'] = {
name = "Valentine General Store",
price = 2500.0, -- Dieser Shop kostet $2500
-- ... weitere Einstellungen
},
['rhodes_saloon'] = {
name = "Rhodes Saloon",
price = 5000.0, -- Dieser Shop kostet $5000
-- ... weitere Einstellungen
},
}

Inaktivitäts-Zeitraum

Config.MaxInactivityDays = 14   -- Nach 14 Tagen ohne Aktivität wird der Shop freigegeben

Sprache einstellen

Config.Locale = 'de'            -- 'de' für Deutsch, 'en' für Englisch

📋 Voraussetzungen

  • VORP Core
  • VORP Inventory
  • oxmysql