Voici quelques exemples et explications d'alias (macros, scripts, comme vous voulez) pour Quake3.
Si vous ne savez pas comment utiliser un alias, commencez par lire le dernier paragraphe de cette page :)
Cette page regroupe quelques alias assez simples, intéressants pour se familiariser avec les possibilités.
Mais il est possible d'aller beaucoup plus loin dans la conception d'alias : à voir sur la page des alias avancés, et des alias spéciaux CPM.
Associer une action compliquée à une touche ^
Vous avez deux possibilités :
bind <touche> <série d'action>
ou bien :
bind <touche> vstr <macro>
set <macro> <série d'action>
vstr truc signifie simplement : éxecute "truc" comme s'il s'agissait d'une commande.
Intérêt de la seconde formule : vous pouvez faire appel beaucoup plus simplement à la même commande depuis plusieurs autres, et si vous voulez modifier cette commande, vous le faites à un seul endroit. Privilégiez cette solution dans la construction d'alias compliqués.
Une même touche pour commuter entre deux actions ^
Deux cas possibles : soit d'une touche vous voulez faire alterner la valeur d'une variable, soit vous voulez qu'une touche alterne entre deux commandes plus élaborées.
// variable qui peut valoir 0 ou 1 : commande toggle
bind l toggle cg_lagometer
bind f toggle cg_drawFPS
Le second cas est un poil plus compliqué :
// commuter entre 2 actions
set action1 "<série d'action> ; set myaction vstr action2"
set action2 "<autre série d'action> ; set myaction vstr action1"
bind <action> vstr myaction
set myaction vstr action1
La touche choisit fait : éxécute le contenu de la variable "myaction" comme s'il s'agissait d'une commande (ligne 3)
La ligne 4 définit la première valeur de la variable "myaction", qui vaut : éxécute le contenu de action1
Les lignes 1 et 2 font chacune deux choses : d'une part elles définissent les deux actions entre lesquelles on veut commuter, et d'autre part elles déclarent que la variable "myaction" vaudra désormais "éxécute l'autre action", ce qui garantit l'alternance entre les deux.
Ce principe est exploité par la suite, il sera peut-etre plus compréhensible dans les exemples.
// Rocket Jump ^
All times classic, c'est le premier alias de tout le monde... et le premier alias qu'on cesse d'utiliser une fois qu'on devient un minimum expérimenté.
cl_pitchspeed 9999
set rocketjump "+lookdown;wait;+attack;+moveup;wait;-attack;-moveup;-lookdown;wait;centerview"
bind x vstr rocketjump
Selon la rapidité de votre ordi, vous pourrez avoir besoin de rajouter des instructions wait entre les différentes actions.
// Joli Screenshot ^
Un screenshot dans icône, crosshair, rien que la map, la viande froide et les oiseaux.
set joliscreenshot "cg_draw2d 0; screenshot; toggle cg_draw2d"
bind F12 vstr joliscreenshot
ou, si vous jouez avec l'arme visible :
set joliscreenshot "cg_draw2d 0;cg_drawgun 0; screenshot; toggle cg_draw2d; toggle cg_drawgun"
bind F12 vstr joliscreenshot
// Zoom commutable ^
Le zoom dans Quake3 est une commande du type +action : elle est effective tant qu'on appuie sur la touche. Si vous voulez un zoom qui soit activé d'une touche, puis désactivé d'un autre coup sur la touche :
set fovnormale "cg_fov 90; set myzoom vstr fovgrossie"
set fovgrossie "cg_fov 40; set myzoom vstr fovnormale"
bind z vstr myzoom
vstr fovnormale
N'oubliez pas la 4° ligne : elle initialise le script, pour que vous commenciez avec une fov normale.
// One touch demo ^
D'une touche, enregistrer une demo qui sera automatiquement nommée demo0000, puis demo0001, etc...
Attention : ne marche pas tout le temps avec le mod OSP
set rdem " echo Recording... ; g_syncronousClients 1; record; g_syncronousClients 0; set rstoggle vstr sdem"
set sdem " echo STOP ; stoprecord; set rstoggle vstr rdem"
set rstoggle "vstr rdem"
bind F5 "vstr rstoggle"
// Railgun ^
Humm, des pas vraiment un alias hein, mais les préférences pour le rail font partie d'une bonne config.
En ce qui concerne la mienne, voilà ce que j'utilise, et qui fait un rail très fin et dense (et bien visible même avec un
gros picmip)
seta r_railWidth "16"
seta r_railCoreWidth "6"
seta r_railSegmentLength "32"
seta cg_railTrailTime "300"
color 7
Un truc marrant qu'on peut faire avec le railgun est choisir une couleur différente à chaque fois que l'on tire:
set color1 "color 1; set mycolor vstr color2"
set color2 "color 2; set mycolor vstr color3"
set color3 "color 3; set mycolor vstr color4"
set color4 "color 4; set mycolor vstr color5"
set color5 "color 5; set mycolor vstr color6"
set color6 "color 6; set mycolor vstr color7"
set color7 "color 7; set mycolor vstr color1"
vstr color1
//modifiez votre bind qui sélectionne le railgun :
bind 7 "weapon 7; vstr mycolor"
// des settings différents pour chaque arme ^
Une question fréquente est : comment faire en sorte d'avoir des réglages (fov, etc...) différents pour chaque arme ?
Voici le principe, tiré de ma config :
J'utilise une fov de 120, je joue sans voir l'arme, et sans les marks on wall (traces d'impact sur les murs)
Sauf pour le gauntlet : au corps à corps très proche, je passe en fov 150, et j'affiche l'arme
Et sauf pour le shaft : j'affiche l'arme et j'augmente un poil la fov pour ne pas être gené, et j'active les marks on wall, ce qui permet je trouve d'avoir une bonne notion de la distance de tir du rayon (on sait si on rate parce qu'on vise mal, ou si on rate parce qu'on est trop loin)
Voilà comment ça se passe dans mon cfg :
bind 1 "vstr usegaunt; weapon 1" // gauntlet
bind 2 "vstr usemg; weapon 2" // MG
bind 3 "vstr usessg; weapon 3" // ssg
bind 4 "vstr usegl; weapon 4" // GL
bind 5 "vstr userl; weapon 5" // rl
bind 6 "vstr useshaft; weapon 6" // shaft
bind 7 "vstr userg; weapon 7" // rg
bind 8 "vstr usepg; weapon 8" // plasma
bind 9 "vstr usebfg; weapon 9" // bfg
bind BACKSPACE "vstr usenext"
set MyFov "cg_fov 120"
set MySens "sensitivity 6.8"
set usenext "cg_drawGun 0; cg_marks 0; weapnext; vstr MyFov; vstr MySens"
set usegaunt "cg_drawgun 1; cg_marks 0; cg_fov 150; vstr MySens"
set usemg "cg_drawGun 0; cg_marks 0; vstr MyFov; vstr MySens"
set usessg "cg_drawGun 0; cg_marks 0; vstr MyFov; vstr MySens"
set usegl "cg_drawGun 0; cg_marks 0; vstr MyFov; vstr MySens"
set userl "cg_drawGun 0; cg_marks 0; vstr MyFov; vstr MySens"
set useshaft "cg_drawGun 1; cg_marks 1; cg_fov 130; vstr MySens"
set userg "cg_drawGun 0; cg_marks 0; vstr MyFov; sensitivity 6"
set usepg "cg_drawGun 0; cg_marks 0; vstr MyFov; vstr MySens"
set usepg "cg_drawGun 0; cg_marks 0; vstr MyFov; vstr MySens"
vstr MyFov
vstr MySens
Limite du principe : chaque réglage pour chaque arme est appelé lorsque vous appuyez sur la touche qui lui est associée. Si vous changez d'arme automatiquement, ou parce que vous tombez à cours de munition, vous conserverez les réglages de l'arme précédente.
// Le principe du Thin Shaft ^
Le "Thin Shaft" est une astuce qui permet, sans cheat, sans modification des graphiques, d'avoir un shaft fin comme une aiguille à tricoter, ce qui pour viser est idéal.
Le principe est le suivant : lorsqu'on augmente la fov au delà de 180°, le champ de vision n'est pas modifié, mais la source du tir recule derrière vous. Avec une fov de 300° par exemple, la source de l'éclair est très loin derrière vous, et ne dépasse plus devant vous que la queue du tir, toute fine. Si par dessus cette fov à 300°, vous zoomez, mais en spécifiant une fov de zoom normale (90 ou 120° donc), vous avez une vision normale.
Avantage : un shaft extrèmement fin.
Inconvénient : le zoom n'est plus disponible, et la sensation à la souris (sensitivity) n'est pas tout à fait la même)
Le principe :
cg_fov 300
cg_zoomfov 90 // votre fov habituelle
cg_drawgun 1
+zoom
// Toutes armes + thinshaft ^
Même principe que précédemment, à savoir des réglages propres à chaque arme, intégrant le thinshaft
bind 1 "weapon 1; vstr fovnormale; +zoom" // gauntlet
bind 2 "weapon 2; vstr fovnormale; +zoom" // machinegun
bind 3 "weapon 3; vstr fovnormale; +zoom" // shotgun
bind 4 "weapon 4; vstr fovnormale; +zoom" // grenades
bind 5 "weapon 5; vstr fovnormale; +zoom" // rockets
bind 6 "weapon 6; vstr fovlarge; +zoom" // lightning
bind 7 "weapon 7; vstr fovnormale; +zoom" // railgun
bind 8 "weapon 8; vstr fovnormale; +zoom" // plasma
bind 9 "weapon 9; vstr fovnormale; +zoom" // bfg
set fovlarge "cg_fov 300"
set fovnormale "cg_fov 90" // votre fov habituelle
seta cg_zoomfov 90
vstr fovnormale
+zoom
Certains alias sont très avancés, sont répartis en plusieurs fichiers, permettent des actions complexes.
De plus, dans quelques mods (OSP, CPM, q3Comp entre autres) on peut concevoir des alias du type +action, qui sont effectifs tant qu'on appuie sur une touche.
C'est l'objet de la page des alias avancés.
Autres lectures conseillées pour les avides d'informations ou les débutants :
- la liste des touches bindables (et exemple de config vide)
- un guide du débutant pour se faire sa propre config, si vous ne savez pas quoi faire d'un alias
- la liste des commandes et variables de Quake3
Autres lectures dans le même genre :
- le guide la config Quake2
- le guide la config Unreal Tournament
(lectures très intéressantes, mais que je ne mets plus à jour, pas la peine de me poser des questions :)