Test de script de combat moderne

Traduit de l’anglais

Modern Combat Script Test

66

446

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

proxy autorisé

Chats publiés