45 lines
1.6 KiB
Markdown
45 lines
1.6 KiB
Markdown
# Hello and welcome to tfscript!
|
|
|
|
## Basic overview
|
|
|
|
tfscript is meant to simplify the complexity of creating tf2 keybinds. While simple binds may be easy, more complex actions such as key combinations and toggles can be quite complex.
|
|
|
|
For example, this config will bind "e" to call for medic, unless mouse4 is held, in which case it will call for an ÜberCharge:
|
|
|
|
```
|
|
alias call_for_medic "voicemenu 0 0"
|
|
alias call_for_uber "voicemenu 1 6"
|
|
alias e_bind call_for_medic
|
|
bind e e_bind
|
|
alias +toggle_state "alias e_bind call_for_uber"
|
|
alias -toggle_state "alias e_bind call_for_medic"
|
|
bind mouse4 "+toggle_state"
|
|
```
|
|
|
|
There are some issues with this:
|
|
- It is quite verbose, and if several of these exist the file can become difficult to traverse
|
|
- There is a lack of clarity in the voicemenu command, only the bind name explains what it does
|
|
- If either "mouse4" or "e" had a prior function, it has now been overwritten
|
|
- The scope is dictated by what `.cfg` file this is located within, which can cause problems
|
|
|
|
|
|
|
|
The tfscript way of doing this is
|
|
```
|
|
default:
|
|
e:
|
|
double:
|
|
primary:
|
|
impulse: voice "medic"
|
|
secondary:
|
|
impulse: voice "activate uber"
|
|
condition: mouse4
|
|
```
|
|
|
|
There are several benefits to this:
|
|
- The indentation allows for easier scanning of the file
|
|
- The voicemenu commands have been replaced with the clearer "voice" impulse
|
|
- Since this is within the `default` section, it is clear that there are is no "prior function" to overwrite and this will apply to all classes unless specifically overwritten.
|
|
|
|
## Known issues, problems, etc.
|
|
none everything is perfect and there are no problems it is all amazing |