Script avec deux fonctions différentes sur la même touche

Décrivez votre problème rencontré sur Urban Terror et partez à la rencontre du monde merveilleux des .cfg.
Rendez-vous dans Outils de communication & communautaires ou Au pays des geeks pour les autres problèmes informatiques.
Répondre
SykZ
Messages : 2684
Enregistré le : 30 janv. 2011, 13:38
Localisation : Montélimar - Lyon

Script avec deux fonctions différentes sur la même touche

Message par SykZ » 26 juin 2011, 15:53

Bonjour à tous, je cherche en vain à faire un script qui alternerait deux fonctions différentes mais assignées sur la même touche. Cependant, je ne sais pas si c'est possible (Ou du moins, je suis nul en script et je n'y arrive pas).
Je m'explique, je prend un exemple :
Admettons que je veuille tirer avec le MOUSE1 (Bouton gauche de la souris) et que, lorsque j'appuie sur une autre touche (On prendra 4) le MOUSE1 devienne la touche pour jump, est-ce possible ? Je n'y arrive pas.
Je me suis inspiré du script pour changer de nom :

set lol_1 "set load2 vstr lol_2; set bind MOUSE1 +attack"
set lol_2 "set load2 vstr lol_1; set bind MOUSE1 +moveup"
set load2 "vstr lol_1"
bind 4 "vstr load2"

Mais ça ne marche pas, dans mon exemple, si j'ajoute ce bind à ma config, dès que j'appuie sur 4 (4 correspond à la touche au dessus des lettres, je ne me trompe pas avec le pavé numérique) ça ne change pas et ça reste sur tirer.
Je cherche à savoir comment réaliser un tel script. J'ai essayé de rajouter des guillemets devant +attack et +moveup mais ce n'est pas ça le problème. J'ai bien lu le tuto sur le scripting (Vraiment très instructif) et ce qui va avec, mais réaliser un script pourtant simple, reste encore compliqué pour moi :P.

Merci de vos réponses !

Avatar du membre
Tizz
Messages : 5547
Enregistré le : 09 juin 2008, 14:12

Re: Script avec deux fonctions différentes sur la même touch

Message par Tizz » 26 juin 2011, 16:32

T'as l'air de toute mélanger quand même. Tes scripts ne se correspondent même pas entre eux. (Pis le "set bind..."... bind est une commande, pas une variable !).

J'ai pas testé, mais ce script devrait fonctionner :

Code : Tout sélectionner

set script "vstr script_1"
set script_1 "set script vstr script_2 ; bind MOUSE1 +attack"
set script_2 "set script vstr script_1 ; bind MOUSE1 +moveup"
bind 4 "vstr script"

SykZ
Messages : 2684
Enregistré le : 30 janv. 2011, 13:38
Localisation : Montélimar - Lyon

Re: Script avec deux fonctions différentes sur la même touch

Message par SykZ » 26 juin 2011, 20:28

Oui je me mélange un peu, je viens aussi de voir que "lol_1" et "load2" sont juste des mots comme ça, je croyais que ça correspondait à quelque chose de spéciale alors qu'on peut mettre ce qu'on veut, du moment que ça ne change pas la façon dont le jeu exécute ce script. C'est beaucoup plus clair maintenant et en fait, c'est plutôt facile de faire un script comme celui-ci.

Le script fonctionne très bien, mais je voudrais adapter ce script à quelque chose de spéciale, j'ai vu que Tarquin utilisait le zoomreset après chaque tir au sr8, aussi inutile que cela puisse paraître pour certain joueur, je trouve ça utile, ça permet de voir ce qu'il se passe autour de nous un poil plus rapidement qu'en laissant le zoom se reset tout seul et puis j'aime bien, seulement, ce script ne marche pas :

Code : Tout sélectionner

set script "vstr script_1"
set script_1 "set script vstr script_2 ; bind MOUSE1 +attack ; ut_zoomreset"
set script_2 "set script vstr script_1 ; bind MOUSE1 +attack"
bind 4 "vstr script"
Ce script me permettrait de pouvoir jouer avec la G36 ou le PSG1 puisqu'après un tir, le zoom reste et je n'aurai qu'à appuyer sur une touche pour alterner. J'ai essayé de mettre le ut_zoomreset sur la troisième ligne au cas où ce serait un problème d'ordre mais rien ne se passe.
C'est bizarre, cela vient peut être du fait qu'il y a deux fois le +attack je sais pas, mais si je modifie le bind par la console, ça fonctionne mais c'est pas pratique...
Merci de ton aide :).

Avatar du membre
rogor
Chef de projet + Expert installation & configuration du jeu
Chef de projet + Expert installation & configuration du jeu
Messages : 1816
Enregistré le : 31 janv. 2009, 20:33
Localisation : La Chapelle sur Erdre (44)

Re: Script avec deux fonctions différentes sur la même touch

Message par rogor » 26 juin 2011, 21:28

Le problème dans ton script vient du bind sur la deuxième ligne.

Code : Tout sélectionner

set script "vstr script_1"
set script_1 "set script vstr script_2 ; bind MOUSE1 +attack ; ut_zoomreset"
set script_2 "set script vstr script_1 ; bind MOUSE1 +attack"
bind 4 "vstr script"
Lorsque tu appuie sur 4 pour que le script passe à script_1, le script va exécuter, dans l'ordre :
- set script vstr script_2
- bind MOUSE1 +attack
- ut_zoomreset
Le ut_zoomreset est en fait activé lorsque tu appuie sur 4, il n'est pas compris dans le bind.
Pour qu'il soit compris dans le bind, vu qu'on ne peut pas rajouter une autre paire de guillemets, il faut faire le bind sur une autre ligne.
Cela donne :

Code : Tout sélectionner

set script "vstr script_1"
set script_1 "set script vstr script_2 ; bind MOUSE1 vstr action" //On bind sur MOUSE1 tout ce que contient la variable action
set script_2 "set script vstr script_1 ; bind MOUSE1 +attack"
bind 4 "vstr script"
set action "+attack ; -attack ; ut_zoomreset" //On attribue à action tout ce qu'on veut dans le bind
Pour que le bind marche, j'ai aussi remarqué qu'il faut rajouter -attack après le +attack, sinon le jeu reste bloqué en mode +attack.

SykZ
Messages : 2684
Enregistré le : 30 janv. 2011, 13:38
Localisation : Montélimar - Lyon

Re: Script avec deux fonctions différentes sur la même touch

Message par SykZ » 26 juin 2011, 21:45

EDIT : J'ai parlé trop vite, ça fonctionnait que en devmap, sur un serveur rien ne se passait et maintenant, en devmap rien ne se passe non plus, alors que je n'ai rien modifié. Étrange script :P. Sinon, je voulais essayer de faire la même chose en utilisant deux touches, c'est peut être plus simple, mais je n'y arrive pas non plus.
Ça devrait donner quelque chose dans ce genre :

Code : Tout sélectionner

set bind 5 "vstr script_1"
set script_1 "bind MOUSE1 +attack ; ut_zoomreset"

Code : Tout sélectionner

set bind 6 "vstr script_2"
set script_2 "bind MOUSE1 +attack"
Je ne sais pas ce qui ne va pas. Si vous avez une autre idée, tout simplement une qui m'éviterait de taper le bind dans la console à chaque fois que je veux changer, je la prend. (Hé oui je suis chiant... 8)).

Répondre