Aller au contenu

Armes, recul et chargeurs

Trois endroits : bs_weapons/config/config_weapons.lua (accessoires, chargeurs, bruit), bs_skills/config/config_recoil.lua (recul) et les items d’armes dans bs_inventory/config/config_items.lua.

Une arme est un item d’inventaire avec data.weapon = 'WEAPON_X'. Les munitions sont aussi des items (ammo_pistol, ammo_rifle…). Une arme trouvée dans le monde est vide, volontairement. Les armes qu’un admin fait apparaître viennent avec un chargeur (spawnRounds).

Les accessoires sont de vrais items que tu montes depuis une roue. Touche par défaut O (Weapons.Settings.openKey, commande /weaponwheel). Emplacements dans Weapons.Slots : muzzle, optic, grip, light, laser, magazine.

Chaque accessoire de Weapons.Attachments associe l’item au composant du jeu de base par arme, car un silencieux de pistolet est un composant différent de celui d’un fusil. Une association erronée ne casse rien, l’emplacement n’est simplement pas proposé.

Ce qu’ils font (Weapons.Effects) :

suppressor = { noiseScale = 0.28 }, -- 90 m of noise becomes ~25 m
grip = { recoil = 0.85 },
extmag = { ammo = 1.5 },

Le silencieux compte beaucoup ici, les zombies entendent les coups de feu (Weapons.Noise).

Weapons.Magazines, une ligne par arme :

WEAPON_PISTOL = { base = 12, ext = 16, ammo = 'ammo_pistol' },
WEAPON_SMG = { base = 30, ext = 45, drum = 100, ammo = 'ammo_pistol' },
WEAPON_ASSAULTRIFLE = { base = 30, ext = 45, drum = 100, ammo = 'ammo_rifle' },

Chaque valeur base est aussi dans la console F1 (Armes et recul).

Vérification du chargeur (Weapons.MagCheck) : les joueurs peuvent vérifier leur chargeur. Par défaut, il indique à peu près son remplissage (“environ à moitié”) et non le compte exact. Mets exact = true si tu veux “17 / 30”.

Skills.Recoil dans bs_skills/config/config_recoil.lua. Chaque tir relève la caméra du kick du groupe, dérive sur le côté jusqu’à drift, ne monte jamais au-delà de maxClimb et tremble de shake :

groups = {
pistol = { kick = 0.35, drift = 0.10, maxClimb = 2.5, shake = 0.05 },
rifle = { kick = 0.30, drift = 0.12, maxClimb = 3.5, shake = 0.10 },
shotgun = { kick = 1.10, drift = 0.25, maxClimb = 3.0, shake = 0.22 },
sniper = { kick = 1.40, drift = 0.20, maxClimb = 3.0, shake = 0.20 },
...
},

weapons.WEAPON_X remplace un groupe pour une arme (le pistolet .50, le revolver, le sniper lourd…).

Ce qui le module :

  • Compétence de combat : le niveau 0 vaut lowSkillMult (1.35), le niveau max highSkillMult (0.70). Perk Steady Hands x steadyHandsMult.
  • Accessoires : le silencieux et la poignée réduisent la montée et le tremblement.
  • Drogues : le statebag bsDrugMods.sway module aussi le recul, borné à drugMin..drugMax.
  • Booster Focus : x steady.
  • F1 : Global.recoilMultiplier pour tout le monde.

Quand tu arrêtes de tirer, 60 % de la montée redescend en 250 ms (recoverFraction, recoverMs). Mets debug = true pour afficher dans F8 les chiffres de chaque tir pendant le réglage.