Newbie to array

Gtuner Pro general support. Operation, questions, updates, feature request.

Newbie to array

Postby adelekila » Wed Aug 12, 2020 10:13 am

I'm trying to make a program that will save angles from the left stick (up to 3 of them) and then spam those angles (either one, two or three of them) when A is pressed. (without going too in depth its a method of escaping combos in smash ultimate so its good to practice counterplay but the in-game training mode is trash) anyway, it seems to be only saving the angles once and not letting me change them again by pressing Y unless I reset the script with the button on the titan. do arrays only let you change them once or have I done something wrong?

Code: Select all
// SDI program
int trainMode;
int activate;
int angleArray[5];
int angleNum;
 
init {
    trainMode = 1;
    activate = 0;
    angleNum = 1;
}
 
main {
//if Y is pressed, the scripts reads left stick and saves it to the array, up to 3 of them
 
    if(event_press (SWITCH_Y)){
        if(angleNum == 1) {
            angleNum = 2
            angleArray[0]=get_val(SWITCH_LX)
            angleArray[1]=get_val(SWITCH_LY)
            }
        if (angleNum==2) {
            angleNum = 3           
            angleArray[2]=get_val(SWITCH_LX)
            angleArray[3]=get_val(SWITCH_LY)
            }
        if (angleNum==3){
            angleNum = 1
            angleArray[4]=get_val(SWITCH_LX)
            angleArray[5]=get_val(SWITCH_LY)
            }
        }
    //when up or down is pressed, combo mode changes
    if (event_press (SWITCH_UP)) {
        if(trainMode==3){
            trainMode = 1
        }
        else{   
            trainMode = trainMode+1
        }
    }
    if (event_press (SWITCH_DOWN)) {
        if(trainMode==1) {
            trainMode = 3
        }
        else{   
            trainMode = trainMode-1
        }
    }
    //when A is pressed, Combo starts
    if (event_press (SWITCH_A)) {
        if (activate == 1) {
            activate=0
        }
        else{
            activate=1
        }
    }
    //when A is pressed, this part checks what DI mode is chosen and calls the combo
    if(activate==1){
        if(trainMode==1){
            combo_run(A)
        }
        if(trainMode==2){
            combo_run(B)
        }
        if(trainMode==3){
            combo_run(C)
        }
    }
}
 
combo A {
 // single angle DI
 set_val(SWITCH_LX, angleArray[0])
 set_val(SWITCH_LY, angleArray[1])
 wait(30)
 set_val(SWITCH_LX, 0)
 set_val(SWITCH_LY, 0)
}
 
combo B {
// Dual angle DI
 set_val(SWITCH_LX, angleArray[0])
 set_val(SWITCH_LY, angleArray[1])
 wait(30)
 set_val(SWITCH_LX, angleArray[2])
 set_val(SWITCH_LY, angleArray[3])
 wait(30)
}
 
 combo C {
 //triple angel DI
 set_val(SWITCH_LX, angleArray[0])
 set_val(SWITCH_LY, angleArray[1])
 wait(30)
 set_val(SWITCH_LX, angleArray[2])
 set_val(SWITCH_LY, angleArray[3])
 wait(30)
 set_val(SWITCH_LX, angleArray[4])
 set_val(SWITCH_LY, angleArray[5])
 wait(30)
}
User avatar
adelekila
Private
Private
 
Posts: 1
Joined: Fri Aug 07, 2020 11:44 am

Re: Newbie to array

Postby Mad » Fri Aug 14, 2020 1:10 am

Try this:
Code: Select all
// SDI program
int trainMode;
int activate;
int angleArray[5];
int angleNum;
 
init {
    trainMode = 1;
    activate = 0;
    angleNum = 1;
}
 
main {
//if Y is pressed, the scripts reads left stick and saves it to the array, up to 3 of them
    if(event_press (SWITCH_Y)){
        if(angleNum == 1) {
            angleNum = 2;
            angleArray[0]=get_val(SWITCH_LX);
            angleArray[1]=get_val(SWITCH_LY);
        }
        else if (angleNum==2) {
            angleNum = 3;           
            angleArray[2]=get_val(SWITCH_LX);
            angleArray[3]=get_val(SWITCH_LY);
        }
        else if (angleNum==3){
            angleNum = 1;
            angleArray[4]=get_val(SWITCH_LX);
            angleArray[5]=get_val(SWITCH_LY);
        }
    }
    //when up or down is pressed, combo mode changes
    if (event_press (SWITCH_UP)) {
        if(trainMode==3) {
            trainMode = 1;
        }
        else{   
            trainMode++;
        }
    }
    if (event_press (SWITCH_DOWN)) {
        if(trainMode==1) {
            trainMode = 3;
        }
        else{   
            trainMode--;
        }
    }
    //when A is pressed, Combo starts
    if (event_press (SWITCH_A)) {
        if (activate == 1) {
            activate=0;
        }
        else{
            activate=1;
        }
    }
    //when A is pressed, this part checks what DI mode is chosen and calls the combo
    if(activate==1){
        if(trainMode==1){
            combo_run(A);
        }
        else if(trainMode==2){
            combo_run(B);
        }
        else if(trainMode==3){
            combo_run(C);
        }
    }
}
 
combo A {
 // single angle DI
    set_val(SWITCH_LX, angleArray[0]);
    set_val(SWITCH_LY, angleArray[1]);
    wait(30);
    set_val(SWITCH_LX, 0);
    set_val(SWITCH_LY, 0);
    wait(30);   
}
 
combo B {
    // Dual angle DI
    set_val(SWITCH_LX, angleArray[0]);
    set_val(SWITCH_LY, angleArray[1]);
    wait(30);
    set_val(SWITCH_LX, angleArray[2]);
    set_val(SWITCH_LY, angleArray[3]);
    wait(30);
}
 
combo C {
    //triple angel DI
    set_val(SWITCH_LX, angleArray[0]);
    set_val(SWITCH_LY, angleArray[1]);
    wait(30);
    set_val(SWITCH_LX, angleArray[2]);
    set_val(SWITCH_LY, angleArray[3]);
    wait(30);
    set_val(SWITCH_LX, angleArray[4]);
    set_val(SWITCH_LY, angleArray[5]);
    wait(30);
}
ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord (2K / FPS)
Mad
Major General
Major General
 
Posts: 4532
Joined: Wed May 22, 2019 5:39 am


Return to Gtuner Pro Support

Who is online

Users browsing this forum: No registered users and 30 guests