Délai et timing de tir

Tout sur les scripts et les mods pour X², X³, X³TC et X³AP.

Moderator: Modérateurs pour les forum Français

Nemesis666
Posts: 6
Joined: Tue, 11. Jun 13, 06:58
x3tc

Délai et timing de tir

Post by Nemesis666 » Mon, 12. Aug 13, 23:01

Bonjour,

Je me suis payé la X Superbox sur Steam il y a quelque jour, et à peine ai-je lancé le jeu et tiré une ou deux fois que je me suis rendu compte qu'il y avais un soucis avec les délais des armes, les timings sont chaotique, une fois c'est cette arme là, une fois celle ci, mais finalement après c'est pu elle mais elle, bref, le chaos.

D'après mes recherches, c'est une sorte de fonctionnalité voulu par le jeu (ça ce produit sur les 3 versions d'X3) : soyons clair, ça ne me conviens pas du tout, je ne me vois pas jouer sur un jeu qui tire avec un canon une fois sur deux quand ça lui chante, c'est pas pratique et c'est moche.

Je suis très exigeant et je suis très carré, pas de place au chaos dans mon univers.

La seule solution serai donc une sorte de script tout bidon qui me permettrais de régler cela.

Ca me semble tout con : D'abord je tire avec l'arme 1, ensuite l'arme 2 après 0,x secondes, ensuite l'arme 3 après 0,x secondes, ensuite l'arme 4 après 0,x secondes, ensuite l'arme 5 après 0,x secondes, etc... jusqu'à revenir à la numéro 1.

Dans les faits, impossible de trouver la moindre info sur ce fameux éditeur de script, même une simple recherche sur Google des termes "script x3" et "tirer" "feu" "fire" "arme" "weapon" ne donne absolument rien, a croire que le jeu n'existe pas !
Faut dire que le nom du jeu ne joue pas en sa faveur à ce niveau là j'imagine.

Une fois ce script mis sur le bouton clic droit je pourrais enfin débuter les jeux dans de bonnes conditions.

J'ai juste besoin qu'on me dirige vers un tuto, une liste de commande, n'importe quoi d'à peu près correcte pour ça.

En vous remerciant ;) .

EDIT : J'ai trouvé des commandes ici : http://cycrow.thexuniverse.us/scripts/help/cmds.html

Je crois avoir compris quelques trucs :

Pour dire à une tourelle de tirer :
<RetVar> = <RefObj> fire laser of turret <Var/Number> ahead

Pour binder une touche avec un script :
<RetVar> = register hotkey <Var/String> to call script <Script Name>

attendre :
@<RetVar/IF>wait <Var/Number> ms

Mais je viens de penser à un truc : comment le jeu sais quand je ne clique pu ? Je veux que le script s'active que lorsque je clic évidement.
Est-ce qu'il y a des contrôles d'erreur, genre si je tire et que l'arme est en train de recharger, est-ce que le script va ce planter à la ligne 1 ?

J'ai pas encore joué aux jeux que c'est déjà compliqué...

User avatar
peroxyde
Posts: 2230
Joined: Sun, 2. Apr 06, 00:12
x3tc

Post by peroxyde » Mon, 12. Aug 13, 23:31

Si ce que tu décris est ce que je croie, tu n'a pas a chercher de script.
Chaque arme (a énergie) vérifie qu'il y a suffisamment d'énergie en réserve pour tirer.
Quand elle tire, la valeur énergétique du tir est soustraite à la réserve. Jusque là tout va bien.
Quand tu tires avec toute les armes, la réserve s'épuise vite et lorsqu'elle est faible, c'est l'arme avec la plus petite consommation d'énergie par tir qui va être utilisée.

Mais il y a deux autres phénomènes qui rentrent également en jeu.

Le premier, suivant le générateur, même si une petite arme consomme l'énergie produite en continue du générateur, elle ne le consomme pas complètement (une petite arme on dit bien) donc à force même en étant consommée au fur et à mesure, la réserve atteint un seuil qui peut être utilisé par une arme plus puissante et celle-ci déclenche alors un tir.
un seul puisqu'après la réserve est de nouveau très basse.

Second phénomène pour des armes de même type ou de même consommation énergétique : les canon tirent à tour de rôle. On peut concevoir ça comme pour laisser un temps de refroidissement si tu veux.
Pour illustrer prenons un vaisseau qui peut fournir de l'énergie suffisante en continu pour 2 LPHE, mais sur lequel il y en a 6.
Les premières secondes tout les canons vont tirer de concert. Puis la réserve épuisée, tu verras qu'ils tirent toujours dans le même ordre, de façon cyclique.

Si tu mélanges le tout on peut illustrer ça comme ça:
Soit un vaisseau qui produit de l'énergie pour a peine plus d'un CAP mais moins qu'un LPHE.
Ce vaisseau est équipé d'un CAP et de deux LPHE dit LPHE1 et LPHE2.
Si tu tires en continue donc tu vas avoir un truc du genre:
- Tout les canons
- Tout les canons
- Tout les canons
- Tout les canons
- CAP
- CAP
- CAP
- CAP
- CAP
- LPHE1
- CAP
- CAP
- CAP
- CAP
- CAP
- LPHE2
- CAP
- CAP
- CAP
- CAP
- CAP
- LPHE1
- CAP
...

Pour ce qui est de la sélection des armes les X que je connais (X3R et TC) sont déjà capable de le proposer. Il te suffit de configurer tes groupes d'armes (4 possibilités)
Le timing de changement par contre n'existe pas. C'est à toi de les sélectionner manuellement par les touche de raccourcis.

Mais, et je ne le répèterais jamais assez, si c'est bien ce problème que tu as, c'est parce qu'il n'est pas prévu de tirer en continu. C'est que soit tu t'attaques à une cible qui a des très gros boucliers, soit tu sais pas piloter (sans être péjoratif, je voie juste une différence entre conduire et piloter). Enfin si c'est bien ce problème bien sûr...

[edit]Pour quelqu'un qui découvre le jeu, se lancer déjà dans le scripting, ça me surprends! Non pas que je trouve ça ridicule, au contraire, c'est audacieux, mais je pense que tu vas galérer pour rien. M'enfin bref.
Les scripts peuvent "dépendre" les uns des autres. Mais tu n'as pas un contrôle de raccourci aussi précis.
Le mieux que tu puisses faire c'est un clic j'active, un clic je désactive.
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07

User avatar
Geek
Moderator (Français)
Moderator (Français)
Posts: 10837
Joined: Sat, 1. Oct 05, 23:12
x4

Post by Geek » Tue, 13. Aug 13, 00:59

Je pense aussi que tu manques assez d'expérience dans le jeu pour savoir ce qui fonctionne ou non.

Il est totalement inefficace d'utiliser simultanément des armes aux capacités différentes sur une même cible.
C'est voulu, les armes dans X3 sont spécialisées. La solution (comme dit au dessus) est de grouper les armes.
Right on commander !

Nemesis666
Posts: 6
Joined: Tue, 11. Jun 13, 06:58
x3tc

Post by Nemesis666 » Tue, 13. Aug 13, 12:32

En effet, démarrer un jeu par le script peut sembler étrange, mais je n'aime pas la manière dont ça fonctionne, donc je cherche une solution.

Les groupes d'armes c'est bien sympa mais ça ne résous pas le soucis.

Imaginons que j'ai 2 canons laser de base, qui consomme 1% de l'énergie chacun, j'en met un a gauche et l'autre à droite, et bien quand je vais tirer, ça va faire :
gauche droite gauche gauche droite droite gauche droite gauche droite droite gauche gauche droite

Du coup ça me gène, ça me stresse.

Je ne dis pas que c'est injouable, mais on a tous nos soucis hein, moi c'est les timings xD .

User avatar
Geek
Moderator (Français)
Moderator (Français)
Posts: 10837
Joined: Sat, 1. Oct 05, 23:12
x4

Post by Geek » Tue, 13. Aug 13, 13:13

Si le vaisseau ne peut tirer qu'une arme de type x en continu, tu peux toujours créer un groupe avec une seule arme x si ça te chante.
Tu auras le même résultat sans écrire un script compliqué.
Right on commander !

User avatar
peroxyde
Posts: 2230
Joined: Sun, 2. Apr 06, 00:12
x3tc

Post by peroxyde » Tue, 13. Aug 13, 15:39

Vu ton exemple, j'avais donc bien saisi le phénomène qui te gène. Mais malheureusement, les lasers ne tireront jamais exactement en même temps.

Comme je l'ai dit, il tirent les un après les autres toujours dans le même ordre et de façon cyclique, si évidemment il y a suffisamment d'énergie.

Même avec un script (encore moins en réalité...) tu ne pourras pas changer ça.
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07

arnaud.p
Posts: 172
Joined: Mon, 31. Jan 11, 11:14

Post by arnaud.p » Tue, 13. Aug 13, 22:23

Il existe une solution à ton probléme,ca s'appelle les conducteurs de masse.Tu en fous autant que tu peux pour ton chasseur,ce sont des armas à munitions cadence de feu elevée et trés efficaces.Je n'ai presque jamais d'utiliser d'armes à energie avant d'avoir un destroyer.

User avatar
peroxyde
Posts: 2230
Joined: Sun, 2. Apr 06, 00:12
x3tc

Post by peroxyde » Tue, 13. Aug 13, 23:13

Bah, le CM c'est surtout q'on ne "voie" pas vraiment les tirs donc savoir s'il sont effectivement en phase ou non...
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07

arnaud.p
Posts: 172
Joined: Mon, 31. Jan 11, 11:14

Post by arnaud.p » Wed, 14. Aug 13, 14:35

Si si tu les vois ,suivant comment tu les disposes en groupes d'armes,ca fait comme un tir de mitraille, et au niveau munitions ca prend pas beaucoup de place et c'est une munition rapide (pas loin de 1000 m/s).Le seul probléme c'est qu'il faut etre bon pilote parce qu'il faut s'accrocher au cul de la cible vu la portée utile(moins de 600m)

Nemesis666
Posts: 6
Joined: Tue, 11. Jun 13, 06:58
x3tc

Post by Nemesis666 » Thu, 15. Aug 13, 22:41

Jcomprend pas pourquoi vous parlez des groupes d'armes par rapport à mon soucis, j'ai bien compris que ça séparais les armes pour les utiliser dans des situations différentes, mais bon, si ça résous pas mon soucis ça m'emmènera pas bien loin.

Donc visiblement ya ABSOLUMENT RIEN DU TOUT qui a été inventé depuis la sortie des jeux pour que les armes tires à la même vitesse (au pire) ou les unes derrières les autres (au mieux) ?

C'est hallucinant, et malgré toutes les options communautaires, les mods, les scripts, ya rien pour toucher à ça ?

Et ça n'a jamais choqué PERSONNE ?

Je sais que je parais un peu extrême, m'enfin ça ce voit quand même, c'est comme avancer en bougeant deux fois la jambe gauche, déjà c'est casse gueule et en plus ça fait pas sérieux.

L'idée d'utiliser un type d'arme spécifique (Condensateur de Masse, si j'ai bien compris) ne semble pas valable.

D'ailleurs ce ne sont pas les "lasers" le soucis, mais toutes les armes visiblement (tout les vaisseaux démarrent avec les mêmes armes ? Nan il me semble que non).

Ils servent à quoi du coup les scripts en faite ? Pour moi s'était des "macros" en théorie.

User avatar
Geek
Moderator (Français)
Moderator (Français)
Posts: 10837
Joined: Sat, 1. Oct 05, 23:12
x4

Post by Geek » Thu, 15. Aug 13, 22:57

Tu es le premier à poser cette question - je n'ose parler de problème.
Ce n'est pas parce le jeu a un moteur de script que n'importe quoi est possible.

Maintenant si tu veux écrire un script de tir séquentiel, c'est théoriquement faisable. Mais ce sera compliqué, difficile à utiliser et diminuera certainement ta puissance de tir.
Right on commander !

Nemesis666
Posts: 6
Joined: Tue, 11. Jun 13, 06:58
x3tc

Post by Nemesis666 » Thu, 15. Aug 13, 23:38

Pourquoi ça diminuerais la puissance de tir ?
Si un tir met 1 sec à ce recharger, on fait tirer chacune des 10 armes toutes les 0,1 sec, ça ne changerais rien.

Bon par contre il faut qu'on puisse tirer avec un clic.

User avatar
Geek
Moderator (Français)
Moderator (Français)
Posts: 10837
Joined: Sat, 1. Oct 05, 23:12
x4

Post by Geek » Thu, 15. Aug 13, 23:54

Bon d'abord la plupart des armes (en particulier les armes de chasseurs) se rechargent très vite, ensuite des armes différentes le font à des vitesses différentes. Enfin il y a le "poids" du script, sans parler des délais (wait) à prévoir.

Et je ne parle même pas de viser correctement, ou de faire des manoeuvres pendant ce temps (ce sera même impossible si le script nécessite d'engager le pilote auto...)
Right on commander !

User avatar
peroxyde
Posts: 2230
Joined: Sun, 2. Apr 06, 00:12
x3tc

Post by peroxyde » Fri, 16. Aug 13, 14:58

Bon alors je reprends. Deux choses:

- Avec le CM ça ne changera rien. On voie les tirs mais comme leur fréquence est très rapide on ne voie pas s'ils sont vraiment en phase ou non. En réalité ils ne le sont pas non plus. C'est pour ça que j'avais utilisé des guillemets.

- Et je disais donc avec un script ça sera pire. Pourquoi?
Comme le dit geek il y a le "poids" du script.
Je suis scripteur donc je peut détailler là dessus. C'est chi¤nt mais je vais faire l'effort.
Trouver la commande qui sert à faire tirer une tourelle ne suffit pas. Il faut gérer toute les conditions derrières:
¤ boucle pour faire tirer toute les armes (gain de ligne de vitesse d’exécution du script mais besoins d'un wait pour éviter de figer le jeu)
-> nécessite un incrément à in/décrémenter
-> condition pour connaitre le nombre de tourelles (si on utilise les tourelle comme sur les croiseurs)
-> condition pour connaitre quelles tourelles nous intéressent (variable en fonction des vaisseaux et franchement très lourd à gérer)
-> Wait de confort
¤ condition pour savoir si une arme est sélectionnée ou non (répétition de la commande si elle est dans la boucle ou non)
¤ Aquisition de cible.
¤ La cible existe telle toujours quand la tourelle tire?
¤ condition avec variable globale pour savoir si on est en train de tirer ou non
¤ et enfin tir sur la cible.

A vu de nez, gentiment (je sous estime beaucoup trop souvent le volume de scripting) tu en as rien que pour le script principal une cinquantaine de ligne. ensuite il te faut gérer le plugin, la touche de raccourci, mais bon ça on s'en fout. 50 lignes qui plus est contenant des boucles, c'est long à exécuter.
Je dis long, soyons sincère, c'est quasi instantané hein. Mais le temps d'exécution sera laaaaaaaaargement supérieur à celui de la commande de tir normale.
De toute façon, on va couper court : même sans toutes cette gestion, en script tu ne peux faire tirer qu'une tourelle à la fois. Tu l'as bien vu toi-même avec ta commande:
<RetVar> = <RefObj> fire laser of turret <Var/Number> ahead
(tir réussi?) = <tireur> fire laser of turret <n° tourelle> ahead
Il n'y a donc qu'une tourelle qui tire à la fois.

Comme je sens que tu vas être têtu, je répond à l'avance à la question que tu vas poser: "Et si je fais:
$Dummy0 = [PlayerShip] fire laser of turret 0 ahead
$Dummy1 = [PlayerShip] fire laser of turret 1 ahead
$Dummy2= [PlayerShip] fire laser of turret 2 ahead
$Dummy3= [PlayerShip] fire laser of turret 3 ahead
$Dummy4 = [PlayerShip] fire laser of turret 4 ahead
$Dummy5 = [PlayerShip] fire laser of turret 5 ahead
La vitesse d'exécution du script va bien faire que toutes les tourelles vont, à 6 ou 7 millisecondes (je parle même pas de 10ème comme tu peux le voir) près, tirer en même temps?"
Ben non. Le moteur de jeu est prioritaire.
Un script comme celui ci fera tirer la moitié des tourelles. Tu auras certain Dummy (que j'ai volontairement différencié pour l'exemple) qui te donneront comme résultat [true] (tir effectué) et d'autre [false] (échec du tir)
[ external image ]
"On apprend en faisant des erreurs, mais le problème c'est qu'en explosifs, l'erreur est fatale." Aldébaran v10
[ external image ]<-- Clef Des Toilettes Privées Du Forum Français décernée par Thoto le 23/06/07

Nemesis666
Posts: 6
Joined: Tue, 11. Jun 13, 06:58
x3tc

Post by Nemesis666 » Sun, 18. Aug 13, 23:57

Merci pour toutes ces précisions Peroxyde, je comprend un peu mieux comment fonctionne les scripts.

Bon, et bien c'est dommage que le jeu n'ai pas été pensé différemment à la base, c'est un coup à prendre j'imagine, pour les armes très lentes ça doit pas forcément être évident en plus.

Une question plus philosophique cette fois : vous avez une idée de pourquoi les dévs ont fait un tel choix d'exécution d'arme ?

User avatar
Geek
Moderator (Français)
Moderator (Français)
Posts: 10837
Joined: Sat, 1. Oct 05, 23:12
x4

Post by Geek » Mon, 19. Aug 13, 01:08

Je suppose que cela permet de mieux distinguer le nombre d'armes utilisées.
Right on commander !

Mamy la Puce
Posts: 529
Joined: Sun, 1. Apr 07, 16:18
x4

Post by Mamy la Puce » Mon, 19. Aug 13, 02:48

Pardon d'intervenir pour rien peut-être, mais je trouve pas qu'il y ai de REEL problème au niveau des lasers... J'ai un Buster, 2 CAP donc un de chaque côté, quand l'énergie est pleine et que je tire avec les 2 dans le même groupe : j'ai deux lasers bleus parfaitement parallèles qui partent donc un à gauche et l'autre à droite...

Si je manque d'énergie bein forcément ça va être irrégulier mais je vois pas en quoi c'est illogique... quel est le problème en fait car je comprend pas le sujet ? A moins d'un réel bug dans ton jeu j'ai moi aussi jamais entendu parler de ce genre de "souci"...

[EDIT] il y a une micro seconde de décalage quand on reste appuyer effectivement mais si c'est là le problème réellement alors... effectivement, c'est bien trop limite pour moi...

XAV

Nemesis666
Posts: 6
Joined: Tue, 11. Jun 13, 06:58
x3tc

Post by Nemesis666 » Wed, 28. Aug 13, 13:28

Dans l'exemple que j'abordais il y a 10 armes qui tire, et ça ne part pas du tout en même temps ou l'un derrière l'autre, s'est très disparate, voila quel étais le soucis initial.

lemdoran
Posts: 77
Joined: Wed, 3. Apr 13, 04:56
x4

Post by lemdoran » Mon, 9. Sep 13, 01:49

Je pense que c'est vraiment un coup à prendre, pour être franc j'ai lancé mon jeu après avoir vu ton post pour "vérifier" et je dois dire que le décalage est tellement minime sur les armes rapide que je n'avais même pas vraiment fait attention (dans le cas de laser rapide, avec énergie au max)
Par contre dans le cas d'armes vraiment plus lourdes, alors oui le décalage se fait, surtout si on utilise des tourelles en auto, mais personnellement je trouve ça un peu plus réaliste, ça donne une impression de "salve" pour comparer avec un bateau, ça reviendrai à envoyer ses boulets de canon de la proue à la poupe en séquence de façon à pouvoir avoir un tir virtuellement continu.
Dans le cas d'x3, imagine des armes vraiment lourde avec 4 secondes de rechargement, si toute tiraient en même temps, tu te retrouverai à tirer UNE grosse patate groupée toute les 4 secondes, si par malheur tu te rate, tu est bon pour attendre 4 autres secondes ce qui, face à un xénon K qui a un peu les nerfs, peut paraitre TRES long x) Le tir différé permet selon moi en plus de justifier un tir "continu", de pouvoir aussi rater un tir sans être trop pénalisé, puisqu'au final tu rate une petite quantité de dégât mais tu peut te réajuster et réussir le tir suivant qui s'enchaine à moins d'une seconde.
Enfin, en tout cas j’espère que depuis le temps tu t'est fait à ce système de tir :)

Return to “Script et Modding pour la Trilogie X”