Help with bytecode size

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

Help with bytecode size

Postby asilver » Thu Jul 25, 2019 1:44 pm

thankyou to all who helped with my code but its to long now Bytecode size: 4429 bytes (108.1%) any help to shrink it would be great

Code: Select all
int combo_toggle = FALSE;
 
main {
    if(event_press(XB1_RS)) {
        combo_toggle = !combo_toggle;
    }
 
    if(combo_toggle) {
        combo_run(sorkdps);
    }   
 }   
combo sorkdps {
//back bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // press X Blockade
    set_val(XB1_X, 100);
    wait(10); // hold down for
 
    wait(500); // wait for then do
 
    // press RT
     set_val(XB1_RT, 100);
    wait(10);
    //                                    2040
    wait(500);
 
    //press Y Flood
     set_val(XB1_Y, 100);
    wait(10);
 
    wait(500);
 
      // press Left Dpad swap to bar 1
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
//front bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 // press RT
    set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
 
    // press left bumper pet
     set_val(XB1_LB, 100);
    wait(10);
 
    wait(500);
    //                                        2040
    //press RT
     set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
 
     //press x pray
    set_val(XB1_X, 100);
    wait(10);
 
    wait(500);
 
 
 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Light attack weave 5 rt and rb
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//------------------------------------------3---------------------------------------------------   
 
     set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//-------------------------------------------4---------------------------------   
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//---------------------------------------5---------------------------------
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//-------------------------------------------------------------------------
 
 
 
       // press Left Dpad swap to bar 2 restart
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
//--------------------------------------------------------------------------
//-----------------------------------2---------------------------------------
 
    //back bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
    // press X Blockade
    set_val(XB1_X, 100);
    wait(10); // hold down for
 
    wait(500); // wait for then do
 
    // press RT
     set_val(XB1_RT, 100);
    wait(10);
    //                                    2040
    wait(500);
 
    //press Y Flood
     set_val(XB1_Y, 100);
    wait(10);
 
    wait(500);
 
      // press Left Dpad swap to bar 1
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
//front bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 // press RT
    set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
    //                                        2040
    //press x pray
    set_val(XB1_X, 100);
    wait(10);
 
    wait(500);
 
  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Light attack weave 5 rt and rb
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//------------------------------------------3---------------------------------------------------   
 
     set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//-------------------------------------------4---------------------------------   
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//---------------------------------------5---------------------------------
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
 
 
//-------------------------------------------------------------------------
 
 
 
       // press Left Dpad swap to bar 2 restart
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
 
//------------------------------------------------------------------------------
//-----------------------------------3------------------------------------------
 
//back bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
    // press X Blockade
    set_val(XB1_X, 100);
    wait(10); // hold down for
 
    wait(250); // wait for then do
 
    // press RT
     set_val(XB1_RT, 100);
    wait(10);
    //                                    2040
    wait(250);
 
    //press Y Flood
     set_val(XB1_Y, 100);
    wait(10);
 
    wait(250);
 
      // press Left Dpad swap to bar 1
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(250);
//front bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 // press RT
    set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
 
    // press left bumper pet
     set_val(XB1_LB, 100);
    wait(10);
 
    wait(500);
    //                                        2040
    //press RT
     set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
 
     //press x pray
    set_val(XB1_X, 100);
    wait(10);
 
    wait(500);
 
 
 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Light attack weave 5 rt and rb
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//------------------------------------------3---------------------------------------------------   
 
     set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//-------------------------------------------4---------------------------------   
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//---------------------------------------5---------------------------------
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//-------------------------------------------------------------------------
 
 
 
       // press Left Dpad swap to bar 2 restart
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
 
//------------------------------------------------------------------------------
//------------------------------------------------4-----------------------------
 
//back bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // press X Blockade
    set_val(XB1_X, 100);
    wait(10); // hold down for
 
    wait(500); // wait for then do
 
    // press RT
     set_val(XB1_RT, 100);
    wait(10);
    //                                    2040
    wait(500);
 
    //press Y Flood
     set_val(XB1_Y, 100);
    wait(10);
 
    wait(500);
 
    //press B Channaled
     set_val(XB1_B, 100);
    wait(10);
 
    wait(1400);
 
      // press Left Dpad swap to bar 1
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
//front bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 // press RT
    set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
 
    //                                        2040
     //press x pray
    set_val(XB1_X, 100);
    wait(10);
 
    wait(500);
 
 
 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Light attack weave 5 rt and rb
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//------------------------------------------3---------------------------------------------------   
 
     set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//-------------------------------------------4---------------------------------   
 
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//---------------------------------------5---------------------------------
 
   set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    set_val(XB1_B, 0);
 
//-------------------------------------------------------------------------
 
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
 
}
 
User avatar
asilver
Sergeant
Sergeant
 
Posts: 6
Joined: Wed Jul 10, 2019 10:13 am

Re: Help with bytecode size

Postby Scachi » Thu Jul 25, 2019 2:29 pm

Stop writing code for a moment and think about what you want to do...

is it looping over and over again doing the parts of the combo "2040a,2040b,5x lightweave" and back to the start again ?
create multiple combos then and use call to execute them one after the other..

something like this will be the result then (do it yourself again, not sure if I have all the combo parts correct, but it should get you the idea how to save script size):
Code: Select all
 
int combo_toggle = FALSE;
 
main {
    if(event_press(XB1_RS)) {
        combo_toggle = !combo_toggle;
    }
 
    if(combo_toggle) {
        combo_run(sorkdps);
    }   
 }   
 
 
combo c2040_X_RT_Y_LEFT {
    // press X Blockade
    set_val(XB1_X, 100);
    wait(10); // hold down for
 
    wait(500); // wait for then do
 
    // press RT
     set_val(XB1_RT, 100);
    wait(10);
    //                                    2040
    wait(500);
 
    //press Y Flood
     set_val(XB1_Y, 100);
    wait(10);
 
    wait(500);
 
      // press Left Dpad swap to bar 1
     set_val(XB1_LEFT, 100);
    wait(10);
 
    wait(500);
}
 
combo c2040_RT_LB_LT_X {
    //front bar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 // press RT
    set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
 
    // press left bumper pet
     set_val(XB1_LB, 100);
    wait(10);
 
    wait(500);
    //                                        2040
    //press RT
     set_val(XB1_RT, 100);
    wait(10);
 
    wait(500);
 
     //press x pray
    set_val(XB1_X, 100);
    wait(10);
 
    wait(500);
 
}
 
// Light attack weave 5 rt and rb
combo cLightAttackWeave {
    set_val(XB1_RT, 100);       // press RT
    set_val(XB1_B, 0);
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
 
    if(get_val(XB1_B)) {        // frag
        set_val(XB1_B, 100);    // press B
    } else {
        set_val(XB1_RB, 100);   // press RB
        set_val(XB1_B, 0);
    }
    wait(10);
 
    set_val(XB1_B, 0);
    wait(500);
}
 
 
combo sorkdps {
 
    call(c2040_X_RT_Y_LEFT);
    call(c2040_RT_LB_LT_X);
    call(cLightAttackWeave);
    call(cLightAttackWeave);
    call(cLightAttackWeave);
    call(cLightAttackWeave);
    call(cLightAttackWeave);
    // press Left Dpad swap to bar 2 restart
    set_val(XB1_LEFT, 100);
    wait(10);
    wait(500);
}
 
 
User avatar
Scachi
Brigadier General
Brigadier General
 
Posts: 3044
Joined: Wed May 11, 2016 6:25 am
Location: Germany

Re: Help with bytecode size

Postby asilver » Thu Jul 25, 2019 3:05 pm

thanks for the help new to programming so a push in the right direction is appreciated
User avatar
asilver
Sergeant
Sergeant
 
Posts: 6
Joined: Wed Jul 10, 2019 10:13 am


Return to GPC1 Script Programming

Who is online

Users browsing this forum: No registered users and 112 guests