PDA

View Full Version : Nash Combo Script



mnguyen
31st March 16, 11:44
Nash Hori Fight Commander 4 Script:


Each button press will do something different depending on which direction
is being held and what button press or combo has executed right before it.
I will list it below


There is a 200ms delay between most button presses to Run Combos
ie, if you press MP then LP within 200ms,
The MP will come out then SONIC_SCYTHE MK will combo

Let me know what you think.


NOTATIONS:
B = BACK
DB = DOWN BACK
D = DOWN
N = NEUTRAL
U = UP


SMP = Standing MP
CMP = Crouching MP
etc ...


BUTTON PRESS DESCRIPTIONS:


PRESSING R3 + START = Change Slot
PRESSING L3 + START = Reconnect


PRESSING SELECT = Start


PRESSING START while holding B or DB = SUPER


PRESSING L3:
After CMP->SMP or CHP->SMP Link Combo = SONIC_BOOM LP
Holding B After LP or MP or HP = SONIC_BOOM LP
Holding B = SONIC_BOOM HP
Holding DB = SONIC_BOOM
Holding D = SONIC_BOOM EX
Holding UP = THROW
NEUTRAL = TARGET_COMBO_3


PRESSING R3:
After CMP SMP or CHP SMP Link Combo = SONIC_SCYTHE MK
Holding B After LP = SONIC_SCYTHE LK
Holding B = SONIC_SCYTHE MK
Holding DB After LP = SONIC_SCYTHE LK
Holding DB After MP = SONIC_SCYTHE MK
Holding DB = SONIC_SCYTHE EX
Holding D = SONIC_SCYTHE HK
Holding U = THROW
NEUTRAL = TARGET_COMBO_4


PRESSING L1:
If Jumping = THROW
Holding B After MP or HP or MK = TRAGEDY_ASSUALT EX
Holding B After CMP->SMP or CHP->SMP Link Combo = TARGET_COMBO_3
Holding B = V_REVERSAL/THROW
Holding DB After CHP = V_TRIGGER_GROUND
Holding DB = V_REVERSAL/THROW
Holding D = V_TRIGGER_HIDE (Air Behind)
Holding U = THROW
Neutral = THROW


PRESSING L2:
After MP or HP or SONIC_SCYTHE LK or MK = SUPER
Holding B = MOONSAULT_SLASH HK
Holding DB = MOONSAULT_SLASH LK
Holding D = V_TRIGGER_GROUND
Holding U = THROW
NEUTRAL = V_SKILL


PRESSING LP:
Double Press = LP->SONIC_SCYTHE LK
MP then LP = MP->SONIC_SCYTHE MK


PRESSING MP:
Holding D MP = CMP->SMP Link Combo
Holding B or N and Double Press MP = TARGET_COMBO_3
Holding D and Double Press MP = CMP->OVERHEAD combo
Holding DB HP then MP = CHP->V_TRIGGER_GROUND
Holding B HP then MP = SHP->SONIC_SCYTHE EX


PRESSING HP:
Holding D HP = CHP->SMP Link Combo
Holding B and Double Press HP = SHP->SONIC_SCYTHE EX
Holding D and Double Press HP = CHP->SMP Link Combo
Holding DB MP then HP = CMP->TRAGEDY_ASSUALT LP
Holding B MP then HP = SMP->SONIC_SCYTHE EX


PRESSING LK:
Holding D MK then LK = SMK->SONIC_SCYTHE MP


PRESSING MK:
NEUTRAL Double Press MK = TARGET_COMBO_4


PRESSING HK:
Holding B MK then HK = SMK->TRAGEDY_ASSAULT LP
Holding D or DB HP then HK = CHP->V_TRIGGER_GROUND


// ----- CONTROLLER BUTTONS --------------------------
define BTN_LP = 20;
define BTN_MP = 17;
define BTN_HP = 3;
define BTN_LK = 19;
define BTN_MK = 18;
define BTN_HK = 4;
define BTN_L1 = 6;
define BTN_L2 = 7;
define BTN_L3 = 8;
define BTN_R3 = 5;


// ----- BUTTON CODES --------------------------------
define VAR = 99; //VARIABLE USED IN RUN COMBO


define NP = 63; //111111 NO PRESS
define NB = 0; //000000 NO BUTTON
define LP = 1; //000001
define MP = 2; //000010
define HP = 4; //000100
define LK = 8; //001000
define MK = 16; //010000
define HK = 32; //100000


define LP_MP = 3; //000011
define LP_HP = 5; //000101
define LP_MP_HP = 7; //000111
define MP_HP = 6; //000110


define LK_MK = 24; //011000
define LK_HK = 40; //101000
define LK_MK_HK = 56; //111000
define MK_HK = 48; //110000


define LP_LK = 9; //001001
define LP_MP_MK = 19; //010011
define LP_MK = 17; //010001
define MP_MK = 18; //010010
define HP_MK = 20; //010100
define HP_HK = 36; //100100


define LP_MP_HP_LK = 15;//001111
define LP_MP_HP_HK = 39;//100111
define LP_MP_HP_MK = 23;//010111
define LP_LK_MK_HK = 57;//111001
define LP_LK_HP_HK = 45;//101101


// ----- DIRECTIONS ----------------------------------
define ND = 15; //1111 DO NOT SET DIRECTION
define N = 0; //0000 NEUTRAL
define F = 1; //0001
define DF = 5; //0101
define D = 4; //0100
define DB = 6; //0110
define B = 2; //0010
define BU = 10; //1010
define U = 8; //1000
define UF = 9; //1001


define BF = 3; //0011 // ALWAYS GET FORWARD
define DBF = 7; //0111 // ALWATS GET DOWN FOWARD


// ----- DEFINE VARIABLES ----------------------------
define FACINGSWITCHTIME = 5;
define CHARGEINTERVAL = 680;


// ----- DEFINE DELAY TIMES --------------------------
define LP_DELAY_LIMIT = 200;
define MP_DELAY_LIMIT = 200;
define HP_DELAY_LIMIT = 200;
define LK_DELAY_LIMIT = 200;
define MK_DELAY_LIMIT = 200;
define HK_DELAY_LIMIT = 200;
define L1_DELAY_LIMIT = 200;
define L2_DELAY_LIMIT = 200;
define L3_DELAY_LIMIT = 400;
define R3_DELAY_LIMIT = 200;
define JUMP_DELAY_LIMIT = 800;
define COMBO_DELAY_LIMIT = 1200;


// ----- ARRAY SIZES AND VARIABLES -------------------
define TIME_VAR_COUNT = 14;
define BOOL_COUNT = 19;
define DELAY_COUNT = 12;
define BUTTON_CODE_COUNT = 11;


// ----- TIME VARIABLE ARRAY INDEXES -----------------
define I_LP = 0;
define I_MP = 1;
define I_HP = 2;
define I_LK = 3;
define I_MK = 4;
define I_HK = 5;
define I_L1 = 6;
define I_L2 = 7;
define I_L3 = 8;
define I_R3 = 9;
define I_JUMP = 10;
define I_COMBO = 11;
define HOLD_TIME_RIGHT = 12;
define HOLD_TIME_LEFT = 13;


// ----- BOOL INDEXES ---------------------------
define DELAY_EN_LP = 0;
define DELAY_EN_MP = 1;
define DELAY_EN_HP = 2;
define DELAY_EN_LK = 3;
define DELAY_EN_MK = 4;
define DELAY_EN_HK = 5;
define DELAY_EN_L1 = 6;
define DELAY_EN_L2 = 7;
define DELAY_EN_L3 = 8;
define DELAY_EN_R3 = 9;
define DELAY_EN_JUMP = 10;
define DELAY_EN_COMBO = 11;
define DIR_BACK = 12;
define DIR_DOWN_BACK = 13;
define DIR_DOWN = 14;
define DIR_NEUTRAL = 15;
define DIR_UP = 16;
define DIR_DOWN_ANY = 17;
define DIR_BACK_ANY = 18;


// ----- COMBO INDEXES -------------------------------
define THROW = 0;
define V_SKILL = 6;
define V_TRIGGER = 12;
define V_TRIGGER_AIR = 18;
define V_TRIGGER_GROUND = 24;
define V_TRIGGER_HIDE = 30;
define V_REVERSAL = 36;
define V_REVERSAL_TRIGGER_OS = 42;
define V_REVERSAL_THROW_OS = 51;
define SUPER = 57;
define SONIC_BOOM = 72;
define SONIC_SCYTHE = 84;
define MOONSAULT_SLASH = 96;
define TRAGEDY_ASSAULT = 108;
define TARGET_COMBO_1 = 120;
define TARGET_COMBO_2 = 129;
define TARGET_COMBO_3 = 138;
define TARGET_COMBO_4 = 150;
define TARGET_COMBO_3_END = 162;
define TARGET_COMBO_4_END = 171;
define OVERHEAD = 180;
define V_TRIGGER_DELAY = 186;
define V_TRIGGER_AIR_DELAY = 195;
define V_TRIGGER_GROUND_DELAY = 204;
define V_TRIGGER_HIDE_DELAY = 213;
define CHP_SMP = 222;
define CHP_SMP_DOUBLE_CLICK = 231;
define CMP_SMP = 240;
define KNEE = 252;
define V_TRIGGER_GROUND_MASH = 258;


// ----- COMBO DATA ----------------------------------
// ([D,B,W])
// D: Direction Input
// B: Buttons
// W: Wait Time * 5 (2 = 10);
data
(
N,LP_LK,4, ND,NB,0, //THROW
ND,MP_MK,4, ND,NB,0, //V_SKILL
ND,HP_HK,4, ND,NB,0, //V_TRIGGER
BF,HP_HK,4, ND,NB,0, //V_TRIGGER_AIR
D,HP_HK,4, ND,NB,0, //V_TRIGGER_GROUND
BF,HP_HK,4, ND,NB,0, //V_TRIGGER_HIDE
BF,LP_MP_HP,4, ND,NB,0, //V_REVERSAL
ND,NB,4, DF,LP_MP_HP_HK,4, ND,NB,0, //V_REVERSAL_TRIGGER_OS
BF,LP_MP_HP_LK,4, ND,NB,0, //V_REVERSAL_THROW_OS
D,NB,4, B,NB,4, D,NB,4, B,HP,4, ND,NB,0, //SUPER
D,NB,4, DBF,NB,4, BF,VAR,4, ND,NB,0, //SONIC_BOOM
D,NB,4, DB,NB,4, B,VAR,4, ND,NB,0, //SONIC_SCYTHE
D,NB,4, DBF,NB,4, BF,VAR,4, ND,NB,0, //MOONSAULT_SLASH
BF,NB,4, D,NB,4, DBF,VAR,4, ND,NB,0, //TRAGEDY_ASSAULT
N,LP,20, N,MP,4, ND,NB,0, //TARGET_COMBO_1
N,LK,20, N,MK,4, ND,NB,0, //TARGET_COMBO_2
N,MP,20, N,LK,56, N,HP,4, ND,NB,0, //TARGET_COMBO_3
N,MK,20, N,HK,72, N,MK,4, ND,NB,0, //TARGET_COMBO_4
N,LK,56, N,HP,4, ND,NB,0, //TARGET_COMBO_3_END
N,HK,72, N,MK,4, ND,NB,0, //TARGET_COMBO_4_END
BF,MP,4, ND,NB,0, //OVERHEAD
ND,NB,4, ND,HP_HK,4, ND,NB,0, //V_TRIGGER_DELAY
ND,NB,4, B,HP_HK,4, ND,NB,0, //V_TRIGGER_AIR_DELAY
ND,NB,4, D,HP_HK,4, ND,NB,0, //V_TRIGGER_GROUND_DELAY
ND,NB,4, BF,HP_HK,4, ND,NB,0, //V_TRIGGER_HIDE_DELAY
D,HP,127, N,MP,4, ND,NB,0, //CHP_SMP
D,HP,103, N,MP,4, ND,NB,0, //CHP_SMP_DOUBLE_CLICK
D,MP,102, D,NB,4, N,MP,4, ND,NB,0, //CMP_SMP
BF,LK,4, ND,NB,0, //KNEE
N,HP_HK,4, N,NB,4, N,HP_HK,4, N,NB,4, N,HP_HK,4, N,NB,0 //V_TRIGGER_GROUND_MASH
);


// GLOBAL VARIABLES
int loopIndex = 0;
int maxSlot = 0;
int slot = 0;
int rtime = 0;
int comboIndex = 0;
int comboVarButton = 0;
int facingRight = 0;


int timeVar[TIME_VAR_COUNT];
int delayLimit[DELAY_COUNT];
int ctrlButtCode[BUTTON_CODE_COUNT];
int blockButtons[BUTTON_CODE_COUNT];
int bool[BOOL_COUNT];


init
{
maxSlot = get_pvar(PVAR_1, 1, 9, 1);


delayLimit[I_LP] = LP_DELAY_LIMIT;
delayLimit[I_MP] = MP_DELAY_LIMIT;
delayLimit[I_HP] = HP_DELAY_LIMIT;
delayLimit[I_LK] = LK_DELAY_LIMIT;
delayLimit[I_MK] = MK_DELAY_LIMIT;
delayLimit[I_HK] = HK_DELAY_LIMIT;
delayLimit[I_L1] = L1_DELAY_LIMIT;
delayLimit[I_L2] = L2_DELAY_LIMIT;
delayLimit[I_L3] = L3_DELAY_LIMIT;
delayLimit[I_R3] = R3_DELAY_LIMIT;
delayLimit[I_JUMP] = JUMP_DELAY_LIMIT;
delayLimit[I_COMBO] = COMBO_DELAY_LIMIT;


ctrlButtCode[I_LP] = BTN_LP;
ctrlButtCode[I_MP] = BTN_MP;
ctrlButtCode[I_HP] = BTN_HP;
ctrlButtCode[I_LK] = BTN_LK;
ctrlButtCode[I_MK] = BTN_MK;
ctrlButtCode[I_HK] = BTN_HK;
ctrlButtCode[I_L1] = BTN_L1;
ctrlButtCode[I_L2] = BTN_L2;
ctrlButtCode[I_L3] = BTN_L3;
ctrlButtCode[I_R3] = BTN_R3;
ctrlButtCode[I_JUMP] = PS3_UP;


loopIndex = 0;
while( loopIndex < DELAY_COUNT )
{
timeVar[loopIndex] = delayLimit[loopIndex];
bool[loopIndex] = 0;

loopIndex = loopIndex + 1;
}
}


main
{
ChangeSlot();
Reconnect();


GetDirectionAndChargeTime();
GetDelay();
GetHoldDirection();

if (!combo_running(MainCombo))
DoButtonPresses();


BlockButtons();
}


combo MainCombo
{
timeVar[I_COMBO] = 0;


// Step 1
SendInput(dbyte(comboIndex+0), dbyte(comboIndex+1));
if (dbyte(comboIndex+2) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+2) * 5);


// Step 2
SendInput(dbyte(comboIndex+3), dbyte(comboIndex+4));
if (dbyte(comboIndex+5) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+5) * 5);

// Step 3
SendInput(dbyte(comboIndex+6), dbyte(comboIndex+7));
if (dbyte(comboIndex+8) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+8) * 5);


// Step 4
SendInput(dbyte(comboIndex+9), dbyte(comboIndex+10));
if (dbyte(comboIndex+11) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+11) * 5);


// Step 5
SendInput(dbyte(comboIndex+12), dbyte(comboIndex+13));
if (dbyte(comboIndex+14) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+14) * 5);

// Step 6
SendInput(dbyte(comboIndex+15), dbyte(comboIndex+16));
if (dbyte(comboIndex+17) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+17) * 5);


// Step 7
SendInput(dbyte(comboIndex+18), dbyte(comboIndex+19));
if (dbyte(comboIndex+20) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+20) * 5);

// Step 8
SendInput(dbyte(comboIndex+21), dbyte(comboIndex+22));
if (dbyte(comboIndex+23) == 0)
{
combo_stop(MainCombo);
}
wait(dbyte(comboIndex+23) * 5);


// Step 9
//SendInput(dbyte(comboIndex+24), dbyte(comboIndex+25));
//if (dbyte(comboIndex+26) == 0)
//{
// combo_stop(MainCombo);
//}
//wait(dbyte(comboIndex+26) * 5);


// Step 10
//SendInput(dbyte(comboIndex+27), dbyte(comboIndex+28));
//if (dbyte(comboIndex+29) == 0)
//{
// combo_stop(MainCombo);
//}
//wait(dbyte(comboIndex+29) * 5);


// Step 11
//SendInput(dbyte(comboIndex+30), dbyte(comboIndex+31));
//if (dbyte(comboIndex+32) == 0)
//{
// combo_stop(MainCombo);
//}
//wait(dbyte(comboIndex+32) * 5);


// Step 12
//SendInput(dbyte(comboIndex+33), dbyte(comboIndex+34));
//if (dbyte(comboIndex+35) == 0)
//{
// combo_stop(MainCombo);
//}
//wait(dbyte(comboIndex+35) * 5);


// Step 13
//SendInput(dbyte(comboIndex+36), dbyte(comboIndex+37));
//if (dbyte(comboIndex+38) == 0)
//{
// combo_stop(MainCombo);
//}
//wait(dbyte(comboIndex+38) * 5);


// Step 14
//SendInput(dbyte(comboIndex+39), dbyte(comboIndex+40));
//if (dbyte(comboIndex+41) == 0)
//{
// combo_stop(MainCombo);
//}
//wait(dbyte(comboIndex+41) * 5);


// Step 15
//SendInput(dbyte(comboIndex+42), dbyte(comboIndex+43));
//if (dbyte(comboIndex+44) == 0)
//{
// combo_stop(MainCombo);
//}
//wait(dbyte(comboIndex+44) * 5);


SendInput(ND,NB);
}


function SendInput(direction, buttons)
{
if (direction != ND)
{
if (facingRight)
{
set_val(PS3_RIGHT, test_bit(direction, 0) * 100);
set_val(PS3_LEFT, test_bit(direction, 1) * 100);
}
else
{
set_val(PS3_RIGHT, test_bit(direction, 1) * 100);
set_val(PS3_LEFT, test_bit(direction, 0) * 100);
}
set_val(PS3_DOWN, test_bit(direction, 2) * 100);
set_val(PS3_UP, test_bit(direction, 3) * 100);
}


if (buttons != NP)
{
if (buttons == VAR)
buttons = comboVarButton;


set_val(BTN_LP, test_bit(buttons, 0) * 100);
set_val(BTN_MP, test_bit(buttons, 1) * 100);
set_val(BTN_HP, test_bit(buttons, 2) * 100);
set_val(BTN_LK, test_bit(buttons, 3) * 100);
set_val(BTN_MK, test_bit(buttons, 4) * 100);
set_val(BTN_HK, test_bit(buttons, 5) * 100);
}
}


function RunCombo(selectedCombo, variableButton)
{
comboIndex = selectedCombo;
comboVarButton = variableButton;
combo_run(MainCombo);
}


function ChangeSlot()
{
// Change Slots
if (get_val(PS3_R3) && event_press(PS3_START))
{
slot = get_slot();
if (slot < maxSlot)
load_slot(slot+1);
else
load_slot(1);
}
}


function Reconnect()
{
if (get_val(PS3_L3) && event_press(PS3_START))
output_reconnection();
}


function GetDirectionAndChargeTime()
{
rtime = get_rtime();


// Get Direction
if (get_val(PS3_RIGHT))
{
timeVar[HOLD_TIME_LEFT] = 0;
timeVar[HOLD_TIME_RIGHT] = timeVar[HOLD_TIME_RIGHT] + rtime;


if (!get_val(PS3_UP))
{
if (timeVar[HOLD_TIME_RIGHT] > FACINGSWITCHTIME)
facingRight = 0;
}


}

if (get_val(PS3_LEFT))
{
timeVar[HOLD_TIME_RIGHT] = 0;
timeVar[HOLD_TIME_LEFT] = timeVar[HOLD_TIME_LEFT] + rtime;


if (!get_val(PS3_UP))
{
if (timeVar[HOLD_TIME_LEFT] > FACINGSWITCHTIME)
facingRight = 1;
}
}
}


function GetDelay()
{
loopIndex = 0;
while( loopIndex < DELAY_COUNT )
{
timeVar[loopIndex] = timeVar[loopIndex] + rtime;


if (timeVar[loopIndex] >= delayLimit[loopIndex])
{
bool[loopIndex] = 0;
timeVar[loopIndex] = delayLimit[loopIndex];
}
else
{
bool[loopIndex] = 1;
}


if (loopIndex < BUTTON_CODE_COUNT && event_press(ctrlButtCode[loopIndex]))
{
if (!bool[loopIndex])
{
timeVar[loopIndex] = 0;
bool[loopIndex] = 0;
}


if (blockButtons[loopIndex])
blockButtons[loopIndex] = 0;
}

loopIndex = loopIndex + 1
}
}


function GetHoldDirection()
{
bool[DIR_BACK] = 0;
bool[DIR_DOWN_BACK] = 0;
bool[DIR_DOWN] = 0;
bool[DIR_NEUTRAL] = 0;
bool[DIR_UP] = 0;
bool[DIR_DOWN_ANY] = 0;
bool[DIR_BACK_ANY] = 0;


if (get_val(PS3_UP))
{
bool[DIR_UP] = 1;
}
else if (get_val(PS3_LEFT) || get_val(PS3_RIGHT))
{
if (get_val(PS3_DOWN))
{
bool[DIR_DOWN_BACK] = 1;
bool[DIR_DOWN_ANY] = 1;
bool[DIR_BACK_ANY] = 1;
}
else
{
bool[DIR_BACK] = 1;
bool[DIR_BACK_ANY] = 1;
}
}
else if (get_val(PS3_DOWN))
{
bool[DIR_DOWN] = 1;
bool[DIR_DOWN_ANY] = 1;
}
else
{
bool[DIR_NEUTRAL] = 1;
}
}


function DoButtonPresses()
{
L3Press(); L1Press();
R3Press(); L2Press();


LPPress(); MPPress(); HPPress();
LKPress(); MKPress(); HKPress();


STARTPress();
}


function BlockButtons()
{
// BLOCK L1 and L2
if (get_val(BTN_L1))
set_val(BTN_L1, 0);


if (get_val(BTN_L2))
set_val(BTN_L2, 0);


if (get_val(PS3_START))
set_val(PS3_START, 0);


if (get_val(PS3_SELECT))
{
set_val(PS3_SELECT, 0);
set_val(PS3_START, 100);
}


loopIndex = 0;
while( loopIndex < 6 )
{
if (blockButtons[loopIndex])
{
set_val(ctrlButtCode[loopIndex], 0);
}

loopIndex = loopIndex + 1;
}
}


function EventPressBlock(buttonCodeIndex, directionIndex, cancel)
{
if (cancel || !get_val(ctrlButtCode[buttonCodeIndex]) || get_lval(ctrlButtCode[buttonCodeIndex]) || (directionIndex >= 0 && !bool[directionIndex]))
{
return 0;
}
else
{
blockButtons[buttonCodeIndex] = 1;
return 1;
}
}
function L3Press()
{
if (event_press(BTN_L3))
{
if (bool[DELAY_EN_COMBO] && (comboIndex == CMP_SMP || comboIndex == CHP_SMP || comboIndex == CHP_SMP_DOUBLE_CLICK))
{
RunCombo(SONIC_SCYTHE, MK_HK);
}
else
{
if (bool[DIR_BACK])
{
if (bool[DELAY_EN_LP] || bool[DELAY_EN_MP] || bool[DELAY_EN_HP])
{
RunCombo(SONIC_BOOM, LP);
}
else
{
RunCombo(SONIC_BOOM, HP);
}
}
else if (bool[DIR_DOWN_BACK])
{
RunCombo(SONIC_BOOM, LP);
}
else if (bool[DIR_DOWN])
{
RunCombo(SONIC_BOOM, MP_HP);
}
else if (bool[DIR_NEUTRAL])
{
RunCombo(TARGET_COMBO_3, 0);
}
else if (bool[DIR_UP])
{
RunCombo(THROW, 0);
}
}
}
}


function R3Press()
{
if (event_press(BTN_R3))
{
if (bool[DELAY_EN_COMBO] && (comboIndex == CMP_SMP || comboIndex == CHP_SMP || comboIndex == CHP_SMP_DOUBLE_CLICK))
{
RunCombo(SONIC_SCYTHE, MK);
}
else if (bool[DIR_BACK])
{
if (bool[DELAY_EN_LP])
{
RunCombo(SONIC_SCYTHE, LK);
}
else
{
RunCombo(SONIC_SCYTHE, MK);
}
}
else if (bool[DIR_DOWN_BACK])
{
if (bool[DELAY_EN_LP])
{
RunCombo(SONIC_SCYTHE, LK);
}
else if (bool[DELAY_EN_MP])
{
RunCombo(SONIC_SCYTHE, MK);
}
else
{
RunCombo(SONIC_SCYTHE, LK_MK);
}
}
else if (bool[DIR_DOWN])
{
RunCombo(SONIC_SCYTHE, HK);
}
else if (bool[DIR_NEUTRAL])
{
RunCombo(TARGET_COMBO_4, 0);
}
else if (bool[DIR_UP])
{
RunCombo(THROW, 0);
}
}
}


function L1Press()
{
if (event_press(BTN_L1))
{
if (bool[DELAY_EN_JUMP])
RunCombo(THROW, 0);
else
{
if (bool[DIR_BACK])
{
if (bool[DELAY_EN_HP] || bool[DELAY_EN_MP] || bool[DELAY_EN_MK])
{
RunCombo(TRAGEDY_ASSAULT, MP_HP);
}
else if (bool[DELAY_EN_COMBO] && (comboIndex == CMP_SMP || comboIndex == CHP_SMP || comboIndex == CHP_SMP_DOUBLE_CLICK))
{
RunCombo(TARGET_COMBO_3, 0);
}
else
{
RunCombo(V_REVERSAL_THROW_OS, 0);
}
}
else if (bool[DIR_DOWN_BACK])
{
if (bool[DELAY_EN_HP])
{
RunCombo(V_TRIGGER_GROUND, 0);
}
else if (bool[DELAY_EN_MP])
{
RunCombo(SONIC_SCYTHE, MK_HK);
}
else
{
RunCombo(V_REVERSAL_THROW_OS, 0);
}
}
else if (bool[DIR_DOWN])
{
RunCombo(V_TRIGGER_HIDE, 0);
}
else if (bool[DIR_NEUTRAL])
{
RunCombo(THROW, 0);
}
else if (bool[DIR_UP])
{
RunCombo(THROW, 0);
}
}
}
}


function L2Press()
{
if (event_press(BTN_L2))
{
if (bool[DIR_NEUTRAL])
{
RunCombo(V_SKILL, 0);
}
else if (
(bool[DELAY_EN_MP] || bool[DELAY_EN_HP] || bool[DELAY_EN_L3] || bool[DELAY_EN_R3])
|| (bool[DELAY_EN_COMBO] && (comboIndex == SONIC_SCYTHE && (comboVarButton == LK || comboVarButton == MK)))
)

{
RunCombo(SUPER, 0);
}
else if (bool[DIR_BACK])
{
RunCombo(MOONSAULT_SLASH, HK);
}
else if (bool[DIR_DOWN_BACK])
{
RunCombo(MOONSAULT_SLASH, LK);
}
else if (bool[DIR_DOWN])
{
RunCombo(V_TRIGGER_GROUND_MASH, MK);
}
else if (bool[DIR_UP])
{
RunCombo(THROW, 0);
}
}
}


function LPPress()
{
if (event_press(BTN_LP))
{
if (bool[DELAY_EN_LP])
{
RunCombo(SONIC_SCYTHE, LK);
}
else if (bool[DELAY_EN_MP])
{
RunCombo(SONIC_SCYTHE, MK);
}
}


}


function MPPress()
{
if (EventPressBlock(I_MP, DIR_DOWN, bool[DELAY_EN_JUMP]))
{
RunCombo(CMP_SMP, 0);
}
else if (event_press(BTN_MP))
{
if (bool[DELAY_EN_MP])
{
if (bool[DIR_NEUTRAL])
{
RunCombo(TARGET_COMBO_3_END, 0);
}
else if (bool[DIR_BACK])
{
RunCombo(TARGET_COMBO_3_END, 0);
}
else if (bool[DIR_DOWN_ANY])
{
RunCombo(OVERHEAD, 0);
}
else
{
RunCombo(SONIC_SCYTHE, MK);
}
}
else if (bool[DELAY_EN_HP])
{
if (bool[DIR_DOWN_ANY])
{
RunCombo(V_TRIGGER_GROUND_DELAY, 0);
}
else if (bool[DIR_BACK])
{
RunCombo(SONIC_SCYTHE, MK_HK);
}
}
}
}


function HPPress()
{
if (EventPressBlock(I_HP, DIR_DOWN, bool[DELAY_EN_JUMP]))
{
RunCombo(CHP_SMP, 0);
}
else if (event_press(BTN_HP))
{
if (bool[DELAY_EN_HP])
{
if (bool[DIR_BACK])
{
RunCombo(SONIC_SCYTHE, MK_HK);
}
else if (bool[DIR_DOWN_ANY])
{
RunCombo(CHP_SMP_DOUBLE_CLICK, 0);
}
}
else if (bool[DELAY_EN_MP])
{
if (bool[DIR_DOWN_BACK])
{
RunCombo(TRAGEDY_ASSAULT, LP);
}
else if (bool[DIR_BACK])
{
RunCombo(SONIC_SCYTHE, LK_MK);
}
}
}
}


function LKPress()
{
if (event_press(BTN_LK))
{
if (bool[DELAY_EN_MK] && bool[DIR_BACK])
{
RunCombo(SONIC_SCYTHE, MK);
}
else if (bool[DIR_BACK])
{
//RunCombo(KNEE, 0);
}
}
}


function MKPress()
{
if (event_press(BTN_MK))
{
if (bool[DELAY_EN_MK] && bool[DIR_NEUTRAL])
{
RunCombo(TARGET_COMBO_4_END, 0);
}
}
}


function HKPress()
{
if (event_press(BTN_HK))
{
if (bool[DELAY_EN_MK] && bool[DIR_BACK])
{
RunCombo(TRAGEDY_ASSAULT, LP);
}
else if (bool[DELAY_EN_HP] && bool[DIR_DOWN_ANY])
{
RunCombo(V_TRIGGER_GROUND, 0);
}
}
}


function STARTPress()
{
if (event_press(PS3_START))
{
if (bool[DIR_BACK_ANY])
{
RunCombo(SUPER, 0);
}
}
}

mnguyen
4th April 16, 17:16
I just tested this on PS4, the always forward only works on PC. So to make it work on PS4, just change all the 'BF'to 'F' and 'DBF' to 'DF' int the data section.

fjear
13th March 17, 19:25
Thank you for your hard work.

enyce
31st March 17, 13:17
can you make this for xbox one controllers?

VincentEth2018
31st March 18, 22:35
That would be cool. Thank you.