PDA

View Full Version : Combo max help



HercStampede
4th April 18, 19:13
Hello, using combo max to get some combo scripts going, however I don't know how to bound it to a button on my controller. So for example, if you could tell me what command I need to get the combo to start when I press right on the rs on the ps4. Any help greatly appreciated.

Swizzy
5th April 18, 01:57
One thread is quite enough thank you.

To answer your question; you'd use "if (get_val(PS4_RX) < -20) { combo_run(maxcmb); }" or "if (get_val(PS4_RX) > 20) { combo_run(maxcmb); }" i'm not 100% sure if left or right is positive or negative, so try one or the other... they should of course be placed in the main section.

27321.john.3159
5th April 18, 02:07
One thread is quite enough thank you.

To answer your question; you'd use "if (get_val(PS4_RX) < -20) { combo_run(maxcmb); }" or "if (get_val(PS4_RX) > 20) { combo_run(maxcmb); }" i'm not 100% sure if left or right is positive or negative, so try one or the other... they should of course be placed in the main section.

Right is positive. Up is negative.

Swizzy
5th April 18, 02:19
Right is positive. Up is negative.

Thanks, i only remember up/down due to using it quite frequently for anti-recoil :)

HercStampede
5th April 18, 11:18
Thank you so much swizzy and john for taking the time to respond and post that. I really appreciate it. So it seems that I'd use ps4 rx + or - depending on left or right and ps4 ry + or - depending on up or down? also, is there a post somewhere that lists this commands? like how to bound a combo to r2 or l2, maybe even the ls? thank you in advance.

Swizzy
5th April 18, 12:33
Thank you so much swizzy and john for taking the time to respond and post that. I really appreciate it. So it seems that I'd use ps4 rx + or - depending on left or right and ps4 ry + or - depending on up or down? also, is there a post somewhere that lists this commands? like how to bound a combo to r2 or l2, maybe even the ls? thank you in advance.

There's no explicit explanation for every use case, but all commands are listed in the manual, i would recommend that you read through it, if you have any questions after that, we'll help you further.

RX/RY are different due to the way sticks work (going both up, down, left and right) they're separated by their axes (X - Horizontal, Y - Vertical), they also rarely go back to 0 when released, therefor they need some minor special treatment.

Every other button you can usually get away with just doing if (get_val(PS4_R2)) { combo_run(maxcmb); } as the default state is 0 (not pressed/pulled) which is the equivalent of false, any non-zero value is considered to be true

HercStampede
9th April 18, 17:12
So I tried this combo


main{
if(get_val(PS4_RX) > 20){
combo_run(DrfateLcombo1);
}
}
combo DrfateLcombo1 {
set_val(PS4_LEFT, 100);
set_val(PS4_SQUARE, 100);
wait(140);
set_val(PS4_LEFT, 0);
set_val(PS4_SQUARE, 100);
wait(20);
set_val(PS4_SQUARE, 0);
wait(80);
set_val(PS4_DOWN, 100);
wait(50);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 100);
wait(120);
set_val(PS4_DOWN, 0);
set_val(PS4_CROSS, 100);
wait(20);
set_val(PS4_CROSS, 0);
wait(140);
set_val(PS4_UP, 100);
wait(30);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(150);
set_val(PS4_UP, 0);
set_val(PS4_CROSS, 100);
wait(10);
set_val(PS4_CROSS, 0);


which works perfectly, however how do I add another combo on the same gpc complier page? I tried pasting another combo underneath it, and it doesn't work

Swizzy
10th April 18, 00:09
So I tried this combo

which works perfectly, however how do I add another combo on the same gpc complier page? I tried pasting another combo underneath it, and it doesn't work

Each one needs a different name, otherwise it should work...

To help you we need to see the full script where it doesn't work and the error message you are getting

When posting scripts, please use the GPC tags

HercStampede
10th April 18, 12:36
so this is what I got, and when I play the game, it doesn't work.


main{
if(get_val(PS4_RX) > 20){
combo_run(DrfateLcombo1);
}
}
combo DrfateLcombo1 {
set_val(PS4_LEFT, 100);
wait(20);
set_val(PS4_LEFT, 100);
set_val(PS4_SQUARE, 100);
wait(140);
set_val(PS4_LEFT, 0);
set_val(PS4_SQUARE, 100);
wait(20);
set_val(PS4_SQUARE, 0);
wait(50);
set_val(PS4_DOWN, 100);
wait(60);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 100);
wait(90);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 0);
wait(40);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 100);
wait(60);
set_val(PS4_DOWN, 0);
set_val(PS4_CROSS, 100);
wait(30);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
wait(10);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(90);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(40);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(20);
set_val(PS4_UP, 0);
}

main{
if(get_val(PS4_RX) < -20){
combo_run(DrfateRcombo1);
}
}
combo DrfateRcombo1 {
set_val(PS4_RIGHT, 100);
wait(20);
set_val(PS4_RIGHT, 100);
set_val(PS4_SQUARE, 100);
wait(100);
set_val(PS4_RIGHT, 0);
set_val(PS4_SQUARE, 100);
wait(30);
set_val(PS4_SQUARE, 0);
wait(60);
set_val(PS4_DOWN, 100);
wait(70);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 100);
wait(70);
set_val(PS4_DOWN, 0);
set_val(PS4_CROSS, 100);
wait(20);
set_val(PS4_CROSS, 0);
wait(70);
set_val(PS4_CROSS, 100);
wait(10);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(70);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(40);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(30);
set_val(PS4_UP, 0);
}



By the way, thank you for taking the time to look over this. I really appreciate it.

Swizzy
10th April 18, 12:53
so this is what I got, and when I play the game, it doesn't work.


main{
if(get_val(PS4_RX) > 20){
combo_run(DrfateLcombo1);
}
}
combo DrfateLcombo1 {
set_val(PS4_LEFT, 100);
wait(20);
set_val(PS4_LEFT, 100);
set_val(PS4_SQUARE, 100);
wait(140);
set_val(PS4_LEFT, 0);
set_val(PS4_SQUARE, 100);
wait(20);
set_val(PS4_SQUARE, 0);
wait(50);
set_val(PS4_DOWN, 100);
wait(60);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 100);
wait(90);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 0);
wait(40);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 100);
wait(60);
set_val(PS4_DOWN, 0);
set_val(PS4_CROSS, 100);
wait(30);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
wait(10);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(90);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(40);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(20);
set_val(PS4_UP, 0);
}

main{
if(get_val(PS4_RX) < -20){
combo_run(DrfateRcombo1);
}
}
combo DrfateRcombo1 {
set_val(PS4_RIGHT, 100);
wait(20);
set_val(PS4_RIGHT, 100);
set_val(PS4_SQUARE, 100);
wait(100);
set_val(PS4_RIGHT, 0);
set_val(PS4_SQUARE, 100);
wait(30);
set_val(PS4_SQUARE, 0);
wait(60);
set_val(PS4_DOWN, 100);
wait(70);
set_val(PS4_DOWN, 100);
set_val(PS4_CROSS, 100);
wait(70);
set_val(PS4_DOWN, 0);
set_val(PS4_CROSS, 100);
wait(20);
set_val(PS4_CROSS, 0);
wait(70);
set_val(PS4_CROSS, 100);
wait(10);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(70);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(50);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(40);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 100);
wait(80);
set_val(PS4_UP, 100);
set_val(PS4_CROSS, 0);
wait(30);
set_val(PS4_UP, 0);
}



By the way, thank you for taking the time to look over this. I really appreciate it.

Do the combos work if you use them separately? if not - then that's where you need to start, i don't see anything obvious that's wrong with this other then that you shouldn't have 2 main sections, you should have 1... My compiler is quite forgiving and just merge them for you, but for readability they shouldn't be separated like that.

It could be that the game reacts to the stick input which throws the combo off, it might also be that you need to adjust a few timings slightly (increase or decrease the timings slightly) to get it to be 'just right'

a way to test if it reacts to stick input is to put set_val(PS4_RX, 0); after the if statements which execute the combos...

It's also possible that the combos are running at the same time because they are quite long, and that would obviously make them not work if you are trying to use the second combo while the first one is running and the first one is saying to press buttons the second one shouldn't at the wrong times etc.

To counter that problem, you can try increasing the value from 20 to something higher, you can also add "&& !combo_running(maxcmb)" to the end of the if, this will make it only run if the mentioned combo isn't running

HercStampede
10th April 18, 14:59
They work perfectly if they're separated. So how should I combine the main sections?

main {
if(get_val(PS4_RX) < -20){
combo_run(DrfateRcombo1);
}
}
{
if(get_val(PS4_RX) > 20){
combo_run(DrfateLcombo1);
}
}


would that be acceptable? and should the main always be on top of the combos listed? Thank you again.

Swizzy
10th April 18, 15:04
They work perfectly if they're separated. So how should I combine the main sections?

main {
if(get_val(PS4_RX) < -20){
combo_run(DrfateRcombo1);
}
}
{
if(get_val(PS4_RX) > 20){
combo_run(DrfateLcombo1);
}
}


would that be acceptable? and should the main always be on top of the combos listed? Thank you again.

No, each { } pair produces a block, you are effectively saying you have a main block and a unnamed block, which isn't going to work, you need to place the contents of the second main within the first one, and yes it's advised that the main section comes before the combos

HercStampede
10th April 18, 21:47
thank you so much, it works perfectly now. One last question, when using the rs, u set the number to 20, is that sensitivity? so the higher the number the less sensitive?

Swizzy
11th April 18, 02:27
thank you so much, it works perfectly now. One last question, when using the rs, u set the number to 20, is that sensitivity? so the higher the number the less sensitive?

Correct, 20 is a standard value for deadzone management on controllers, on a good controller the value rarely goes above 10 when in "rest mode", however the more worn the controller is, the higher the deadzone will be, so 20 is usually considered "safe"