Halo 2 Classic Script Overhaul for T2

GPC2 script programming for Titan Two. Code examples, questions, requests.

Halo 2 Classic Script Overhaul for T2

Postby Squidward » Wed Sep 06, 2017 9:15 pm

I apologize in advance of how huge this post is...

Below is a script that user kenneth created for me on the T1 two years ago that I converted to T2 a few months ago.

Code: Select all
#include "T1.gph"
#include <XB1.gph>
/* --------------------------------------------------------------------------
 *  Halo 2 Classic Custom Script - misterpyrrhuloxia request
 * -------------------------------------------------------------------------- */

define FIVESHOT                             = 1;
define RRXYY                                = 2;
define XSV_261                              = 3;
define XSV_271                              = 4;
 
// Button Layout                            - Universal Bump & Jump
define B_RFIRE                              = XB1_RT;
define B_LFIRE                              = XB1_LT;
define B_WEAPON                             = XB1_Y;
define B_RELOAD                             = XB1_B;
define B_MELEE                              = XB1_RB;
define B_CROUCH                             = XB1_LS;
define B_JUMP                               = XB1_LB;
define B_FLASHLIGHT                         = XB1_RIGHT;
 
// MOD1 Button
//define B_MOD1                               = XB1_RB;
 
// Enable/Disable MODs
define RIGHT_RAPIDFIRE                      = FALSE;
define LEFT_RAPIDFIRE                       = FALSE;
define MOD1_ENABLED                         = TRUE;
define MOD2_ENABLED                         = TRUE;
define QUICK_RELOAD                         = FALSE;
 
// Set fire mode (FIVESHOT or RRXYY or XSV_261 or XSV_271)
define FIRE_MODE                            = FIVESHOT;
 
// -----------------------------------------------------------------------------
//  The actual script starts from here. The code below does not need be changed.
// -----------------------------------------------------------------------------
define MOD_TOGGLE                           = XB1_UP; // Individual MODs toogle
 
int RapidfireRight_OnOff = RIGHT_RAPIDFIRE;
int RapidfireLeft_OnOff  = LEFT_RAPIDFIRE;
int FireMode_OnOff       = FALSE;
int FlagDouble_Toogle    = FALSE;
 
main {
    // MOD 1 BUTTON
    if(MOD1_ENABLED) {
        swap(XB1_DOWN, XB1_RB);
    }
 
    // Rapidfire Right toggle
    if(get_val(MOD_TOGGLE) && event_press(B_WEAPON)) {
        RapidfireRight_OnOff = !RapidfireRight_OnOff;
    }
    // If rapidfire right is enabled
    if(!FireMode_OnOff && RapidfireRight_OnOff && get_val(B_RFIRE)) {
        combo_run(RapidfireRight);
    } else combo_stop(RapidfireRight);
 
 
    // Rapidfire Left toggle
    if(get_val(MOD_TOGGLE) && event_press(B_LFIRE)) {
        RapidfireLeft_OnOff = !RapidfireLeft_OnOff;
    }
    // If rapidfire left is enabled
    if(RapidfireLeft_OnOff && get_val(B_LFIRE)) {
        combo_run(RapidfireLeft);
    }
 
    // Fiveshot toggle
    if(get_val(MOD_TOGGLE) && event_press(B_RFIRE)) {
        FireMode_OnOff = !FireMode_OnOff;
    }
    // If fiveshot is enabled
    if(FireMode_OnOff && get_val(B_RFIRE)) {
        if(FIRE_MODE == FIVESHOT) {
            combo_run(_FIVESHOT);
        } else
        if(FIRE_MODE == RRXYY) {
            combo_run(_RRXYY);
        } else
        if(FIRE_MODE == XSV_261) {
            combo_run(_XSV_261);
        }else
        if(FIRE_MODE == XSV_271) {
            combo_run(_XSV_271);
        }
    }
 
    // MOD 1 /FLAGCARRY
    if(MOD1_ENABLED) {
        // Flagcarry toggle
        //if(get_val(XB1_UP) && event_press(XB1_DOWN)) {
        //    FlagDouble_Toogle = !FlagDouble_Toogle;
        //}
        // Activate MOD1 (based in the button swap above)
        if(get_val(B_MELEE)) {
            combo_run(Crouch);
            combo_run(BXB);
        }
    }
 
    // QUICK RELOAD
    if(QUICK_RELOAD) {
        if(event_release(B_RELOAD) && get_ptime(B_RELOAD) < 200) {
            combo_run(FastReload);
        }
    }
 
    // MOD 2
    if(MOD2_ENABLED) {
        if(get_val(B_FLASHLIGHT)) {
            combo_run(RRBx);
        }
    }
 
    // Make sure user inputs does not interfere with the running combo
    if(combo_running(_FIVESHOT) || combo_running(_RRXYY)  || combo_running(_XSV)) {
        set_val(B_RFIRE, 0);
        set_val(B_LFIRE, 0);
        set_val(B_WEAPON, 0);
        set_val(B_RELOAD, 0);
        set_val(B_MELEE, 0);
        set_val(B_CROUCH, 0);
    }
}
 
combo RapidfireRight {
    set_val(B_RFIRE, 100);
    wait(30);
    set_val(B_RFIRE, 0);
    wait(10);
    set_val(B_RFIRE, 0);
}
 
combo RapidfireLeft {
    set_val(B_LFIRE, 100);
    wait(30);
    set_val(B_LFIRE, 0);
    wait(10);
    set_val(B_LFIRE, 0);
}
 
combo _FIVESHOT {
    set_val(B_RFIRE, 100);
    wait(20); wait(70);
    set_val(B_RFIRE, 100);
    wait(20);
    set_val(B_RELOAD, 100);
    wait(20);
    wait(130);
    call(YY);
    wait(210);
}
 
combo _RRXYY {
    set_val(B_RFIRE, 100);
    wait(100); wait(45);
    set_val(B_RFIRE, 100);
    wait(60);
    set_val(B_RELOAD, 100);
    wait(60); wait(140);
    call(YY);
    wait(210);
}
 
//XSV 261 Timing
combo _XSV_261 {
    set_val(B_MELEE, 100);
    wait(11);
    set_val(B_MELEE, 0);
    wait(90);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 100);
    wait(90);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 0);
    wait(30);
    set_val(B_RFIRE, 0);
    wait(311);
     set_val(B_RFIRE, 100);
    wait(90);
    set_val(B_RFIRE, 0);
    wait(60);
    set_val(B_RFIRE, 100);
    wait(40);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 100);
    wait(90);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 0);
    wait(20);
    set_val(B_RFIRE, 0);
    wait(261);
}
 
//XSV 271 Timing
combo _XSV_271 {
    set_val(B_MELEE, 100);
    wait(11);
    set_val(B_MELEE, 0);
    wait(90);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 100);
    wait(90);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 0);
    wait(30);
    set_val(B_RFIRE, 0);
    wait(311);
     set_val(B_RFIRE, 100);
    wait(90);
    set_val(B_RFIRE, 0);
    wait(60);
    set_val(B_RFIRE, 100);
    wait(40);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 100);
    wait(90);
    set_val(B_RFIRE, 100);
    set_val(B_RELOAD, 0);
    wait(20);
    set_val(B_RFIRE, 0);
    wait(271);
}
 
combo YY {
    set_val(B_WEAPON, 100);
    wait(20); wait(20);
    set_val(B_WEAPON, 100);
    wait(20);
}
 
combo Crouch {
    set_val(XB1_LX, 0);
    set_val(XB1_LY, 0);
    set_val(B_CROUCH, 100);
}
 
combo BXB {
    set_val(B_MELEE, 100);
    wait(200); wait(50);
    set_val(B_RELOAD, 100);
    wait(50); wait(400);
    set_val(B_MELEE, 100);
    wait(50);
    set_val(B_MELEE, 100);
    wait(400);
}
 
combo FastReload {
    set_val(B_RELOAD, 100);
    wait(400); wait(600);
    set_val(B_MELEE, 100);
    wait(11); wait(11);
    set_val(B_RELOAD, 100);
}
 
combo RRBx {
    set_val(B_RFIRE, 100);
    wait(95);wait(50);
    set_val(B_RFIRE, 100);
    wait(47);
    set_val(B_MELEE, 100);
    wait(47);wait(140);
    set_val(B_RELOAD, 100);
    wait(47); wait(140);
    call(YY);
    wait(300);
}


I don't know coding very well but I need some help overhauling this script.

I really need someone's help in changing things with the script to make it more modern to the T2 and I need how it runs and the mods in it to be changed. What I'm requesting is going to be pretty complex compared to how it is now.

Here's what I need it to do... (note: all of the below mods are already combos in this script. I'm basically wanting all the mods/combos except for the Flag Carry mod). I do want this script to have the 4 Fire Mode combos that are already in there. I just want to be able to toggle which firemode is active with dpad-left+RT.

    For Firemode 1 (Fiveshot) I'd like it to be the first firemode that's selected by default and I want it to Vibrate once when toggling to it.

    When hitting dpad-left+RT again, I want it to toggle to Firemode 2 (RRXYY firemode) and Vibrate twice when toggling to it.

    When hitting dpad-left+RT again, I want it to toggle Firemode 3, (XSV 261 Timing firemode combo), and Vibrate 3 times when toggling to it.

    And I want to be able to hit dpad-left+RT again, for a fourth time, and have it toggle Firemode 4, (XSV 271 Timing firemode combo), and Vibrate 4 times when toggling to it.

Now those are the Firemode Toggles I'd like. I'd like to be able to have a master toggle on/off for Firemode. I'd like the Firemode Master Toggle to be Toggled on/off with dpad-up+RT. Vibrate twice when enabled and vibrate once when disabled. That way I can toggle on or off the active Firemode completely.

So, basically, I want to be able to toggle between each of the 4 firemodes any time with dpad-left+RT but have a Firemode Master Toggle on and off with dpad-UP+RT. Does that make sense? And for all of the mods in this script, including the firemode master toggle, I want them disabled by default upon startup of the Titan Two script. I want to have to toggle all the mods on in order for them to be enabled, does that make sense?

Below are how I want the rest of the mod toggles:

    Rapidfire Right Primary Weapon (on right trigger) - Toggled on with dpad-up+Y. Vibrate twice when enabled and vibrate once when disabled.

    Rapidfire Left Secondary Weapon (on left trigger) - Toggled on with dpad-up+LT. Vibrate twice when enabled and vibrate once when disabled.

    Melee mode: (it's a crouch BXB) In the current script, if I hit the melee button, it runs the crouch combo then the BXB combo. I don't want that combo to be on at all times like it is in the current script. I want to be able to toggle that mod anytime.- Toggled on with dpad-up+RB. Vibrate twice when enabled and vibrate once when disabled.

    Fast reload mod - Toggled with dpad-up+B. Vibrate twice when enabled and vibrate once when disabled.

    RRBx - This is a doubleshot with a melee in the middle. It's like a BXR but can be done with a partially-depeleted magazine. In the current script, this mod is always enabled and the mod runs when I hit dpad-right. I'd like the mod to be toggled on with dpad-up+A. And I want the RRBx combo to run when hitting A after I've toggled it on. When it's toggled on, I want it to vibrate twice and vibrate once when toggled off.

Once again, I want firemode master toggle off by default and all the other mods off by default, meaning I want to have to actually toggle the mods on in order to use the mods.

TLDR version;

I want to be able to cycle through the 4 firemodes with dpad-left+RT. I want a firemode master toggle with dpad-up+RT. For the firemode master toggle and all the rest of the mod toggles, I want it to vibrate twice when toggled on and vibrate once when toggled off. And by default I want all mods disabled. The first firemode (Fiveshot) should vibrate once, when cycling to second firemode (RRXYY), vibrate twice, when cycling to third firemode (XSV 261 timing mod), vibrate 3 times, and when cycling to the fourth firemode (XSV 271 timing mod), vibrate 4 times.

I do realize that what I'm requesting with this is almost a complete rebuild of the above entire script, maybe minus the combos themselves. I realize that this may be time consuming for whoever takes it on but I would be immensely grateful if someone competant at these Titan Two scripts could do me this huge favor.
User avatar
Squidward
Lieutenant
Lieutenant
 
Posts: 397
Joined: Tue Dec 23, 2014 4:39 pm

Re: Halo 2 Classic Script Overhaul for T2

Postby Scachi » Sat Sep 09, 2017 2:25 pm

There you go: viewtopic.php?f=23&t=6910
It's available in the Online Resource as "Halo 2 Classic Custom Script"

I have made you changes and converted it to Titan Two.
I can't test it in-game as I own no xbox. If you find any bugs/something not working please reply to the linked topic above.

Thank you
User avatar
Scachi
Brigadier General
Brigadier General
 
Posts: 3044
Joined: Wed May 11, 2016 6:25 am
Location: Germany


Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 89 guests