]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - hook-firing_swap.cfg
rename to hook-firing_swap.cfg; document how to add it together with other scripts...
[xonotic/xonotic-data.pk3dir.git] / hook-firing_swap.cfg
diff --git a/hook-firing_swap.cfg b/hook-firing_swap.cfg
new file mode 100644 (file)
index 0000000..e556db7
--- /dev/null
@@ -0,0 +1,57 @@
+// This script allows swapping the primary and secondary fire buttons for any weapon
+//
+// To install, add
+//   exec hook-firing_swap.cfg
+// to your autoexec.cfg
+
+// NOTE: if combined with other scripts that also hook cl_hook_activeweapon, do
+//   alias cl_hook_activeweapon "firing_swap $1; commands of other scripts..."
+// after exec'ing them all from your autoexec.cfg
+
+// Set the cvars for each gun
+seta cl_swapattacks_tuba 0
+seta cl_swapattacks_laser 0
+seta cl_swapattacks_shotgun 0
+seta cl_swapattacks_uzi 0
+seta cl_swapattacks_campingrifle 0
+seta cl_swapattacks_grenadelauncher 0
+seta cl_swapattacks_electro 0
+seta cl_swapattacks_hlac 0
+seta cl_swapattacks_crylink 0
+seta cl_swapattacks_minstanex 0
+seta cl_swapattacks_nex 0
+seta cl_swapattacks_hagar 0
+seta cl_swapattacks_seeker 0
+seta cl_swapattacks_fireball 0
+seta cl_swapattacks_rocketlauncher 0
+seta cl_swapattacks_hook 0
+seta cl_swapattacks_porto 0
+
+// This part of the code is necessary to keep us firing when we switch weapons while holding a fire button pressed
+// Also updates the keys before firing, so we don't have to switch to another weapon and back to apply the changes
+set fire_last 0
+set fire2_last 0
+alias +fire "firing_swap_apply $firing_lastweapon; set fire_last 1; +checkattack"
+alias -fire "set fire_last 0; -checkattack"
+alias +fire2 "firing_swap_apply $firing_lastweapon; set fire2_last 1; +checkattack2"
+alias -fire2 "set fire2_last 0; -checkattack2"
+alias firing_switch_attack_0 ""
+alias firing_switch_attack2_0 ""
+alias firing_switch_attack_1 "+fire"
+alias firing_switch_attack2_1 "+fire2"
+alias firing_switch "-fire; -fire2; firing_switch_attack_$fire_last; firing_switch_attack2_$fire2_last;"
+
+// Now apply changes to the key binds and get the weapon we are using
+alias firing_decision_0 "alias +checkattack +attack; alias -checkattack -attack; alias +checkattack2 +attack2; alias -checkattack2 -attack2"
+alias firing_decision_1 "alias +checkattack +attack2; alias -checkattack -attack2; alias +checkattack2 +attack; alias -checkattack2 -attack"
+alias firing_swap_apply "firing_decision_${$1}"
+alias firing_swap "firing_swap_apply cl_swapattacks_$1; set firing_lastweapon cl_swapattacks_$1; firing_switch"
+
+// Not correct, but prevents firing from braking after executing the script until switching weapons
+alias +fire +attack
+alias -fire -attack
+alias +fire2 +attack2
+alias -fire2 -attack2
+
+// install
+alias cl_hook_activeweapon "firing_swap $1"