Shop PvP

Boutique PvP complète avec système d'achat d'armes et équipements

Version: 1.0.0 Framework: ESX/QB

Description

CN-ShopPVP est un système complet de boutique d'armes PvP pour QB-Core avec intégration QS-Inventory, incluant des vendeurs NPC, une gestion de stock en temps réel et une interface NUI moderne.

Fonctionnalités principales :

  • Emplacements de boutiques multiples - Boutiques d'armes configurables avec NPCs et inventaires uniques
  • Gestion de stock en temps réel - Système de réapprovisionnement automatique avec minuteries configurables
  • Interface NUI moderne - Interface de boutique élégante et responsive avec images d'armes
  • Système de paiement en espèces - Intégré avec le système d'argent de QB-Core
  • Filtrage par catégories - Items organisés par catégories (armes, munitions, armures, etc.)
  • Fonctionnalité de recherche - Recherche rapide d'items dans la boutique
  • Système de revente - Les joueurs peuvent revendre des items aux boutiques à 60% de la valeur
  • Commandes admin - Réapprovisionnement manuel et gestion des boutiques
  • Intégration QB-Target - Support optionnel de qb-target pour les interactions NPC

Installation

Prérequis

Assurez-vous d'avoir les ressources suivantes installées :

  • qb-core - Framework QB-Core
  • qs-inventory - Système d'inventaire
  • qb-target (optionnel) - Pour les interactions NPC

Étapes d'installation :

  1. Téléchargez et extrayez : Placez le dossier cn-shoppvp dans votre répertoire resources
  2. Ajoutez dans server.cfg :
ensure cn-shoppvp

Images d'armes

Ajoutez les images d'armes dans le répertoire nui/images/ :

  • Format : PNG ou JPG
  • Nommage : Utilisez le nom exact de l'item (ex: weapon_pistol.png)
  • Taille recommandée : 256x256 pixels

Structure des fichiers

cn-shoppvp/
├── client/
│   ├── main.lua          # Logique client principale
│   └── npc.lua           # Spawn et interaction des NPCs
├── server/
│   ├── main.lua          # Logique serveur de la boutique
│   └── stock.lua         # Système de gestion de stock
├── nui/
│   ├── index.html        # Interface de la boutique
│   ├── style.css         # Styles de l'interface
│   ├── script.js         # Fonctionnalités de l'interface
│   └── images/           # Répertoire des images d'armes
├── config.lua            # Fichier de configuration
├── fxmanifest.lua        # Manifest de la ressource
└── README.md             # Documentation

Configuration

Configuration de la boutique

Éditez config.lua pour personnaliser :

  • Emplacements des boutiques et NPCs
  • Prix des items et niveaux de stock
  • Minuteries de réapprovisionnement
  • Pourcentages de revente

Ajouter de nouvelles boutiques

Config.Shops['new_shop'] = {
    label = 'Nouvelle Boutique d\'Armes',
    coords = vector3(x, y, z),
    npc = {
        model = 'npc_model',
        coords = vector4(x, y, z, heading),
        scenario = 'WORLD_HUMAN_GUARD_STAND'
    },
    items = {
        ['weapon_name'] = {
            name = 'weapon_name',
            label = 'Nom de l\'Arme',
            price = 1000,
            stock = 25,
            maxStock = 50,
            category = 'weapons',
            image = 'weapon_name.png'
        }
    }
}

Emplacements de boutiques par défaut

  • Black Market Weapons - Zone de Legion Square
    • Coordonnées : 844.35, -1033.25, 28.19
    • Items : Armes de base et munitions
  • Underground Arsenal - Sandy Shores
    • Coordonnées : -1117.32, 2698.61, 18.55
    • Items : Armes avancées et munitions spécialisées

Utilisation

Commandes Admin

  • /restockshop [shopid] - Réapprovisionner manuellement une boutique spécifique (Admin uniquement)

Exports Client

-- Ouvrir une boutique spécifique
exports['cn-shoppvp']:OpenShop(shopId)

-- Fermer la boutique actuelle
exports['cn-shoppvp']:CloseShop()

-- Vérifier si une boutique est ouverte
local isOpen = exports['cn-shoppvp']:IsShopOpen()

Exports Serveur

-- Obtenir le stock d'une boutique
local stock = exports['cn-shoppvp']:GetShopStock(shopId, itemName)

-- Définir le stock d'une boutique
exports['cn-shoppvp']:SetShopStock(shopId, itemName, amount)

Personnalisation

Ajouter des images d'armes

  1. Placez les images dans le répertoire nui/images/
  2. Nommez les fichiers exactement comme le nom de l'item (ex: weapon_pistol.png)
  3. Taille recommandée : 256x256 pixels
  4. Formats supportés : PNG, JPG

Modifier le système de stock

  • Minuterie de réapprovisionnement : Modifiez Config.RestockTime (en minutes)
  • Stock maximum : Ajustez Config.MaxStock ou le maxStock individuel de chaque item
  • Taux de revente : Modifiez Config.SellBackPercentage (par défaut 60%)

Mode Debug

Activez le mode debug dans la configuration :

Config.Debug = true

Dépannage

Problèmes courants

  • NPCs ne spawnent pas : Vérifiez les coordonnées et les noms de modèles dans la configuration
  • Images ne se chargent pas : Vérifiez que les noms d'images correspondent exactement aux noms d'items
  • La boutique ne s'ouvre pas : Assurez-vous que qb-target est installé si Config.UseTarget = true

Vérifications

  • Vérifiez que toutes les dépendances sont installées (qb-core, qs-inventory)
  • Vérifiez que la ressource est bien démarrée dans server.cfg
  • Activez le mode debug pour voir les messages d'erreur

Support

Pour toute question ou problème, contactez-nous via Discord.

Rejoindre le Discord