View difference between Paste ID: gYvrEeZr and JiKykVQ6
SHOW: | | - or go back to the newest paste.
1
// This script allows settings to switch with the active weapon.
2
// Only the first 3 slots will be tracked by the scroll wheel and q, specifically this excludes the disguise kit (Spy) and the PDAs (Engineer).
3
// Medic, Spy, Engineer, and permanent non-active weapon versions are also available, contact the author below.
4
5
// The script will only work correctly when switching with keys in the BIND section.
6
// The script cannot know if a weapon switched for any other reason than player input using the keys in the BIND section.
7
// The script cannot know if a weapon switched successfully, and will always assume it has. Examples that prevent/impede switching:
8
//  - Permanent or temporary non-active weapon like gunboats or a melted spy-cicle
9
//  - Minigun spinup/spindown
10
11
12
// Written by /u/genemilder (http://steamcommunity.com/id/Seventy_one)
13
14
15
// ========== INSTRUCTIONS ==========
16
17
// Edit r_drawviewmodel in the SETTINGS section for whether viewmodels are turned on (1) or off (0)
18
// r_drawviewmodel in the prs_ aliases is activated when pressing the attack key with the weapon equipped
19
// r_drawviewmodel in the rls_ aliases is activated when releasing the attack key with the weapon equipped
20
// r_drawviewmodel in the eq_ aliases is activated when switching to that weapon
21
22
// To add additional settings on weapon switch, append them to the eq_ aliases.
23
// To add additional settings on attack/release, append them to the prs_/rls_ aliases.
24
25
// To change which keys can switch weapons, change or add lines in the BINDS section, binding keys only to the aliases already in the binds section
26
// Multiple keys can be bound to the same alias and the script will still work correctly
27
28
// See the following for information on how to install scripts and how to make them class-specific:
29
// http://www.reddit.com/r/tf2scripthelp/wiki/introduction
30
31
// To "undo" the script and changes made, remove the script from your relevant cfg files and execute the lines in the SCRIPT OVERWRITE section (remove the comment marks first)
32
33
34
// ========== BINDS ==========
35
36
bind 1            eq_slot1
37-
bind 2            eq_slot2
37+
bind 2            sw_slot2
38
bind 3            eq_slot3
39-
bind mwheelup     eq_invprev
39+
bind mwheelup     sw_invprev
40-
bind mwheeldown   eq_invnext
40+
bind mwheeldown   sw_invnext
41-
bind q            eq_lastinv
41+
bind q            sw_lastinv
42
bind mouse1      +eq_attack
43
bind rshift       sw_loadout
44
45
46
// ========== SETTINGS ==========
47
48
alias prs_slot1   "r_drawviewmodel 1"
49
alias rls_slot1   "r_drawviewmodel 1"
50
alias prs_slot2   "r_drawviewmodel 1"
51
alias rls_slot2   "r_drawviewmodel 1"
52
alias prs_slot3   "r_drawviewmodel 1"
53
alias rls_slot3   "r_drawviewmodel 1" 
54
55
alias eq_slot1    "slot1; set_slot1; alias at_press prs_slot1; alias at_release rls_slot1; r_drawviewmodel 1"
56
alias eq_slot2    "slot2; set_slot2; alias at_press prs_slot2; alias at_release rls_slot2; r_drawviewmodel 1"
57
alias eq_slot3    "slot3; set_slot3; alias at_press prs_slot3; alias at_release rls_slot3; r_drawviewmodel 1"
58
59
60
// ========== LOGIC ==========
61
62
alias +eq_attack  "+attack; at_press; spec_next"
63
alias -eq_attack  "-attack; at_release" 
64-
alias qs_slot1    "alias eq_invnext eq_slot2; alias eq_invprev eq_slot3; set_lastinv; alias set_lastinv alias eq_lastinv eq_slot1; alias set_slot1 ;         alias set_slot2 qs_slot2; alias set_slot3 qs_slot3"
64+
65
alias qs_slot1    "alias eq_invnext eq_slot2; alias eq_invprev eq_slot3; set_lastinv; alias set_lastinv alias eq_lastinv eq_slot1; alias set_slot1 ;         alias set_slot2 qs_slot2; alias set_slot3 qs_slot3; alias eq_13 eq_slot3"
66-
alias qs_slot3    "alias eq_invnext eq_slot1; alias eq_invprev eq_slot2; set_lastinv; alias set_lastinv alias eq_lastinv eq_slot3; alias set_slot1 qs_slot1; alias set_slot2 qs_slot2; alias set_slot3 "
66+
67
alias qs_slot3    "alias eq_invnext eq_slot1; alias eq_invprev eq_slot2; set_lastinv; alias set_lastinv alias eq_lastinv eq_slot3; alias set_slot1 qs_slot1; alias set_slot2 qs_slot2; alias set_slot3 ;         alias eq_13 eq_slot1"
68-
qs_slot2
68+
69
alias ps_slot2    "alias sw_slot2 ;         alias sw_invprev eq_13;      alias sw_invnext eq_13;      alias sw_lastinv eq_13;      alias sw_loadout ac_slot2; say_team passive secondary"
70
alias ac_slot2    "alias sw_slot2 eq_slot2; alias sw_invprev eq_invprev; alias sw_invnext eq_invnext; alias sw_lastinv eq_lastinv; alias sw_loadout ps_slot2; say_team active secondary"
71
72
ps_slot2
73
qs_slot3
74
eq_slot1
75
76
77
// ========== SCRIPT OVERWRITE ==========
78
79
//r_drawviewmodel 1
80
//bind 1            slot1
81-
//bind mouse1       +attack
81+
82
//bind 3            slot3
83
//bind mwheelup     invprev
84
//bind mwheeldown   invnext
85
//bind q            lastinv
86
//bind mouse1       +attack
87
//unbind rshift