GPC Library

NBA 2K15 PERFECT SHOT


ALL CREDITS GO TO : Bruizzr he is the Author of this script.

1. Script will automatically record the time when you shot
// Record the time of X / SQUARE press when it is more than 600 ms.

2. Set Recorded time to be time for Perfect Shot
// hold D-pad UP + press SQUARE / X

3. Save Time to EEPROM memory
// hold D-pad UP + press PS4_OPTIONS / XB1_MENU

4. Load Time from EEPROM memory
// hold D-pad UP + press PS4 SHARE / XB1 VIEW

5. Reset time for Perfect Shot
// hold D-pad UP + press CROSS / A

6. Perform Perfect Shot
// just hold Shot button until your player perform shot
- script will stop sending of the output to console of the button, when it reach the Perfect time.
Version 1.2
Author Excalibur
Publish Date 2015-07-05 23:16:50
Update Date 2017-12-27 04:09:20
Downloads 2222
RATE


13

0

Release Notes: Change log: make it working with the new firmWare.
Code:Select all

         
/*   ALL CREDITS GO TO : Bruizzr
 _______ __________    _____    ________  ____  __.____ .________
 \      \\______   \  /  _  \   \_____  \|    |/ _/_   ||   ____/
 /   |   \|    |  _/ /  /_\  \   /  ____/|      <  |   ||____  \ 
/    |    \    |   \/    |    \ /       \|    |  \ |   |/       \
\____|__  /______  /\____|__  / \_______ \____|__ \|___/______  /
        \/       \/         \/          \/       \/           \/ 
*/
/*
******************************************************************
Game       : NBA 2K15
Platform   : All platforms.
Author     : Bruizzr  
Scripting  : Excalibur
Controllers: All supported controllers 

www.cronusmax.com   ALL CREDITS GO TO : Bruizzr
******************************************************************

The buttons used are the right analog stick (R) along with the the right trigger RT. Here are a list of moves and descriptions of various dribbling moves. 
Signature Size up - push (R) toward hoop then quickly release. 

In and Out dribble - RT + Move (R) toward hoop then quickly release

Hesitation(quick) - Move (R) toward ball hand then quickly release

Hesitation(escape) - RT + Move (R) toward ball hand then quickly release

Crossover - Move (R) toward off hand then quickly release

Between Legs Cross - Move (R) between off hand and players back then quickly release

Crossover(escape) - RT + Move (R) toward off hand then quickly release

Behind back dribble - Move (R) away from hoop then quickly release

Stepback - RT + Move (R) away from hoop then quickly release

Half Spin - Rotate (R) in a quater-circle from ball hand to hoop, then quickly return to neutral

Tripple Threat Jab - Move(R) left, right, or forward then quickly release 

Passing
LT + A - Bounce pass
LT + Y - Lob/Overhead pass
LT + B - Flashy Pass
LT + X - Alley Oop Pass

It would be nice if there exist away to have the defender mimic the ball handlers movements in order to play lock down defense. 
Defense
Quick step cut off - Hold LT + RT move (L) in any direction while standing
Crowd Dribbler - Press and Hold LT when near dribble 
Intense Defense - Press and Hold LT when in front of dribbler

///////////////////////////////////////////////////////////////////////////////
     INSTRUCTION
  ----------------------------------------------------------------------------
 1.  Script will automatically record the time when you shot
    // Record the time of X / SQUARE press when it is more than 150 ms.

 NOTE: 

 2. Set Recorded time to be time for Perfect Shot
   A. Perform standing still shot and if your time is perfect save it ( press and hold D-pad UP + press SQUARE / X ).
   

   B. Then perform running shot and if your time is perfect save it ( hold D-pad UP +press TRIANGLE / Y ).

     --------------------------------------
   C. Increase / Decrease Standing Still shot time :
    hold RS / R3 + D-RIGHT increase +5 ms.
    hold RS / R3 + D-LEFT decrease -5 ms.
     --------------------------------------
   D. Increase / Decrease Running shot time
    hold RS / R3 + D-UP   increase +5 ms.
    hold RS / R3 + D-DOWN decrease -5 ms.     
 
 3. Save Time to EEPROM memory
    // hold D-pad UP + press PS4_OPTIONS / XB1_MENU  

 4. Load Time from EEPROM memory
    // hold D-pad UP + press PS4 SHARE / XB1 VIEW

 5. Reset time for Perfect Shot
    // hold D-pad UP + press CROSS / A

 6. Perform Perfect Shot
    // just hold Shot button until your player perform shot
    - script will stop sending of the output to console of the button, when it reach the Perfect time.


******************************************************************************************************
******************  STEP BY STEP INSTRUCTIONS   ******************************************************
******************************************************************************************************
NOTE: First step is : Program script to one of CM slots.

Look on guide :How to program scripts from the forums to your CronusMAX PLUS
http://controllermax.com/forums/showthread.php?t=148935

Step 2. Shoot the ball by pressing X. from standing still position 
(Every time you shoot the script is "Tracing" it in the background.)

Step 3. Record the shot you just took by pressing Up and X. (This records the shot. It does not save it.)

Step 4. Perform running shot and if your time is perfect - press UP + Y

--------------------------------------------------------------------------------------------------------------------
Now script "know" what is the time for standing still shot and for running shot , and you can use them - just hold X/ SQUARE until your player make a shot.

Optional :
Step 5. Store the Shot into your memory device/cronusmax by pressing Up and menu button.(this doesn't record the shot, this stores the shot so you don't have to record it again.)


NEXT TIME WHEN you start script - 
Step 6. Load the recorded shot you just stored so that you can now shoot by just holding X without letting off the button. To do that Press Up and Share button.

Now just shoot the ball standing you don't have to wait a second to shoot. Move around and stop where you wish to score at and shoot the ball.

But when your shooting hold that X button until the ball is gone away from your hands.


And I will make changes how you suggested me. You will able to edit the stored timing.

- Script will automatically load values from Memory next time when you start script.

  ****************  DRIBLING  *************************************************

  //Hold R3/ RS to rapidly cross behind the back, then choose a direction to blow past your defender. Must NOT be moving.

  //Hold D-pad LEFT and press LT / L2 to rapidly cross the ball back and fourth between the legs (Ball in Left hand?)

  //Hold D-pad DOWN and press LT / L2 to rapidly cross the ball back and fourth between the legs (Ball in Right hand?) 

  //Hands Up Defense + Double Team + Ball Pressure + Intense Defense when pressing L1/LB. 
   
  //Hold LT/L2 and D-pad UP  to max rumble the screen during freethrows.

  // Press LS/L3 to perform SPIN MOVE to the left


*/
/////////////////////////////////////////////////////////////////////////////////
// 
define SHOT_BUTTON  = XB1_X;              
define DEFENSE      = XB1_LB;                          
define BEHIND       = XB1_RS;                      
define LEGCROSS     = XB1_LT;     
define holdBtnA     = XB1_LT;//  hold btn for choice A SKill          
define Lbtn         = XB1_LB;// Modifier Button to activate skill to the Left - Bank 1 
define Rbtn         = XB1_RB;// Modifier Button to activate skill to the Right- Bank 1 
define OneDirectBtn = XB1_RS;// Modifier Button to activate Skill with One Direction   

define timelimit=300; // Time to Double click 
//////////////////////////////////////////////////////////////////////////////////////////
//
define HoldTime = 150;  //ms.  to be able to record  at either quick, normal or late shot.
//
//////////////////////////////////////////////////////////////////////////////////////////
define DOnotUSE =0;
data(DOnotUSE, 
//  1   2   3   4    5   6   7   8    9 10  11   12   13  14  15  16  17  18  19   20  21   22  23   24  25  26    27   28    29    30   31    32 
    0,-100,50,-100,100,-100,100,-50,100, 0, 100, 50, 100,100, 50,100,  0,100, -50,100,-100,100,-100, 50,-100, 0, -100, -50, -100, -100, -50, -100,
// 33   34 35   36  37   38  39  40  41 42   43  44   45  46  47  48  49  50   51  52   53  54   55  56   57 58    59   60    61    62   63    64   
    0,-100,50,-100,100,-100,100,-50,100, 0, 100, 50, 100,100, 50,100,  0,100, -50,100,-100,100,-100, 50,-100, 0, -100, -50, -100, -100, -50, -100,
// 65   66 67   68  69   70  71  72  73 74   75  76   77  78  79  80  81  82   83  84   85  86   87  88   89 90    91   92    93    94   95    96
    0,-100,50,-100,100,-100,100,-50,100, 0, 100, 50, 100,100, 50,100,  0,100, -50,100,-100,100,-100, 50,-100, 0, -100, -50, -100, -100, -50, -100,
// 97  98  99  100                       
    4, 12,  6, 10   //                   
                                         
);// end of data         
/////////////////////////////////////////////////////////////////////////////////
// 
int SKill=1;
int b_Zapis;
int w_StandingStill;
int w_RunningShot;
int w_recordedTime;
int w_delay;
int OnOff;
int LX,LY;
int ZX,ZY;
int b_Standing;
int Zone;
int temp_Zone;
int IndL;
int CanUse1,CanUse2;
int RightON   =FALSE;                                                      
int time_to_DblClick_R=0;                      
int time_to_DblClick_L=0;                      

int IndR_L=0;       // IndR_L for LEFT ANALOG we use with dbyte(Ind+ ..);
int Ind=0;          // Ind we use with dbyte(Ind+ ..);                  
int mX,mY;                                                                   
int b_Exit;                               
int Points=0;                                 
int OnOffMods=TRUE;                                             
int w_delay1;
int w_delay2; 
int Edit_On;                               
 
int Rumble_Tipe= RUMBLE_A;
int w_rumble = 200;           
/////////////////////////////////////////////////////////////////////////////////
//   INICIALIZATION

init {
     w_StandingStill= get_pvar(SPVAR_1, 0,4000,0);
     w_RunningShot= get_pvar(SPVAR_2, 0,4000,0);

}

/////////////////////////////////////////////////////////////////////////////////
//     MAIN BLOCK

main {//------------------------------------------------------------------------

set_val(TRACE_1,w_StandingStill/10);
set_val(TRACE_2,w_RunningShot/10);
set_val(TRACE_3,w_recordedTime/10);
set_val(TRACE_4,Zone);
set_val(TRACE_5,b_Standing);
set_val(TRACE_6,Edit_On);


    
           if(abs(get_val(XB1_LX))<80 && abs(get_val(XB1_LY))<80){            
            b_Standing=TRUE;                                     
           }else{                                                     
            LX=get_val(XB1_LX);                                      
            LY=get_val(XB1_LY);                                      
            b_Standing=FALSE;                                    
                                  
           }                                                          
    
      
    

    ////////////////////////////////////////////////////////////////////////////
    // Shot with recorded time when Standing / when Running 
    ////////////////////////////////////////////////////////////////////////////
  
      if(b_Standing && CanUse1){// Shot from Standing Still position
        if(w_StandingStill > HoldTime){
            if(get_val(XB1_X) && get_ptime(XB1_X)>= w_StandingStill){
            set_val(XB1_X,0);
            }
        }
      }else if(!b_Standing && CanUse2){// Shot from running position
        if(w_RunningShot > HoldTime){
            if(get_val(XB1_X) && get_ptime(XB1_X)>= w_RunningShot){
            set_val(XB1_X,0);
            }
        }
      }
   

 
   //Hands Up Defense + Double Team + Ball Pressure + Intense Defense when pressing L1/LB. 
    if(get_val(DEFENSE)) {                                                    
    set_val(XB1_LT, 100);
    set_val(XB1_RY, 100);
        //   !THE FOLLOWING SCRIPTS ARE MEANT TO BE USED WHILE STANDING STILL!
        // However, they can also be used while moving to produce some "other" effects.
        if(get_val(XB1_RB) ) {
       
        set_val(XB1_LB, 0);
        set_val(XB1_RB, 0);
        set_val(XB1_RY, -100);
        }
    }    

    //Hold R3/ RS to rapidly cross behind the back, then choose a direction to blow past your defender. Must NOT be moving.
    if(get_val(BEHIND)) {                                          
         combo_run(Behind_back_dribble);
    }                                                                


    //Hold D-pad LEFT and press LT / L2 to rapidly cross the ball back and fourth between the legs (Ball in Left hand?)
    if(get_val(XB1_LEFT)){
          if(get_val(XB1_LT)){                      
          set_val(XB1_LT, 0);
          combo_run(LEFTLEGCROSS);
          }
    }



    //Hold D-pad DOWN and press LT / L2 to rapidly cross the ball back and fourth between the legs (Ball in Right hand?) 
    if(get_val(XB1_DOWN)){  
         if(get_val(XB1_LT)){                      
         set_val(XB1_LT, 0);
         combo_run(RIGHTLEGCROSS);
         }
    }



    //Hold LT/L2 and D-pad UP  to max rumble the screen during freethrows. 
    if(get_val(XB1_UP)){                                                      
         if(get_val(XB1_LT)){
          set_val(XB1_LT, 0);
          combo_run(DISTURB);   
         }                                            
    }


    // Record the time of X / SQUARE press when it is more than 600 ms.
    ////////////////////////////////////////////////////////////////////////////
    if(get_val(XB1_X) && get_ptime(XB1_X) > HoldTime)b_Zapis=TRUE;

    if(b_Zapis){
       if(event_release(XB1_X)){
          b_Zapis=FALSE;
          w_recordedTime=get_ptime(20);
       }
    }

    //////////////////////////////////////////////////////////////////////////// 
    // Set Recorded time to be time for Standing Still Shot  hold D-pad UP +SQUARE/ X
    // Set Recorded time to be time for Running Shot  hold D-pad UP +TRIANGLE/ Y
    //
    // Save Time to EEPROM memory => hold D-pad UP + press PS4_OPTIONS / XB1_MENU
    ////////////////////////////////////////////////////////////////////////////
    if(get_val(XB1_UP)){
          //  press X  set standing still position timing
          if( event_press(SHOT_BUTTON)){//
          w_StandingStill = w_recordedTime;
          CanUse1=TRUE;
          } 
          //  press Y  set runing position timing
          if( event_press(XB1_Y)){
          w_RunningShot = w_recordedTime;
          CanUse2=TRUE;
          }
          // Save Time to EEPROM memory => press START  save timing for both shots
          if( event_press(XB1_MENU)) {
              combo_run(Save_Timing);
          }
          
          
 
          
          // Load Time from EEPROM memory =>press PS4 SHARE / XB1 VIEW
          if( event_press(XB1_VIEW)){
          
             if(w_StandingStill> HoldTime) CanUse1=TRUE;
             if(w_RunningShot> HoldTime) CanUse2=TRUE;
          }
          // Reset time for Perfect Shot
          // press A/ CROSS
          if( event_press(XB1_A)){
           w_StandingStill=0;
            CanUse1=FALSE;
          }
          // press B/ CIRCLE
          if( event_press(XB1_B)){
           w_RunningShot=0;
           CanUse2=FALSE;
          }
          set_val(XB1_A,0);
          set_val(XB1_B,0);
          set_val(XB1_VIEW,0);
          set_val(XB1_MENU,0);
          set_val(XB1_Y,0);
          set_val(SHOT_BUTTON,0);
    }

    if(get_val(XB1_RS)){
        // Increase / Decrease Running shot time
        if(event_press(XB1_UP)) {
              w_RunningShot = w_RunningShot + 5;
              Edit_On =TRUE;
        }

        if(event_press(XB1_DOWN)) {
              w_RunningShot = w_RunningShot - 5;
              Edit_On =TRUE;
        }
        
        // Increase / Decrease Standing Still shot time
        if(event_press(XB1_RIGHT)) {
              w_StandingStill = w_StandingStill + 5;
              Edit_On =TRUE;
        }

        if(event_press(XB1_LEFT))  {
              w_StandingStill = w_StandingStill - 5;
              Edit_On =TRUE;
        }

    }else if(Edit_On ){
              combo_run(Save_Timing);
          } 
   
 

}//------------------------------------------------------------------------------
combo Save_Timing {
     if(w_StandingStill> HoldTime) set_pvar(SPVAR_1, w_StandingStill);// Standing Still time
     if(w_RunningShot> HoldTime) set_pvar(SPVAR_2, w_RunningShot);// Running time
      Edit_On = FALSE;
}

combo RUMBLE_NOTIFY {
   set_rumble(Rumble_Tipe,100);
   wait(w_rumble);
   reset_rumble();


}
combo DIRECTION_OF_L_ANALOG {                                   
                                                                
   OnOff=FALSE;                                                 
                                                                
   if(RightON){                                                
      ZX=inv(LY);ZY=LX; // Zone 3                               
    }else {                                                     
      ZX=LY;ZY=inv(LX); // Zone 7                                
    }                                                           
                                                                
                                                          
   block(11,1000);block(12,1000);  
   if(Zone>0)  
   {//------------------------------------------------           
               
      if( SKill== 1) {combo_run(SPIN_MOVE); } // SPIN_MOVE
      //if( SKill== 7) {dob=97; Elastico=FALSE;combo_run(TURNandSPIN_ELASTICO);} // Turn and Spin // 7. Turn and Spin
      //if( SKill== 8) {combo_run(HOCUS_POCUS); } // Hocus Pocus // 8. Hocus Pocus
      //if( SKill== 6) {dob=97; Elastico=TRUE;combo_run(TURNandSPIN_ELASTICO);}  // Elastico_SKILL // 6. Elastico
     // Default Skill 
      //if(SKill==13) {combo_run(DRAG_BACK);}        //Drag Back // 13. Drag Back
    }//------------------------------------------------   
               
}        

//Wait times can be adjusted to better suit your latency if you are experiencing issues.
combo Behind_back_dribble {                     

     set_val(XB1_RY, 100);
     wait(20);
     set_val(XB1_RY, 0);
}

//////////////////////////////////////////////////////////////////////
combo RIGHTLEGCROSS  {

    set_val(XB1_RY, 71);
    set_val(XB1_RX, -81); 
    wait(50);
    set_val(XB1_RY, 0);
    set_val(XB1_RX, 0); 
    wait(200);
    set_val(XB1_RX, 100);
    wait(50);
    set_val(XB1_RX, 0); 
    wait(520);
}
//////////////////////////////////////////////////////////////////////
combo LEFTLEGCROSS  {

    set_val(XB1_RY, 71);
    set_val(XB1_RX, 81); 
    wait(50);
    set_val(XB1_RY, 0);
    set_val(XB1_RX, 0); 
    wait(200);
    set_val(XB1_RX, -100); 
    wait(50);
    set_val(XB1_RX, 0); 
    set_val(XB1_RY, 0); 
    wait(520);
}
//////////////////////////////////////////////////////////////////////
combo DISTURB     {
    
    set_val(XB1_LT, 100);
    wait(35);
    set_val(XB1_LT, 0);
    set_val(XB1_RT, 100);
    wait(35);
    set_val(XB1_RT, 0);
} 


  • Rating

    10 / 10 here !

    If you own a ps3 and prefer an xbox controller, or even use a keyboard and mouse, this is a must to remap your keyboard to a controller. Go buy it now you won't be disappointed !

  • Rating

    Amazing device

    If you're like me and love your PS4 controller but want to use an Xbox One GET THIS you won't be sorry.

  • Rating

    Worth every penny

    The controller feels and performs as it does on the xbox right there on my ps3, awesome job guys, and worth every penny !!!

  • Rating

    Amazing Macro combos

    tested Super Street Fighter IV Arcade Edition. I was able to perform normal & FADC combos with some characters like Ryu and Ken with a single click. Amazing.

  • Rating

    As good as a XIM

    If you are a pc gamer, that needs a pc solution for console, get yourself a ControllerMAX you will not regret it.

  • Rating

    KB & Mouse RULES!

    All I can say playing 10 minutes with ControllerMAX properly configured it felt better then PC....YES I said it even better then PC, it's that smooth.

  • Rating

    Six-Axis 360!

    WOW! I can finally get that six-axis awesomeness on my Xbox 360. The best money I ever spent.

  • Rating

    Beats all rapidfire mods

    I've tried the Intensafire, Godfather even the new Wolf controller. The ControllerMAX beats them hands down and no wires or soldering too. 5 Stars!

  • Rating

    Just perfect!

    I can't believe how much this can do for the price tag - it blew me away. Best controller upgrade ever.

  • Rating

    Hugh Thanks!

    Without your help I couldn't be playing Xbox, thanks guys.

  • Rating

    Wow!

    I have to say after reading the forums for Destiny Mouse and Keyboard setup I was flying into getting it set up in 20 minutes. It works outstanding! I'm more then satisfied and its worth every penny!

  • Rating

    Achievement Unlocked!

    Idle boosting Complete 150 Multiplayer games, James Cameron's Avatar. My friend said it would be hard, I laughed then linked him.

  • Rating

    A++!

    Now this is a company you can count on and trust...keep up the great work guys!

  • Rating

    What Disability?

    I would like to thank you for making the CronusMax. I have this problem hitting L3 and R3, and today that problem was fixed. I love the remap feature on the Cronus max. You made my life easier.

  • Rating

    Awesome stuff guys!

    Playing Forza 5 with my original MS 360 wireless wheel makes the XB1 complete for me, thanks to the CronusMax. Thumbs up!