Post by Xarious on Oct 17, 2016 16:13:12 GMT -5
I'm going to start this off by issuing a PSA: Combat scripts are for people who don't have the skill to do things themselves. I am in no way endorsing the use of them in this post, however, it is inevitable that throughout your JKA experience, you will run into people using these, and it is best to know what they do and how they work ahead of time. That said, this is a list of some of the more notable scripts in the game, including both combat and utility scripts, and is dedicated to explaining the bare basics of scripting.
LowJump: This is the #1 most common script in JKA. It allows the user to jump lower than an average hop. You can semi-replicate these effects by crouching during a hop, but scripts are far more effective and allow the user to be lower than what is normally possible. There are several ways to script it, however here are a few common & efficient ones.
While things like +movedown (the command for crouch) also work, they can cause rolling at the end of the low jump. That is why in most scripts for this, it is replaced by -moveup.
As you can see from the second script, you can customize other options such as the use of +moveright. The first script is the base script, the second is an alternate version.
Wiggle: Over the years, plenty of self-wiggling scripts have came out to allow people with less-active wrists to copycat the professional players. There are maaany ways to do this, just like with LJ scripts, but here's an example:
In this particular one, its set to end slightly more to the left side for those who are poking while wiggling, but there are others that aim to return to center at the end. These kinds of scripts are capable of wiggling consistently and much faster than the average person can hope to do. Often times this can be lethal by itself.
Of course, where ever there are wiggle scripts, you can be sure there are spin scripts out there, such as this one:
Though these are often less effective and very much dependent on the sv_fps of the server they're on, as rotating too fast will simply ghost.
Kata moves: There are also many scripts that try to make multi-stage katas simplified into one key. Here are a few examples of that:
Staff air attack:
Lunge:
Medium DFA:
Red DFA:
These make it possible to do these moves in circumstances where they would otherwise not be (such as lunging on-the-go). They also make it easier to not mess up.
Anti-Roll: With some moves you do, rolling becomes a hassle. Some scripts come with in-built anti-roll so that you don't accidentally do so. As already mentioned, things like the lowjump script replace +movedown with -moveup and go around crouching entirely. However, another common script is a crouch button that physically cannot roll, such as this:
Sequence Binds: Sometimes, people have a specific task they set out to script. As opposed to combat-particular scripts, these are much longer and often are only useful in very specific situations. For example, the tower glitch in ffa3 has a script for it:
Because scripts are also heavily FPS dependent, you'll see many that incorporate FPS into their code. You would have to manually reset it after use. Things such as "wait" commands that specify a numerical value are based on FPS count (so wait 10 would specify to wait for the first 10 frames of the action before moving to the next item in the sequence). Most importantly, higher FPS values require longer wait times, as more frames are packed into that single second.
*Another very important thing to note about longer, more complex scripts like this, is that if they exceed a certain limit, they will always be active when typing. This script, for example, is one of them. If you were to bind "E" to this script, any time you press E (even in the console or in chat) it will attempt to follow the script. Because you're held stationary, it wont be able to do much, however it will change your FPS settings on keypress.
Scripts that neglect com_maxfps commands sometimes wont be able to function due to the fact that they may only work under specific framerates.
This forward rolling script is a perfect example of a script that requires higher FPS values to work properly, and to be fair, requires at least some kind of FPS specifier to function effectively for that matter. Using this script with FPS values below 50 wont even function, and as you increase in FPS values, the delay becomes shorter and shorter. At excessively high values, the script may also cease to function because the wait time then becomes too short. This is a perfect example of why adding com_maxfps specifiers at the start are important. You may wish to end your script with a com_maxfps value as well so that you can return to your normal FPS once the script completes.
Full Force: Of course, scripts are twice as prevalent in FF communities, because it allows them to use more than one forcepower at the same time. For example, there is a saber throw + force pull script:
Convenience Scripts: Sometimes, scripts aren't necessarily bad things though. For example, you might want an ease-of-access settings change, such as the color of your saber or your pitch. For things like this, you can easily use vstr commands to allow you to cycle through them on a single key. Here is one such example:
As you can see from this script, they used vstr to make a cycle to change their sensitivity. Each change, they also included echos into the scripts so that the console would inform them what sensitivity setting it had been changed to.
The scripts also have to specify the next target.
The next item in the sequence would then be namechange_01, as an example.
You can also do this in command sets, such as scripts to make demos
Or rather long scripts to make major modifications
Keep in mind, long vstr scripts like this will need to be made into their own separate cfg file as an executable, as they will not be able to be set via console on a single bind. You would do this by writing the script in a .txt, changing the file extension to .cfg, and binding a key to exec that cfg. This way, the key would be bound to whatever you have it set in the cfg. In this case, S was rebound to "+back;vstr colorchange."
Questions about how something works? Just ask! Comments are open as always.
LowJump: This is the #1 most common script in JKA. It allows the user to jump lower than an average hop. You can semi-replicate these effects by crouching during a hop, but scripts are far more effective and allow the user to be lower than what is normally possible. There are several ways to script it, however here are a few common & efficient ones.
"-moveup; wait 2; +moveup; wait 2; -moveup"
"+moveright; wait 2; -moveright; wait 2; +forward; wait 20; -forward; wait 2; +moveup; wait 2; -moveup"
While things like +movedown (the command for crouch) also work, they can cause rolling at the end of the low jump. That is why in most scripts for this, it is replaced by -moveup.
As you can see from the second script, you can customize other options such as the use of +moveright. The first script is the base script, the second is an alternate version.
Wiggle: Over the years, plenty of self-wiggling scripts have came out to allow people with less-active wrists to copycat the professional players. There are maaany ways to do this, just like with LJ scripts, but here's an example:
"cl_yawspeed 2000; +left; wait 10; -left; +right; wait 10; -right; +left; wait 10; -left; +right; wait 10; -right; +left; wait 10; -left; cl_yawspeed 140"
Of course, where ever there are wiggle scripts, you can be sure there are spin scripts out there, such as this one:
"cl_yawspeed -6450; +attack; +left; +moveright; wait 2; wait 2; -moveright; -left; +attack; +left; wait 2; wait 2; -moveright; -left; -attack; cl_yawspeed 140"
Kata moves: There are also many scripts that try to make multi-stage katas simplified into one key. Here are a few examples of that:
Staff air attack:
"-forward; +back; +moveup; +attack; wait 2; -back; -moveup; -attack"
"+movedown; +forward; +attack; wait 2; -movedown; -forward; -attack"
"+moveup; +forward; +attack"
"+forward; +moveup; +attack; wait 10; -forward; -moveup; -attack"
Anti-Roll: With some moves you do, rolling becomes a hassle. Some scripts come with in-built anti-roll so that you don't accidentally do so. As already mentioned, things like the lowjump script replace +movedown with -moveup and go around crouching entirely. However, another common script is a crouch button that physically cannot roll, such as this:
"+speed; wait 2; +movedown"
Sequence Binds: Sometimes, people have a specific task they set out to script. As opposed to combat-particular scripts, these are much longer and often are only useful in very specific situations. For example, the tower glitch in ffa3 has a script for it:
"com_maxfps 30;+forward;wait 8;+moveup;wait 40;-moveup;+movedown;wait 10;-movedown;+moveup;wait 10;-forward;+back;wait 10;-back;-moveup;com_maxfps 85"
*Another very important thing to note about longer, more complex scripts like this, is that if they exceed a certain limit, they will always be active when typing. This script, for example, is one of them. If you were to bind "E" to this script, any time you press E (even in the console or in chat) it will attempt to follow the script. Because you're held stationary, it wont be able to do much, however it will change your FPS settings on keypress.
Scripts that neglect com_maxfps commands sometimes wont be able to function due to the fact that they may only work under specific framerates.
"+forward; wait 50; +movedown; wait 2; -forward; -movedown
Full Force: Of course, scripts are twice as prevalent in FF communities, because it allows them to use more than one forcepower at the same time. For example, there is a saber throw + force pull script:
"+altattack; force_pull"
Convenience Scripts: Sometimes, scripts aren't necessarily bad things though. For example, you might want an ease-of-access settings change, such as the color of your saber or your pitch. For things like this, you can easily use vstr commands to allow you to cycle through them on a single key. Here is one such example:
bind 6 "vstr snschange"
set snschange "vstr sns0"
set sns0 "seta sensitivity 1.7; set snschange vstr sns1; echo ^7******************; echo ^7Sensitivity: 1.7 ; echo ^7******************"
set sns1 "seta sensitivity 3; set snschange vstr sns2; echo ^7******************; echo ^7Sensitivity: 3.0 ; echo ^7******************"
set sns2 "seta sensitivity 5; set snschange vstr sns3; echo ^7******************; echo ^7Sensitivity: 5.0 ; echo ^7******************"
set sns3 "seta sensitivity 8.8; set snschange vstr sns4; echo ^7******************; echo ^7Sensitivity: 8.8 ; echo ^7******************"
set sns4 "seta sensitivity 11.4; set snschange vstr sns5; echo ^7*******************; echo ^7Sensitivity: 11.4 ; echo ^7******************-"
set sns5 "seta sensitivity 18; set snschange vstr sns6; echo ^7*******************; echo ^7Sensitivity: 18.0 ; echo ^7******************-"
set sns6 "seta sensitivity 20; set snschange vstr sns7; echo ^7*******************; echo ^7Sensitivity: 20.0 ; echo ^7******************-"
set sns7 "seta sensitivity 25; set snschange vstr sns8; echo ^7*******************; echo ^7Sensitivity: 25.0 ; echo ^7******************-"
set sns8 "seta sensitivity 100; set snschange vstr sns0; echo ^7********************; echo ^7Sensitivity: 100.0 ; echo ^7********************"
set snschange "vstr sns0"
set sns0 "seta sensitivity 1.7; set snschange vstr sns1; echo ^7******************; echo ^7Sensitivity: 1.7 ; echo ^7******************"
set sns1 "seta sensitivity 3; set snschange vstr sns2; echo ^7******************; echo ^7Sensitivity: 3.0 ; echo ^7******************"
set sns2 "seta sensitivity 5; set snschange vstr sns3; echo ^7******************; echo ^7Sensitivity: 5.0 ; echo ^7******************"
set sns3 "seta sensitivity 8.8; set snschange vstr sns4; echo ^7******************; echo ^7Sensitivity: 8.8 ; echo ^7******************"
set sns4 "seta sensitivity 11.4; set snschange vstr sns5; echo ^7*******************; echo ^7Sensitivity: 11.4 ; echo ^7******************-"
set sns5 "seta sensitivity 18; set snschange vstr sns6; echo ^7*******************; echo ^7Sensitivity: 18.0 ; echo ^7******************-"
set sns6 "seta sensitivity 20; set snschange vstr sns7; echo ^7*******************; echo ^7Sensitivity: 20.0 ; echo ^7******************-"
set sns7 "seta sensitivity 25; set snschange vstr sns8; echo ^7*******************; echo ^7Sensitivity: 25.0 ; echo ^7******************-"
set sns8 "seta sensitivity 100; set snschange vstr sns0; echo ^7********************; echo ^7Sensitivity: 100.0 ; echo ^7********************"
The scripts also have to specify the next target.
bind 7 "vstr namechange"
set namechange "vstr namechange_00"
set namechange "vstr namechange_00"
You can also do this in command sets, such as scripts to make demos
bind F3 "vstr recordscript"
set recordscript "vstr recscr"
set recscr "g_synchronousClients 1;set recordscript vstr recscr2;echo ^7Demo ^3sync1"
set recscr2 "record;set recordscript vstr recscr3;echo ^7Demo ^2started"
set recscr3 "g_synchronousClients 0;set recordscript vstr recscr4;echo ^7Demo ^3sync0"
set recscr4 "stoprecord;set recordscript vstr recscr;echo ^7Demo ^1stopped"
set recordscript "vstr recscr"
set recscr "g_synchronousClients 1;set recordscript vstr recscr2;echo ^7Demo ^3sync1"
set recscr2 "record;set recordscript vstr recscr3;echo ^7Demo ^2started"
set recscr3 "g_synchronousClients 0;set recordscript vstr recscr4;echo ^7Demo ^3sync0"
set recscr4 "stoprecord;set recordscript vstr recscr;echo ^7Demo ^1stopped"
set colorchange "vstr colorchange__v_1"
bind S "+back;vstr colorchange"
set colorchange__v_1 "set colorchange vstr colorchange__v_2"
set colorchange__v_2 "set colorchange vstr colorchange__v_3"
set colorchange__v_3 "set colorchange vstr colorchange__v_4"
set colorchange__v_4 "set colorchange vstr colorchange__v_5"
set colorchange__v_5 "set colorchange vstr colorchange__v_6"
set colorchange__v_6 "set colorchange vstr colorchange__v_7"
set colorchange__v_7 "set colorchange vstr colorchange__v_8"
set colorchange__v_8 "set colorchange vstr colorchange__v_9"
set colorchange__v_9 "set colorchange vstr colorchange__v_10"
set colorchange__v_10 "set colorchange vstr colorchange__v_11"
set colorchange__v_11 "set colorchange vstr colorchange__v_12"
set colorchange__v_12 "set colorchange vstr colorchange__v_13"
set colorchange__v_13 "set colorchange vstr colorchange__v_14"
set colorchange__v_14 "set colorchange vstr colorchange__v_15"
set colorchange__v_15 "set colorchange vstr colorchange__v_16"
set colorchange__v_16 "set colorchange vstr colorchange__v_17"
set colorchange__v_17 "set colorchange vstr colorchange__v_18"
set colorchange__v_18 "set colorchange vstr colorchange__v_19"
set colorchange__v_19 "set colorchange vstr colorchange__v_20"
set colorchange__v_20 "set colorchange vstr colorchange__v_100"
set colorchange__v_100 "set colorchange vstr colorchange__v_110"
set colorchange__v_110 "set colorchange vstr colorchange__v_120"
set colorchange__v_120 "set colorchange vstr colorchange__v_130"
set colorchange__v_130 "set colorchange vstr colorchange__v_140"
set colorchange__v_140 "set colorchange vstr colorchange__v_150"
set colorchange__v_150 "set colorchange vstr colorchange__v_160"
set colorchange__v_160 "set colorchange vstr colorchange__v_170"
set colorchange__v_170 "set colorchange vstr colorchange__v_180"
set colorchange__v_180 "set colorchange vstr colorchange__v_190"
set colorchange__v_190 "set colorchange vstr colorchange__v_200"
set colorchange__v_200 "set colorchange vstr colorchange__v_210"
set colorchange__v_210 "set colorchange vstr colorchange__v_220"
set colorchange__v_220 "set colorchange vstr colorchange__v_230"
set colorchange__v_230 "set colorchange vstr colorchange__v_240"
set colorchange__v_240 "set colorchange vstr colorchange__v_250"
set colorchange__v_250 "set colorchange vstr colorchange_1"
set colorchange_1 "seta color1 0;seta color2 4; set char_color_red 255; set char_color_green 0; set char_color_blue 0;set colorchange__v_250 vstr colorchange_2;set colorchange vstr colorchange__v_1"
set colorchange_2 "seta color1 2;seta color2 4; set char_color_red 255; set char_color_green 255; set char_color_blue 0;set colorchange__v_250 vstr colorchange_3;set colorchange vstr colorchange__v_1"
set colorchange_3 "seta color1 4;seta color2 0; set char_color_red 0; set char_color_green 0; set char_color_blue 255;set colorchange__v_250 vstr colorchange_4;set colorchange vstr colorchange__v_1"
set colorchange_4 "seta color1 0;seta color2 2; set char_color_red 0; set char_color_green 0; set char_color_blue 100;set colorchange__v_250 vstr colorchange_5;set colorchange vstr colorchange__v_1"
set colorchange_5 "seta color1 1;seta color2 1; set char_color_red 0; set char_color_green 255; set char_color_blue 0;set colorchange__v_250 vstr colorchange_6;set colorchange vstr colorchange__v_1"
set colorchange_6 "seta color1 4;seta color2 2; set char_color_red 256; set char_color_green 256; set char_color_blue 256;set colorchange__v_250 vstr colorchange_1;set colorchange vstr colorchange__v_1"
bind S "+back;vstr colorchange"
set colorchange__v_1 "set colorchange vstr colorchange__v_2"
set colorchange__v_2 "set colorchange vstr colorchange__v_3"
set colorchange__v_3 "set colorchange vstr colorchange__v_4"
set colorchange__v_4 "set colorchange vstr colorchange__v_5"
set colorchange__v_5 "set colorchange vstr colorchange__v_6"
set colorchange__v_6 "set colorchange vstr colorchange__v_7"
set colorchange__v_7 "set colorchange vstr colorchange__v_8"
set colorchange__v_8 "set colorchange vstr colorchange__v_9"
set colorchange__v_9 "set colorchange vstr colorchange__v_10"
set colorchange__v_10 "set colorchange vstr colorchange__v_11"
set colorchange__v_11 "set colorchange vstr colorchange__v_12"
set colorchange__v_12 "set colorchange vstr colorchange__v_13"
set colorchange__v_13 "set colorchange vstr colorchange__v_14"
set colorchange__v_14 "set colorchange vstr colorchange__v_15"
set colorchange__v_15 "set colorchange vstr colorchange__v_16"
set colorchange__v_16 "set colorchange vstr colorchange__v_17"
set colorchange__v_17 "set colorchange vstr colorchange__v_18"
set colorchange__v_18 "set colorchange vstr colorchange__v_19"
set colorchange__v_19 "set colorchange vstr colorchange__v_20"
set colorchange__v_20 "set colorchange vstr colorchange__v_100"
set colorchange__v_100 "set colorchange vstr colorchange__v_110"
set colorchange__v_110 "set colorchange vstr colorchange__v_120"
set colorchange__v_120 "set colorchange vstr colorchange__v_130"
set colorchange__v_130 "set colorchange vstr colorchange__v_140"
set colorchange__v_140 "set colorchange vstr colorchange__v_150"
set colorchange__v_150 "set colorchange vstr colorchange__v_160"
set colorchange__v_160 "set colorchange vstr colorchange__v_170"
set colorchange__v_170 "set colorchange vstr colorchange__v_180"
set colorchange__v_180 "set colorchange vstr colorchange__v_190"
set colorchange__v_190 "set colorchange vstr colorchange__v_200"
set colorchange__v_200 "set colorchange vstr colorchange__v_210"
set colorchange__v_210 "set colorchange vstr colorchange__v_220"
set colorchange__v_220 "set colorchange vstr colorchange__v_230"
set colorchange__v_230 "set colorchange vstr colorchange__v_240"
set colorchange__v_240 "set colorchange vstr colorchange__v_250"
set colorchange__v_250 "set colorchange vstr colorchange_1"
set colorchange_1 "seta color1 0;seta color2 4; set char_color_red 255; set char_color_green 0; set char_color_blue 0;set colorchange__v_250 vstr colorchange_2;set colorchange vstr colorchange__v_1"
set colorchange_2 "seta color1 2;seta color2 4; set char_color_red 255; set char_color_green 255; set char_color_blue 0;set colorchange__v_250 vstr colorchange_3;set colorchange vstr colorchange__v_1"
set colorchange_3 "seta color1 4;seta color2 0; set char_color_red 0; set char_color_green 0; set char_color_blue 255;set colorchange__v_250 vstr colorchange_4;set colorchange vstr colorchange__v_1"
set colorchange_4 "seta color1 0;seta color2 2; set char_color_red 0; set char_color_green 0; set char_color_blue 100;set colorchange__v_250 vstr colorchange_5;set colorchange vstr colorchange__v_1"
set colorchange_5 "seta color1 1;seta color2 1; set char_color_red 0; set char_color_green 255; set char_color_blue 0;set colorchange__v_250 vstr colorchange_6;set colorchange vstr colorchange__v_1"
set colorchange_6 "seta color1 4;seta color2 2; set char_color_red 256; set char_color_green 256; set char_color_blue 256;set colorchange__v_250 vstr colorchange_1;set colorchange vstr colorchange__v_1"
Keep in mind, long vstr scripts like this will need to be made into their own separate cfg file as an executable, as they will not be able to be set via console on a single bind. You would do this by writing the script in a .txt, changing the file extension to .cfg, and binding a key to exec that cfg. This way, the key would be bound to whatever you have it set in the cfg. In this case, S was rebound to "+back;vstr colorchange."
Questions about how something works? Just ask! Comments are open as always.