//***THIS SCRIPT IS FOR BUTTON LAYOUT TYPE II***
//RESIDENT EVIL 4 XBOX 360/PC BY ASSFAT
//MELEE, RELOAD, 180 SPIN, RIGHT STICK LOOK AND AIM, AND MORE
//QTEs ARE MESSED UP WITH ALL THE BUTTON SWAPPING.
//I ADDED A QTE WORK AROUND:
//HOLD LB AND RB AND LT, RT, LB, RB, A, B, AND X ARE ALL PULSED WHILE HOLDING
//I HATE QTE ANYWAY. IF YOU WANT THEM, TURN UR device TO 0 FOR THAT TIME.
//MAPPING CHANGES:
//180 TURN=LEFT STICK
//AUTO RUN=LEFT BUMPER YOU CAN STILL USE A+LFFT STICK or DPAD to run
//RELAOD=Y
//MELEE=RIGHT BUMPER
//COMMAND ASHLEY=B
//ZOOM WITH SCOPE=LEFT TRIGGER AND LEFT D-PAD UP OR DOWN
//BACK=START
//START=BACK
//MAP=RIGHT STICK
//MOVE STORAGE ITEM=RIGHT STICK
//QTE=HOLD LB AND RB
unmap XB360_UP;
unmap XB360_DOWN;
unmap XB360_RS;
unmap XB360_LB;
remap XB360_LB -> XB360_LS;
remap XB360_LS -> XB360_LB;
unmap XB360_LS;
remap XB360_B -> XB360_RB;
remap XB360_START -> XB360_BACK;
remap XB360_BACK -> XB360_START;
remap XB360_RS -> XB360_Y;
main {
if(event_press(XB360_Y)) combo_run(RELOAD);//Y for auto reload
if(get_val(XB360_RB) > 30) combo_run(MELEE);//RB for quick melee
if(event_press(XB360_LS)) combo_run(SPIN);//LS for 180 turn
if(get_val(XB360_RB) > 30 && get_val(XB360_LB) > 30) combo_run(QTE);//hold RB and LB for auto QTE
if(get_val(XB360_LB) > 30) set_val(XB360_A, 100); //LB for auto run
if(get_val(XB360_LB) > 30) set_val(XB360_LY, -100);
if(get_val(XB360_LT) > 30 && get_val(XB360_UP) > 30) set_val(XB360_RY, -100);//for zoom on scope when LT is pressed
if(get_val(XB360_LT) > 30 && get_val(XB360_DOWN) > 30) set_val(XB360_RY, 100);
if(get_val(XB360_LT) < 30 && get_val(XB360_UP) > 30) set_val(XB360_LY, -100);//so Dpad functions normally with no LT
if(get_val(XB360_LT) < 30 && get_val(XB360_DOWN) > 30) set_val(XB360_LY, 100);
if(get_val(XB360_LT) > 30 && get_val(XB360_DOWN) < 30 && get_val(XB360_UP) < 30) set_val(XB360_RY, 0);//to stop RY from interfering with zoom
//***you may need to change the 20s and 30s below to match your sticks sensitivity
if(get_lval(XB360_RX) > 20) set_val(XB360_LX, get_lval(XB360_RX));//set right X axis to act like left X axis
if(get_lval(XB360_RX) < -20) set_val(XB360_LX, get_lval(XB360_RX));//left Y axis causes movement so was left out
if(get_lval(XB360_RY) > 20 && get_val(XB360_RS) > 30 || get_val(XB360_RB) > 30) set_val(XB360_LY, get_lval(XB360_RY));//set right Y axis to act
if(get_lval(XB360_RY) < -20 && get_val(XB360_RS) > 30 || get_val(XB360_RB) > 30) set_val(XB360_LY, get_lval(XB360_RY));//like left when melee
if(get_lval(XB360_RY) > 20 && get_val(XB360_LT) > 30) set_val(XB360_LY, get_lval(XB360_RY));//set right Y axis to act like left Y axis when aiming
if(get_lval(XB360_RY) < -20 && get_val(XB360_LT) > 30) set_val(XB360_LY, get_lval(XB360_RY));
}
combo RELOAD {
set_val(XB360_LT, 100);
wait(50);
set_val(XB360_LT, 100);
set_val(XB360_A, 100);
wait(50);
set_val(XB360_A, 0);
set_val(XB360_LT, 0);
}
combo MELEE { //hold RB for continuous slashing
block(XB360_B, 500);
set_val(XB360_LS, 100);
wait(50);
set_val(XB360_LS, 100);
set_val(XB360_RT, 100);
wait(400);
set_val(XB360_RT, 0);
set_val(XB360_LS, 0);
}
combo SPIN { //click LS to do 180 spin
set_val(XB360_LS, 0);
set_val(XB360_LY, 100);
set_val(XB360_A, 100);
wait(200);
set_val(XB360_LY, 0);
set_val(XB360_A, 0);
}
combo QTE { //hold LB and RB to win all QTEs
set_val(XB360_B, 100);
set_val(XB360_LS, 100);
set_val(XB360_LT, 100);
set_val(XB360_RT, 100);
set_val(XB360_X, 100);
set_val(XB360_A, 100);
wait(50);
set_val(XB360_B, 0);
set_val(XB360_LS, 0);
set_val(XB360_LT, 0);
set_val(XB360_RT, 0);
set_val(XB360_X, 0);
set_val(XB360_A, 0);
}