Test de script de combat moderne
Traduit de l’anglais
Terrain de test pour un script de combat moderne de style JDR
Note : ceci est une démo de script et non un bot de RP légitime. Lien du code dans la dernière section.
Testez les probabilités des explosifs, des projectiles et du corps à corps en jeu de rôle.
C'est la guerre totale dans un pays déchiré par la guerre, un vrai trou à rats !
Notre soldat, Bob, survivra-t-il au jet de dés ?
J'ai pris une image complètement au hasard pour la vignette
Source de l'illustration : Drunken-Lord
Note : ce script dépendra probablement beaucoup du type de LLM que vous utilisez et de la façon dont il interprète les distances.
J'ai utilisé DeepSeek V3 0324, vos résultats peuvent varier avec d'autres LLM.
Comment ça marche ?
En bref : le bot lance les dés plusieurs fois et la réussite (la survie) dépend d'attributs de combat de style JDR
Jusqu'à présent, j'ai trois catégories d'effets qui peuvent arriver à {{char}}.
Explosif
Projectile
Corps à corps
Nous allons aussi parler du concept d'« attributs de combat moderne » qui influenceront ces effets.
Explosifs
Les explosifs ont un effet de zone dont la probabilité d'être affecté diminue à mesure que la distance augmente.
Deux choses sont à craindre concernant les explosifs : les éclats (ou projectiles) et la force de souffle.
Donc, nous pouvons définir notre prompt injecté comme ceci (exemple, peut ne pas être exactement le produit final) :
# {{char}} devrait réagir à une explosion de cette manière :
- Courte portée : ["tressaille", "commotionné", "incapacité"] à cause du souffle, et des éclats (projectiles) ["sont", "ne sont pas"] dirigés vers eux.
- Moyenne portée : ["impassible", "tressaille", "commotionné"] à cause du souffle, et des éclats (projectiles) ["sont", "ne sont pas"] dirigés vers eux.
- Longue portée : ["impassible", "tressaille"] à cause du souffle.
Les valeurs entre crochets ici sont déterminées par des jets de dés effectués par le bot.
Les attributs du bot ici ne servent pas à grand-chose à part vérifier s'il survit, puisque les explosifs font bien ce qu'ils veulent.
Projectiles
Ce sera probablement le cas le plus courant en termes de combat en jeu de rôle, donc je pense que l'approche devra être assez élaborée.
Il y a à peu près trois issues auxquelles je peux penser quand on se fait tirer dessus : être indemne, blessé, ou carrément tué.
Mais, découlant de ces issues, que peut-il se passer d'autre ?
- indemne ; vous pouvez être impassible ou cloué au sol
- blessé ; vous pouvez être engourdi, cloué au sol ou choqué. La blessure peut être légère, grave ou mortelle. « Mortelle » permettrait au bot de tirer au moins une dernière fois avant de mourir.
- tué ; genre une balle dans la tête ? ouais, c'est fini.
Ensuite, il faudra voir si le bot ripostera efficacement contre son assaillant, en fonction de ses compétences et de son état. (en supposant que le bot ne soit pas tué.)
Nous pouvons donc avoir notre prompt comme ceci :
# {{char}} devrait réagir à des tirs dirigés vers lui, ou à un projectile dirigé vers lui, de cette manière :
Et ensuite, chaque distance (courte, moyenne, longue) recevra ce qui suit (certaines phrases ne seront pas présentes selon ce qui se passe. Par exemple : « indemne » ne générera pas la ligne « La blessure est... ») :
Sera ["indemne", "blessé", "tué"] par le projectile. La blessure est ["légère", "grave", "mortelle"]. {{char}} est ["impassible", "engourdi", "cloué au sol", "choqué"]. S'il est logique de riposter, il le fera ["efficacement", "inefficacement"].
Les attributs du bot jouent un peu plus ici, en prenant en compte leurs attributs « physiques » (vont-ils mourir/esquiver ?), leurs attributs « mentaux » (vont-ils être cloués au sol ?) et leurs attributs de « combat » (vont-ils réagir efficacement ?)
Corps à corps
Et, bien sûr, on peut toujours en venir aux mains avec quelqu'un au lieu de l'ouvrir en grand avec une balle de 7,62 ou de 5,56.
Ce sera le plus simple des prompts et plus simple à dériver que le script de combat au corps à corps de mes autres bots.
# Au corps à corps, {{char}} devrait se battre ["efficacement", "inefficacement"].
Comme cela n'arrivera probablement pas aussi souvent que je le pense, cela restera on ne peut plus simple.
Attributs de combat moderne
Je vais m'inspirer d'Escape from Tarkov et utiliser certaines de ses statistiques. Je pense qu'elles sont toutes assez explicites.
Physique
- Vitalité - la santé, en gros
- Agilité - à quelle vitesse/bien ils se déplacent
- Résilience - résistance aux dégâts
- Force - à quel point ils sont forts
Mental
- Perception - capacité à percevoir les choses sur le champ de bataille
- Contrôle du stress - capacité à rester calme sous pression
Combat
- Maniement - capacité à viser et tirer avec une arme
- CQC - capacité de combat rapproché
- Corps à corps - à quel point ils savent se battre à mains nues
Ces valeurs doivent être définies de 0 à 100 et doivent être adaptées pour refléter la personnalité du bot. À titre indicatif, je pense qu'on peut échelonner les choses comme ceci :
(0 - 40 : mauvais), (40-60 : moyen), (60-80 : bon), (80-100 : excellent)
Donc un personnage de sniper devrait probablement avoir « Maniement : 85 » mais « CQC : 50 » ou quelque chose comme ça.
Ces valeurs sont pondérées différemment selon la distance d'engagement : par exemple, le CQC pèse plus lourdement en « courte portée » mais bien moins (ou n'est même pas pris en compte) en « longue portée ».
Quelles statistiques contribuent et leurs poids (tous les poids doivent totaliser 1) :
Ils sont honnêtement un peu aléatoires, donc oui, les retours sont les bienvenus pour équilibrer tout ça.
Survie à une explosion :
- toutes portées : résilience (0,7), contrôle du stress (0,3)
Touche de projectile :
- courte : perception (0,2), agilité (0,4), cqc (0,4)
- moyenne : perception (0,5), agilité (0,5)
- longue : perception (0,7), agilité (0,3)
Gravité de la blessure :
- courte : vitalité (0,3), résilience (0,4), cqc (0,3)
- moyenne : vitalité (0,5), résilience (0,5)
- longue : vitalité (0,3), résilience (0,7)
Effet mental :
- courte : perception (0,1), contrôle du stress (0,4), cqc (0,5)
- moyenne : perception (0,3), contrôle du stress (0,7)
- longue : perception (0,1), contrôle du stress (0,9)
Efficacité de la riposte :
- courte : perception (0,1), maniement (0,4), cqc (0,5)
- moyenne : perception (0,3), maniement (0,7)
- longue : perception (0,5), maniement (0,5)
Réussite au corps à corps :
- force (0,4), corps à corps (0,6)
Code
Je suis heureux de partager le code, que vous pouvez trouver ici sur mon GitHub.
La licence MIT est appliquée, ce qui garantit simplement qu'il est aussi permissif que possible !
J'apprécierais être crédité si vous décidez d'utiliser le script sérieusement. :)
Créé 13 sept. 2025
Mis à jour 21 nov. 2025
Publié 13 sept. 2025