FIFA 16 ALL Skills - Can someone help me update this script?

GPC1 script programming for Titan One. Code examples, questions, requests.

Re: FIFA 16 ALL Skills - Can someone help me update this scr

Postby riribibi » Fri Oct 07, 2016 3:27 am

riribibi wrote:thank you very much, works perfectly. (PR1/PR2, PL1/PL2 are the names of the paddles)

was wondering if its possible to program one move to PL1/PR1 (left/right respectively) and then another to PL2/PR2?

for example I want to program the spin to PL1/PR1
and then body feint to PL2/PR2

can you please help me with this? thank you very much for your time and effort, I appreciate it

(edit: maybe if its not too complicated, have L1 + left/right cycle through half the moves for PL1/PR1, and R1 + left/right cycle through the other half for PL2/PR2?)


can someone help me with this? thank you very much in advance!
User avatar
riribibi
Command Sergeant Major
Command Sergeant Major
 
Posts: 134
Joined: Fri Oct 31, 2014 12:33 pm

Re: FIFA 16 ALL Skills - Can someone help me update this scr

Postby gidominus » Tue Oct 11, 2016 8:24 am

riribibi wrote:Wow my thread is going strong this much later!

I have a couple free buttons on my joystick, can someone help me? I want it so that if I hit the button, lets just say LT, that it performs the spin left. (I just want to hit it once then it performs spin left, no matter what angle I perform this at..) Same thing with spin right and the RT button.

can someone help me? many thanks

(also if possible, the body feint by pressing the lb and or rb button once!)


same hope here :innocent_smile_1:

FCB77 wrote:the script was modified by another user and by looking at the code you have to HOLD L1 and TAP d-pad right for next skill and HOLD L1 and TAP d-pad left for previous skill.
also the button execution was changed. R2 and L2 double tap will execute the script.

personally i dont like double tapping any button for skill execution because it takes to much time. around 300-400 milliseconds and that is a lot of time when you need precision execution under 150 milliseconds.
i wish i could have a elite controller because it was 4 extra buttons, but sadly not all of us can afford it :D.
image executing the skill by simply 1 tap of the paddles. :D


@FCB77 which line of script that i have to change for execution under 150 milliseconds. or maybe will you edit your fifa16 script for elite controller only so that we can use 4 paddle for 2 skill (right and left) simply 1 tap only. Please......
User avatar
gidominus
Sergeant
Sergeant
 
Posts: 9
Joined: Mon Sep 12, 2016 6:32 am

Re: FIFA 16 ALL Skills - Can someone help me update this scr

Postby FCB77 » Fri Oct 14, 2016 2:41 pm

I don't have an elite controller so i don't know which identifier refers to which paddle.
but you can try this.

delete
Code: Select all

    if (scriptON) {                     //line from forums
        if (event_press(XB1_P1)) {
            ProcessCombos(RIGHT, LEFT);
        } else if (event_press(XB1_P2)) {
            ProcessCombos(LEFT, RIGHT);
        }
    }


and replace it with this
Code: Select all

    if (scriptON) {
        if (event_press(XB1_P1)) {
            dEnd = LEFT;
            combo_run(Spin);
        } else if (event_press(XB1_P3)) {
            dEnd = RIGHT;
            combo_run(Spin);
        } else if (event_press(XB1_P2)) {
            dStart = RIGHT;
            dTemp  = LEFT;
            combo_run(BodyFeintCut);
        } else if (event_press(XB1_P4)) {
            dStart = LEFT;
            dTemp  = RIGHT;
            combo_run(BodyFeintCut);
        }
    }



riribibi wrote:
riribibi wrote:thank you very much, works perfectly. (PR1/PR2, PL1/PL2 are the names of the paddles)

was wondering if its possible to program one move to PL1/PR1 (left/right respectively) and then another to PL2/PR2?

for example I want to program the spin to PL1/PR1
and then body feint to PL2/PR2

can you please help me with this? thank you very much for your time and effort, I appreciate it

(edit: maybe if its not too complicated, have L1 + left/right cycle through half the moves for PL1/PR1, and R1 + left/right cycle through the other half for PL2/PR2?)


can someone help me with this? thank you very much in advance!
User avatar
FCB77
Command Sergeant Major
Command Sergeant Major
 
Posts: 138
Joined: Sun Feb 01, 2015 9:21 am

Re: FIFA 16 ALL Skills - Can someone help me update this scr

Postby FCB77 » Fri Oct 14, 2016 2:53 pm

gidominus wrote:@FCB77 which line of script that i have to change for execution under 150 milliseconds. or maybe will you edit your fifa16 script for elite controller only so that we can use 4 paddle for 2 skill (right and left) simply 1 tap only. Please......


the original script tries to detect double tapping in this function
Code: Select all
if (dbl_clicked(XB1_LB))
if (dbl_clicked(XB1_RB))


the only way to reduce the timing is replacing it with simple button events: using the press_event function.
i don't own an elite controller, take a look at the code above, that's is pretty much how you use the paddles.
User avatar
FCB77
Command Sergeant Major
Command Sergeant Major
 
Posts: 138
Joined: Sun Feb 01, 2015 9:21 am

Re: FIFA 16 ALL Skills - Can someone help me update this scr

Postby riribibi » Sun Oct 30, 2016 12:34 pm

Code: Select all
// GPC Online Library
// fifa_16_skill_combos.gpc

/*
FIFA 16 Combos

- Activate\Desactivate script by pressing PS4_L1 and PS4_UP
- press PS4_L1 an PS4_RIGHT for next skill
- press PS4_L1 an PS4_LEFT for previous skill
some combos are disabled due to MAX bytecode side limitation
so uncomment your combo if you want to use it and add it to ProcessCombos()


- Doubleclick PS4_L2 (skill to the left side) or PS4_R2 (skill to the right side) to execute the skill

********
* IMPORTANT INFORMATION
- Im not a fan of activating the skills via L1 and R1 doubleclicking
specially since FIFA16 the new feature called NO TOUCH DRIBBLING uses the L1 button.
so sometimes when you want to execute some skills to the left side, your player will not execute it correctly.
i way to bypass this is by triple clicking the L1 button or a better option assing the LEFT skills
to a different button.

maybe a solution to this problem is blocking the L1 output to the console  totally (send L1 as unpress) when you doubleclick on it.

 for testing purposes i have also assigned the PS4_RIGHT button to execute left side skills and the skills run just fine.
 
 I use the PS4_LEFT an PS4_RIGHT you can use the one you like. just change the code bellow in line 121.
 or someone else code a better doubleclick handler than me :D.
*************



- some skills only can be excecuted to one direction (HeelFlick, etc)
so it doesnt matter which button you doubleclick, you can use both buttons.
- Combo list
- each fifa 16 player has a STAR SKILL rating, so a 3 STAR PLAYER can only execute
1,2, and 3 STAR SKILLS. a 3 STAR PLAYER can not execute 4 and 5 STAR SKILL.
 
 
// standing skills not added.

 1 STAR SKILLS
 - KnockBall, FakeShot
 
 2 STAR SKILLS
 - BallRoll, BodyFeintCut, StepOverCut, ReversoStepOverCut, HeelFlick2
 
 3 STAR SKILLS
 - HeelFlick, FlickUP, Roulette, FakeAndGo
 
 4 STAR SKILLS
 - FakeShotBallHop, HeelToHeel(HeelFlick), Rainbow, AdvRainbow. FeintLeft/Right(FakeAndGo)
 - Spin, StopAndTurn, ScoopTurn
 
  5 STAR SKILLS
  - Elastico(FakeAndGo), ReverseElastico(FakeAndGo), HocusPocus, TripleElastico
  - BallRollFlick, TurnAndSpin(StopAndTurn), ElasticoChop, BolasieFlick
 
 
*/
define UP         = 0;
define UP_RIGHT   = 1;
define RIGHT      = 2;
define DOWN_RIGHT = 3;
define DOWN       = 4;
define DOWN_LEFT  = 5;
define LEFT       = 6;
define UP_LEFT    = 7;

define MAX_SKILLS   = 14; //21;
define FlickTime    = 80;
define HoldTime        = 300;
data
0, 100, 100, 100,   0, 156, 156, 156,
 156, 156,   0, 100, 100, 100,   0, 156
);
int scriptON;
int mode;
int dblclick_timer;
int dblclick_count;
int dblclick_msecs;
int x, y, p;
int dTemp, dStart, dMid, dEnd;

// testing purposes. scripts already ON
init {
    scriptON = 1;
    mode = 1;
}

main {
    // ACTIVE SKILLS
    if (get_val(PS4_L1)) {
        if (event_release(PS4_UP)) {
            set_val(PS4_UP, 0);
            scriptON = !scriptON;
        }
        //NEXT SKILL
        if (event_release(PS4_RIGHT)) {
            set_val(PS4_RIGHT, 0);
            mode = mode + 1;
            if (mode > MAX_SKILLS) {
                mode = 0;
            }
        // PREVIOUS SKILL
        } else if (event_release(PS4_LEFT)) {
            set_val(PS4_LEFT, 0);
            mode = mode - 1;
            if (mode < 0) {
                mode = MAX_SKILLS;
            }
        }
    }
   
    if (scriptON) {                     //line from forums
        if (event_press(XB1_P1)) {
            ProcessCombos(RIGHT, LEFT);
        } else if (event_press(XB1_P2)) {
            ProcessCombos(LEFT, RIGHT);
        }
    }
}
/*
***********
COMBO MACROS
***********
I was trying to decrease the max bytecode side by using repetitive code
on a single combo, but at the end i reached the max allow codeside anyways
so combos added after this doesnt contain hold_RStick, flick_RStick, move_RStick, etc
*/

combo hold_RStick {
    calc_relative_xy(dEnd);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(HoldTime);
    set_val(PS4_RX, 0);
    set_val(PS4_RY, 0);
    wait(50);
}
combo flick_RStick {
    call(move_RStick)
    set_val(PS4_RX, 0);
    set_val(PS4_RY, 0);
    wait(50);
}
combo move_RStick {
    calc_relative_xy(dEnd);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(FlickTime);
}
combo RStick_HalfCircle {
    calc_relative_xy(dStart);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(FlickTime);
    calc_relative_xy(dMid);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(FlickTime);
    calc_relative_xy(dEnd);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(FlickTime);
}
// 1 STAR SKILL
/*combo KnockOn {
    dEnd = UP;
    call(hold_RStick)
// increase holdtime to knock the ball further
}
combo FakeShotStop {
    set_val(PS4_LX, 0);
    set_val(PS4_LY, 0);
    set_val(PS4_CIRCLE, 100);
    wait(80);
    set_val(PS4_LX, 0);
    set_val(PS4_LY, 0);
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 100);
    wait(80);
    set_val(PS4_LX, 0);
    set_val(PS4_LY, 0);
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 0);
    wait(80);
    set_val(PS4_LX, 0);
    set_val(PS4_LY, 0);
    set_val(PS4_CROSS, 0);
}*/
// 2 START SKILLS
combo BallRoll{
    call(hold_RStick);
}
combo BodyFeintCut {
    dEnd = dStart
    call(flick_RStick);
   
    // uncomment code if you want 45 degree cut
//    if (dTemp == RIGHT) dTemp = UP_RIGHT;
//    if (dTemp == LEFT) dTemp = UP_LEFT;
   
    // 90 degree cut - left side nerfed by fifa developers
    calc_relative_xy(dTemp) //
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    wait(400) // 80 ms
}
/*combo StepOverCut {
    calc_relative_xy(UP);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(80);
    calc_relative_xy(dStart);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(80);
   
   
// uncomment code if you want 45 degree cut
//    if (dEnd == RIGHT) dEnd = UP_RIGHT;
//    if (dEnd == LEFT) dEnd = UP_LEFT;
   
    // 90 degree cut - left side nerfed by fifa developers
    calc_relative_xy(dEnd) //
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    wait(400)
}*/
combo ReversoStepOverCut {
    calc_relative_xy(dStart);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(80);
    calc_relative_xy(UP);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(80);
   
    // 45 degree cut enabled
    // for some strange reason if else block gives wrong result.
    if (dEnd == RIGHT) dEnd = UP_RIGHT;
    if (dEnd == LEFT) dEnd = UP_LEFT;
   
    calc_relative_xy(dEnd) //
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    wait(400) // 80 ms
}
combo HeelFlick2 {
    set_val(PS4_L1, 100);
    set_val(PS4_CIRCLE, 100);
    wait(100);
    set_val(PS4_L1, 100);
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 100);
    wait(50);
    set_val(PS4_L1, 100);
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 0);
    wait(100);
    set_val(PS4_L1, 100);
    set_val(PS4_CROSS, 0);
    wait(100);
}
// 3 START SKILL
combo HeelFlick {
    dEnd = UP;
    call(flick_RStick);
    dEnd = DOWN;
    call(flick_RStick);
}
/*combo FlickUP {
    dEnd = UP
    call(flick_RStick)
    call(flick_RStick)
    call(flick_RStick)
}*/

combo Roulette {
    dStart = DOWN
    dMid   = dEnd
    dEnd   = UP
    call(RStick_HalfCircle)
}
combo FakeAndGo {
    dMid = DOWN
    call(RStick_HalfCircle)
}
// 4 START SKILL
/*combo FakeShotBallHop {
    call(FakeShotStop);
    set_val(PS4_R3, 100);
    wait(200)
}*/

combo Rainbow {
    dEnd = DOWN
    call(flick_RStick)
    dEnd = UP
    call(flick_RStick)
    call(flick_RStick)
}
/*combo AdvRainbow {
    dEnd = DOWN
    call(flick_RStick)
    dEnd = UP
    calc_relative_xy(UP);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(600);
    set_val(PS4_RX, 0);
    set_val(PS4_RY, 0);
    wait(30);
    call(flick_RStick)
}*/

combo Spin {
    if (dEnd == RIGHT)  dEnd = DOWN_RIGHT
    else                dEnd = DOWN_LEFT
    call(flick_RStick)
    call(flick_RStick)
}
combo StopAndTurn {
    dEnd = UP
    call(flick_RStick)
    dEnd = dTemp
    call(flick_RStick)
}
combo RonaldoChop {
    // press R2 (sprint button) to do
    // a 90 degree fakeshot while running
    calc_relative_xy(dEnd);
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_L2, 100);
    set_val(PS4_CIRCLE, 100);
    wait(100);
   
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_L2, 100);
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 100);
    wait(50);
   
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_L2, 100);
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 0);
    wait(100);
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_L2, 100);
    set_val(PS4_CROSS, 0);
    wait(100);
}
/*combo ScoopTurn {
   
// not the best one but seems to work. 80%
    // if you have a better one share it :D
    // 45 degree cut/turn
//   if (dEnd == RIGHT) dEnd = UP_RIGHT;
//   if (dEnd == LEFT) dEnd = UP_LEFT;
    // little hack to slow player's speed
    set_val(PS4_L2, 100);
    wait(400);
    calc_relative_xy(dEnd);
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_CIRCLE, 100);
   
    set_val(PS4_L2, 100);
    wait(100);
   
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 100);
   
    set_val(PS4_L2, 100);
    wait(100);
   
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_CROSS, 100);
    set_val(PS4_CIRCLE, 0);
   
    set_val(PS4_L2, 100);
    wait(100);
    set_val(PS4_LX, x)
    set_val(PS4_LY, y)
    set_val(PS4_CROSS, 0);
    set_val(PS4_L2, 100);
    wait(100);
    // little hack to slow players speed and to avoid ronaldochop animation
    set_val(PS4_L2, 100);
    wait(400);
}
// 5 START SKILL
combo HocusPocusElastico {
    calc_relative_xy(DOWN)
    set_val(PS4_RX, x)
    set_val(PS4_RY, y)
    wait(FlickTime)
   
    dMid = DOWN
    dEnd = dTemp;
    call(RStick_HalfCircle)
}*/
combo BallRollFlick {
    dEnd = dStart
    call(BallRoll)
    dEnd = dTemp
   
    // change dEnd to UP to flick the ball to the front
//    if (mode == 13) dEnd = UP
    call(move_RStick)
}
combo ElasticoChop {
    dEnd = DOWN
    call(flick_RStick)
    dEnd = dTemp
    call(flick_RStick)
}
combo BolasieFlick {
    set_val(PS4_R1, 100);
    calc_relative_xy(UP);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(80);
    set_val(PS4_R1, 100);
    set_val(PS4_RX, 0);
    set_val(PS4_RY, 0);
    wait(50);
   
    set_val(PS4_R1, 100);
    calc_relative_xy(dEnd);
    set_val(PS4_RX, x);
    set_val(PS4_RY, y);
    wait(80);
}
function ProcessCombos(fromSide, toSide) {
    if (mode) {
   
        // dEnd = side for skill execution
        // dTemp =  copy of dEnd
        // dStart = opposite side
        // for example
        // if dEnd = RIGHT then dStart = LEFT
        // if dEnd = LEFT then dStart = RIGHT       
   
        dStart = fromSide;
        dEnd   = toSide;
        dTemp  = toSide;

             if (mode == 1) combo_run(BallRoll)
        else if (mode == 2) combo_run(BodyFeintCut)
        else if (mode == 3) combo_run(ReversoStepOverCut)
        else if (mode == 4) combo_run(HeelFlick2)
        else if (mode == 5) combo_run(HeelFlick)
        else if (mode == 6) combo_run(FakeAndGo)
        else if (mode == 7) combo_run(Roulette)
        else if (mode == 8) combo_run(Rainbow)
        else if (mode == 9) combo_run(StopAndTurn)
        else if (mode == 10) combo_run(Spin)
        else if (mode == 11) combo_run(RonaldoChop)
        else if (mode == 12) combo_run(BallRollFlick)
        else if (mode == 13) combo_run(ElasticoChop)
        else if (mode == 14) combo_run(BolasieFlick)
       
/*        else if (mode == 1) combo_run(KnockOn)
        else if (mode == 3) combo_run(StepOverCut)
        else if (mode == 6) combo_run(FlickUP)
        else if (mode == 2) combo_run(FakeShotStop)
        else if (mode == 5) combo_run(FakeShotBallHop)
        else if (mode == 9) combo_run(AdvRainbow)
        else if (mode == 11) combo_run(ScoopTurn)
        else if (mode == 13) combo_run(HocusPocusElastico)
*/


    }
}
function calc_relative_xy(d) {
    if(get_val(PS4_LX) >= 50) x = 100;
    else if(get_val(PS4_LX) <= -50) x = -100;
    else x = 0;
    if(get_val(PS4_LY) >= 50) y = 100;
    else if(get_val(PS4_LY) <= -50) y = -100;
    else y = 0;
   
    set_val(TRACE_1, x);
    set_val(TRACE_2, y);
    if(x != 0 || y != 0) {
        p = 0; while(p < 8) {
            if(dchar(p) == x && dchar(8 + p) == y) {
                break;
            } p = p + 1;
        }
        p = p + d;
        if(p >= 8) p = p - 8;
        x = dchar(p);
        y = dchar(8 + p);
    }
    return;
}
function dbl_clicked(button) {
    if (dblclick_timer) {
        dblclick_msecs = dblclick_msecs + get_rtime();
        if ( dblclick_msecs > 500 ) {
            dblclick_count = 0;
            dblclick_msecs = 0;
            dblclick_timer = FALSE;
        }
    }
    if (event_release(button) && get_ptime(button) < 150) {
        if (dblclick_count == 0) {
            dblclick_timer = TRUE;
        } else if (dblclick_count == 1) {
            dblclick_count = 0;
            return 1;
        }
        dblclick_count = dblclick_count + 1;       
    }
}


The "FakeAndGo" combo only works to the right for me (the left it doesn't recognize the input)....can somone help me with this or explain why? thanks!
User avatar
riribibi
Command Sergeant Major
Command Sergeant Major
 
Posts: 134
Joined: Fri Oct 31, 2014 12:33 pm

Re: FIFA 16 ALL Skills - Can someone help me update this scr

Postby riribibi » Thu Nov 10, 2016 4:42 pm

anyone?
User avatar
riribibi
Command Sergeant Major
Command Sergeant Major
 
Posts: 134
Joined: Fri Oct 31, 2014 12:33 pm

Re: FIFA 16 ALL Skills - Can someone help me update this scr

Postby Jono7110 » Thu Jan 14, 2021 7:18 pm

hi i have been looking at fifa script bits have been add to it how does it all work now and what is the most up to date script thanks
User avatar
Jono7110
Command Sergeant Major
Command Sergeant Major
 
Posts: 164
Joined: Sun Nov 08, 2015 12:09 pm

Previous

Return to GPC1 Script Programming

Who is online

Users browsing this forum: No registered users and 79 guests