Weapon Damage System

Système de dégâts d'armes hautement configurable pour FiveM

Script Gratuit Version: 1.0.0 Framework: Standalone

Description

CN Weapon Damage System est un système de dégâts d'armes hautement configurable pour FiveM qui permet aux propriétaires de serveurs de personnaliser les dégâts des armes, d'activer/désactiver les headshots et de gérer facilement les catégories d'armes.

Fonctionnalités principales :

  • Dégâts configurables - Définissez des valeurs de dégâts personnalisées pour des armes individuelles ou des catégories entières
  • Contrôle des headshots - Activez/désactivez les headshots avec un multiplicateur de dégâts configurable
  • Catégories d'armes - Catégories d'armes organisées pour une gestion facile
  • Optimisé pour les performances - Code efficace avec impact minimal sur les performances
  • Mode debug - Commandes de debug intégrées pour les tests

Installation

Étapes d'installation :

  1. Téléchargez la dernière version depuis la boutique Tebex
  2. Placez cn-damage dans le dossier resources de votre serveur
  3. Ajoutez ensure cn-damage dans votre server.cfg
  4. Configurez config.lua selon vos préférences
  5. Redémarrez votre serveur
ensure cn-damage

Configuration

Éditez config.lua pour personnaliser le système de dégâts d'armes :

Config = {
    -- Paramètres principaux
    Debug = false,                 -- Activer les messages de debug
    EnableDamage = true,           -- Interrupteur principal pour tous les dégâts d'armes
    EnableCriticalHits = false,    -- Activer/désactiver les headshots
    
    -- Paramètres de dégâts
    DamageMultiplier = 1.0,        -- Multiplicateur de dégâts global (affecte toutes les armes)
    HeadshotMultiplier = 2.0,      -- Multiplicateur de dégâts pour les headshots
    
    -- Catégories d'armes (exemple)
    WeaponCategories = {
        melee = {
            damageMultiplier = 1.0,
            weapons = {
                "WEAPON_UNARMED",
                "WEAPON_NIGHTSTICK",
                -- Ajoutez plus d'armes...
            }
        },
        pistols = {
            damageMultiplier = 1.2,
            weapons = {
                "WEAPON_PISTOL",
                "WEAPON_COMBATPISTOL",
                -- Ajoutez plus d'armes...
            }
        },
        rifles = {
            damageMultiplier = 1.5,
            weapons = {
                "WEAPON_ASSAULTRIFLE",
                "WEAPON_CARBINERIFLE",
                -- Ajoutez plus d'armes...
            }
        }
        -- Ajoutez plus de catégories...
    },
    
    -- Surcharges d'armes individuelles
    WeaponOverrides = {
        ["WEAPON_UNARMED"] = 0.3,
        ["WEAPON_NIGHTSTICK"] = 0.2,
        ["WEAPON_KNIFE"] = 0.5,
        ["WEAPON_M110"] = 5.0
    }
}

Explication des paramètres :

  • Debug - Active les messages de debug dans la console pour le débogage
  • EnableDamage - Active ou désactive complètement le système de dégâts
  • EnableCriticalHits - Active/désactive les headshots
  • DamageMultiplier - Multiplicateur global qui affecte toutes les armes
  • HeadshotMultiplier - Multiplicateur appliqué aux headshots
  • WeaponCategories - Organisez les armes en catégories avec des multiplicateurs spécifiques
  • WeaponOverrides - Surcharges pour des armes individuelles (priorité sur les catégories)

Commandes

Commandes disponibles :

  • /weapondbg - Active/désactive le mode debug (affiche les valeurs de dégâts et les événements)
  • /reloadweapons - Recharge les configurations d'armes sans redémarrer le serveur

Utilisation des commandes :

Ces commandes sont utiles pour tester et déboguer votre configuration :

  • Utilisez /weapondbg pour voir les dégâts réels appliqués en temps réel
  • Utilisez /reloadweapons après avoir modifié le fichier de configuration pour appliquer les changements sans redémarrer

Exports

Utilisez ces fonctions dans d'autres ressources :

Obtenir les dégâts actuels d'une arme

-- Obtenir les dégâts actuels pour une arme
local damage = exports['cn-damage']:GetWeaponDamage("WEAPON_PISTOL")
print("Dégâts du pistolet: " .. damage)

Définir des dégâts personnalisés pour une arme

-- Définir des dégâts personnalisés pour une arme
exports['cn-damage']:SetWeaponDamage("WEAPON_PISTOL", 1.5)

-- Vérifier que les dégâts ont été mis à jour
local newDamage = exports['cn-damage']:GetWeaponDamage("WEAPON_PISTOL")
print("Nouveaux dégâts: " .. newDamage)

Exemples d'utilisation avancée

-- Exemple: Ajuster les dégâts selon le niveau du joueur
RegisterNetEvent('playerLoaded')
AddEventHandler('playerLoaded', function()
    local playerLevel = GetPlayerLevel(source)
    
    if playerLevel >= 50 then
        -- Joueurs de haut niveau ont des dégâts réduits
        exports['cn-damage']:SetWeaponDamage("WEAPON_PISTOL", 0.8)
    else
        exports['cn-damage']:SetWeaponDamage("WEAPON_PISTOL", 1.2)
    end
end)

Exemples de configuration

Configuration pour un serveur PvP

Config = {
    Debug = false,
    EnableDamage = true,
    EnableCriticalHits = true,  -- Headshots activés pour PvP
    
    DamageMultiplier = 1.2,      -- Dégâts légèrement augmentés
    HeadshotMultiplier = 2.5,   -- Headshots très puissants
    
    WeaponCategories = {
        snipers = {
            damageMultiplier = 2.0,  -- Snipers très puissants
            weapons = {
                "WEAPON_SNIPERRIFLE",
                "WEAPON_HEAVYSNIPER",
                "WEAPON_MARKSMANRIFLE"
            }
        }
    }
}

Configuration pour un serveur RP

Config = {
    Debug = false,
    EnableDamage = true,
    EnableCriticalHits = false,  -- Headshots désactivés pour RP
    
    DamageMultiplier = 0.8,      -- Dégâts réduits pour RP
    HeadshotMultiplier = 1.5,
    
    WeaponCategories = {
        melee = {
            damageMultiplier = 0.5,  -- Armes de mêlée moins puissantes
            weapons = {
                "WEAPON_UNARMED",
                "WEAPON_NIGHTSTICK",
                "WEAPON_KNIFE"
            }
        }
    }
}

Support

Pour toute question ou problème, contactez-nous via Discord. Assurez-vous de réclamer le rôle client après avoir rejoint et ouvrez un ticket si des problèmes surviennent.

Rejoindre le Discord