AR script (bonefisher)

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

AR script (bonefisher)

Postby Quiet_Clutch » Thu Sep 20, 2018 9:38 pm

Code: Select all
 
#define vertical    28.75
#define horizontal   0.00
bool    mod_active;
fix32   noise;
init{noise = 5.0;}
 
main {
//-------------------------Remove stick noise---------------------------------//
    if(abs(get_actual(STICK_1_X)) < noise) set_val(STICK_1_X, 0.0);
    if(abs(get_actual(STICK_1_Y)) < noise) set_val(STICK_1_Y, 0.0);
    if(abs(get_actual(STICK_2_X)) < noise) set_val(STICK_2_X, 0.0);
    if(abs(get_actual(STICK_2_Y)) < noise) set_val(STICK_2_Y, 0.0);
 
    if(get_actual(BUTTON_5))combo_run(anti_recoil);
    if(is_active(STICK_1_Y))combo_stop(anti_recoil);
    if(is_active(STICK_1_X))combo_stop(anti_recoil);
 
    // click d-pad left to toggle rapid fire
    if(event_active(BUTTON_12)){
        mod_active = !mod_active;
    }
    if(mod_active){
    if(get_actual(BUTTON_5))combo_run(rapid_fire);
    }
}
combo rapid_fire
{
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
}
 
combo anti_recoil
{
    set_val(STICK_1_Y, vertical);
    set_val(STICK_1_X, horizontal);
}
 

So I want to use this script but I want to be able to toggle the AR and the rapid fire. You can toggle the rapid fire but I don't want D-pad to be used, like I want 2 buttons to toggle like dpad + x or something like that. Also theres another script bonefisher posted which I just don't understand. If someone could maybe explain it that would be great
Code: Select all
 
#pragma METAINFO("Battlefield V MODzPACK", 1, 0, "bonefisher")
 
/* *****************************************************************************
<cfgdesc>
[BATTLEFIELD V MODzPACK]
color       = #349510
shortdesc    = Switching P=primary and S=secondary weapons enabled.
control        = info
 
[ONE CLICK CONFIGURATIONS]
color       = #349510
collapsible = 2
shortdesc    = One click predefined configurations can be incorporated in the Interactive Configuration interface.
control        = config
item        = ASSAULT:000000025800000003000000A00019333400000000000001000001C200000002000000A0000000000000000000000000000000000000000000000000000000000000A0038080030028003C
item        = MEDIC:010000016700000001000000A00018000000000000000001000001C200000002000000A000190000FFFE000000000000000000000000000000000000000000000000A0038080030028003C
item        = SUPPORT:00000001E000000003000000A00017214800000000000001000001C200000002000000A0001900000000000000000000000000000000000000000000000000000000A0038080030028003C
item        = SCOUT:0300000168000000010000009B0014000000000000000001000001C200000002000000A0001951EC0000000000000000000000000000000000000000000000000200A0030000030028003C
 
[PRIMARY WEAPONS FIRING OPTIONS]
color       = #349510
collapsible = 2
shortdesc    = Enable options on fire trigger.
byteoffset    = 0
bitsize        = 8
control        = radiobox
default        = 0
item        = Disabled for automatics
item        = Enable rapid fire for semi-automatics.
item        = Enable burst firing for automatics.
item        = Enable burst firing for semi-automatics.
 
[PRIMARY WEAPON ROUNDS PER MINUTE]
group        = true
shortdesc    = Adjust rounds per minute.
byteoffset    = 1
bitsize        = 32
control        = spinbox
default        = 360
minimum        = 60
maximum        = 1200
step        = 1
 
[PRIMARY WEAPON SHOTS PER BURST]
group        = true
shortdesc    = Apply burst shots by quick tap of fire trigger or for burst firing.
byteoffset    = 5
bitsize        = 32
control        = spinbox
default        = 1
minimum        = 1
maximum        = 20
step        = 1
 
[PRIMARY WEAPON BURST FIRE]
group        = true
shortdesc    = Adjust release time for burst firing semi-automatics or automatics.
byteoffset    = 9
bitsize        = 32
control        = spinbox
default        = 160
minimum        = 1
maximum        = 1200
step        = 1
 
[PRIMARY WEAPON ANTI-RECOIL VERTICAL SETTINGS]
group        = true
shortdesc    = Vertical compensation settings for primary weapon.
byteoffset    = 13
bitsize        = 32
control        = spinboxf
default        = 0000
minimum        = -10000
maximum        = 10000
step        = 1
decimals    = 2
 
[PRIMARY WEAPON ANTI-RECOIL HORIZONTAL SETTINGS]
group        = true
shortdesc    = Horizontal compensation settings for primary weapon.
byteoffset    = 17
bitsize        = 32
control        = spinboxf
default        = 00000
minimum        = -10000
maximum        = 10000
step        = 1
decimals    = 2
 
[PRIMARY WEAPON ADS ON FIRE TRIGGER]
group        = true
shortdesc    = Enabled ADS on FIRE trigger with primary weapons.
byteoffset    = 22
bitsize        = 1
bitoffset    = 7
control        = checkbox
default        = 0
item        = Enable ADS on FIRE trigger
 
[SECONDARY WEAPONS FIRING OPTIONS]
color       = #349510
collapsible = 2
shortdesc    = Enable options on fire trigger.
byteoffset    = 23
bitsize        = 8
control        = radiobox
default        = 0
item        = Disabled for automatics
item        = Enable rapid fire for semi-automatics.
item        = Enable burst firing for automatics.
item        = Enable burst firing for semi-automatics.
 
[SECONDARY WEAPON ROUNDS PER MINUTE]
group        = true
shortdesc    = Adjust rounds per minute.
byteoffset    = 24
bitsize        = 32
control        = spinbox
default        = 450
minimum        = 60
maximum        = 1200
step        = 1
 
[SECONDARY WEAPON SHOTS PER BURST]
group        = true
shortdesc    = Apply burst shots by quick tap of fire trigger or for burst firing.
byteoffset    = 28
bitsize        = 32
control        = spinbox
default        = 1
minimum        = 1
maximum        = 20
step        = 1
 
[SECONDARY WEAPON BURST FIRE]
group        = true
shortdesc    = Adjust release time for burst firing semi-automatics or automatics.
byteoffset    = 32
bitsize        = 32
control        = spinbox
default        = 160
minimum        = 1
maximum        = 1200
step        = 1
 
[SECONDARY WEAPON ANTI-RECOIL VERTICAL SETTINGS]
group        = true
shortdesc    = Vertical compensation settings for primary weapon.
byteoffset    = 36
bitsize        = 32
control        = spinboxf
default        = 0000
minimum        = -10000
maximum        = 10000
step        = 1
decimals    = 2
 
[SECONDARY WEAPON ANTI-RECOIL HORIZONTAL SETTINGS]
group        = true
shortdesc    = Horizontal compensation settings for primary weapon.
byteoffset    = 40
bitsize        = 32
control        = spinboxf
default        = 00000
minimum        = -10000
maximum        = 10000
step        = 1
decimals    = 2
 
[SECONDARY WEAPON ADS ON FIRE TRIGGER]
group        = true
shortdesc    = Enabled ADS on FIRE trigger with secondary weapons.
byteoffset    = 45
bitsize        = 1
bitoffset    = 7
control        = checkbox
default        = 0
item        = Enable ADS on FIRE trigger
 
[SCOPE OPTIONS]
color       = #349510
collapsible = 2
shortdesc    = Enable Scope features on the ADS trigger.
byteoffset    = 64
bitsize        = 8
control        = radiobox
default        = 0
item        = Disabled
item        = Enable hold breath.
item        = Enable quick scope and hold breath.
 
[QUICK SCOPE ADJUSTMENTS]
group        = true
shortdesc    = Adjust quick scope delay.
byteoffset    = 65
bitsize        = 16
control        = slider
default        = 160
minimum        = 0
maximum        = 500
step        = 1
 
[SPRINT OPTIONS]
color       = #349510
collapsible = 2
shortdesc    = Enable Sprint features on the left stick.
byteoffset    = 67
bitsize        = 8
control        = radiobox
default        = 0
item        = Disabled
item        = Enable any movement sprint forward.
item        = Enable easy sprint with stick forward 98 percent.
item        = Enable crouch,reload stop sprint with activate again by jump tap.
 
[SLIDE SPRINTING]
group        = true
shortdesc    = Activate left stick forward 75% and double tap crouch button.
byteoffset    = 68
bitsize        = 1
bitoffset    = 7
control        = checkbox
default        = 0
item        = Enable Slide Sprinting
 
[BUNNY HOP SPRINTING]
group        = true
shortdesc    = Activate left stick forward 75% and double tap jump button.
byteoffset    = 69
bitsize        = 1
bitoffset    = 7
control        = checkbox
default        = 0
item        = Enable Bunny Hop Sprinting
 
[SPOT OPTIONS]
color       = #349510
collapsible = 2
shortdesc    = Enable spot features.
byteoffset    = 70
bitsize        = 8
control        = radiobox
default        = 0
item        = Disabled
item        = Enable ADS only spotting.
item        = Enable hold ADS 300ms/ released has 6 seconds.
item        = Enable hold ADS 400ms to activate/ hold jump 400ms to deactivate.
 
[MINIMUM RADOM ADJUSTMENT]
group        = true
shortdesc    = Adjust minimum random spot delay.
byteoffset    = 71
bitsize        = 16
control        = slider
default        = 40
minimum        = 20
maximum        = 1000
step        = 1
 
[MAXIMUM RADOM ADJUSTMENT]
group        = true
shortdesc    = Adjust maximum random spot delay.
byteoffset    = 73
bitsize        = 16
control        = slider
default        = 60
minimum        = 30
maximum        = 2000
step        = 1
</cfgdesc>
***************************************************************************** */

 
#include <display.gph>
#define WEAPON_0   0
#define WEAPON_1   1
 
bool   fire_ads;
bool   fire_ads2;
bool   spot_u;
bool   change;
bool   slide;
bool   hop;
bool   slide_switch;
bool   hop_switch;
bool   crouch;
int    Spot_Minimum ;
int    Spot_Maximum ;
int    Spot_Time    = 0;
int    Spot_Wait    = 0;
int    quick_scope_delay;
int    t;
uint8  primary_fire;
uint8  secondary_fire;
uint8  weapon = 0;
uint8  spot;
uint8  scope;
uint8  sprint;
fix32  noise;
fix32  vertical;
fix32  horizontal;
fix32  vertical2;
fix32  horizontal2;
uint32 rpm;
uint32 rpm2;
uint32 burst;
uint32 burst2;
uint32 tap_fire;
uint32 tap_fire2;
uint32 burst_adjustment;
uint32 burst_adjustment2;
uint32    IND[] = {
    _0_,                  // 0
    _1_,                  // 1
    _2_,                  // 2
    _3_,                  // 3
    _P_,                  // 4
    _S_,                  // 5
    _A_                   // 6
};
init
{
    pmem_load();
    primary_fire = pmem_read(0);
    pmem_read(1, &rpm);
    pmem_read(5, &burst);
    pmem_read(9, &burst_adjustment);
    pmem_read(13, &vertical);
    pmem_read(17, &horizontal);
    fire_ads = (pmem_read(22) >> 7) & 0b1;
    secondary_fire = pmem_read(23);
    pmem_read(24, &rpm2);
    pmem_read(28, &burst2);
    pmem_read(32, &burst_adjustment2);
    pmem_read(36, &vertical2);
    pmem_read(40, &horizontal2);
    fire_ads2 = (pmem_read(45) >> 7) & 0b1;
 
    scope = pmem_read(64);
    pmem_read(65, &quick_scope_delay);
    sprint = pmem_read(67);
    slide = (pmem_read(68) >> 7) & 0b1;
    hop = (pmem_read(69) >> 7) & 0b1;
    spot = pmem_read(70);
    pmem_read(71, &Spot_Minimum);
    pmem_read(73, &Spot_Maximum);
 
    printf("primary_fire: %u", primary_fire);
    printf("rpm: %d", rpm);
    printf("burst: %d", burst);
    printf("burst_adjustment: %d", burst_adjustment);
    printf("vertical: %.04f", vertical);
    printf("horizontal: %.04f", horizontal);
    printf("fire_ads: %d", fire_ads);
    printf("secondary_fire: %u", secondary_fire);
    printf("rpm2: %d", rpm2);
    printf("burst2: %d", burst2);
    printf("burst_adjustment2: %d", burst_adjustment2);
    printf("vertical2: %.04f", vertical2);
    printf("horizontal2: %.04f", horizontal2);
    printf("fire_ads2: %d", fire_ads2);
 
    printf("scope: %u", scope);
    printf("quick_scope_delay: %d", quick_scope_delay);
    printf("sprint: %u", sprint);
    printf("slide: %d", slide);
    printf("hop: %d", hop);
    printf("spot: %u", spot);
    printf("Spot_Minimum: %d", Spot_Minimum);
    printf("Spot_Maximum: %d", Spot_Maximum);
 
    tap_fire = burst * (1000 / (rpm / 60));
    tap_fire2 = burst2 * (1000 / (rpm2 / 60));
    noise = 5.0;
 
    clamp(vertical, -100.00, 100.00);
    clamp(horizontal, -100.00, 100.00);
    clamp(vertical2, -100.00, 100.00);
    clamp(horizontal2, -100.00, 100.00);
}
main {
//-------------------------Remove stick noise---------------------------------//
    if(abs(get_actual(STICK_1_X)) < noise) set_val(STICK_1_X, 0.0);
    if(abs(get_actual(STICK_1_Y)) < noise) set_val(STICK_1_Y, 0.0);
    if(abs(get_actual(STICK_2_X)) < noise) set_val(STICK_2_X, 0.0);
    if(abs(get_actual(STICK_2_Y)) < noise) set_val(STICK_2_Y, 0.0);
//--------------------------WEAPON-SWITCHING----------------------------------//
    if(event_release(BUTTON_14) && time_active(BUTTON_14) < 250) {
        if(weapon == WEAPON_0) set_weapon(WEAPON_1);
        else if(weapon == WEAPON_1) set_weapon(WEAPON_0);
    }
//--------------------------RESET-WEAPON-TRACK--------------------------------//
    if(!is_active(BUTTON_12) && !is_active(BUTTON_13) &&
    event_active(BUTTON_11) && time_release(BUTTON_11) < 250) {
        set_weapon(WEAPON_0);
    }
 
    switch(weapon) {
        case WEAPON_0: {
    /* Automatic weapons */
    if(primary_fire == 0) {
    if(get_actual(BUTTON_5)) {
        set_val(BUTTON_5, 100.0);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire) {
        tap_fire = burst * (1000 / (rpm / 60));
        set_val(BUTTON_5, 100.0);
        combo_run(anti_recoil);
    }
    }
    /* Semi- Automatic weapons */
    if(primary_fire == 1) {
        set_val(BUTTON_5, 0.0);
    if(get_actual(BUTTON_5)) {
        turbo(BUTTON_5);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire) {
        turbo(BUTTON_5);
        combo_run(anti_recoil);
    }
    }
     /* Burst for Automatic weapons */
    if(primary_fire == 2) {
        set_val(BUTTON_5, 0.0);
    if(is_active(BUTTON_5)) {
        combo_run(burst_auto);
        turbo(BUTTON_5);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire) {
        turbo(BUTTON_5);
        combo_run(anti_recoil);
    }
    }
    /* Burst for Semi- Automatic weapons */
    if(primary_fire == 3) {
        set_val(BUTTON_5, 0.0);
    if(is_active(BUTTON_5)) {
        combo_run(burst_rapid);
        turbo(BUTTON_5);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire) {
        turbo(BUTTON_5);
        combo_run(anti_recoil);
    }
    }
    if(fire_ads == 1 && get_actual(BUTTON_5)){set_val(BUTTON_8,100.0);}
 
    if(get_actual(BUTTON_5))combo_run(anti_recoil);
    if(is_active(STICK_1_Y))combo_stop(anti_recoil);
    if(is_active(STICK_1_X))combo_stop(anti_recoil);
    } break;
        case WEAPON_1: {
    /* Automatic weapons */
    if(secondary_fire == 0) {
    if(get_actual(BUTTON_5)) {
        set_val(BUTTON_5, 100.0);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire2) {
        tap_fire2 = burst2 * (1000 / (rpm2 / 60));
        set_val(BUTTON_5, 100.0);
        combo_run(anti_recoil2);
    }
    }
    /* Semi- Automatic weapons */
    if(secondary_fire == 1) {
        set_val(BUTTON_5, 0.0);
    if(get_actual(BUTTON_5)) {
        turbos(BUTTON_5);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire2) {
        turbos(BUTTON_5);
        combo_run(anti_recoil2);
    }
    }
     /* Burst for Automatic weapons */
    if(secondary_fire == 2) {
        set_val(BUTTON_5, 0.0);
    if(is_active(BUTTON_5)) {
        combo_run(burst_auto2);
        turbos(BUTTON_5);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire2) {
        turbos(BUTTON_5);
        combo_run(anti_recoil2);
    }
    }
    /* Burst for Semi- Automatic weapons */
    if(secondary_fire == 3) {
        set_val(BUTTON_5, 0.0);
    if(is_active(BUTTON_5)) {
        combo_run(burst_rapid2);
        turbos(BUTTON_5);
    }else if(is_release(BUTTON_5) &&
     time_active(BUTTON_5) <= tap_fire2) {
        turbos(BUTTON_5);
        combo_run(anti_recoil2);
    }
    }
    if(fire_ads2 == 1 && get_actual(BUTTON_5)){set_val(BUTTON_8,100.0);}
 
    if(get_actual(BUTTON_5))combo_run(anti_recoil2);
    if(is_active(STICK_1_Y))combo_stop(anti_recoil2);
    if(is_active(STICK_1_X))combo_stop(anti_recoil2);
    } break;
    }
    if (get_actual(BUTTON_16) && time_active(BUTTON_16) > 500) {
        set_weapon(WEAPON_0);
    }
    if (get_actual(BUTTON_17) && time_active(BUTTON_17) > 500) {
        set_weapon(WEAPON_0);
    }
    if(scope == 1){
    if(get_actual(BUTTON_8) && time_active(BUTTON_8) > 100) {
        combo_run(breath);
    }       
    }
    if(scope ==2 ){
    if(event_release(BUTTON_8) && time_active(BUTTON_8) < 240) {
        combo_run(one_shot);
    }
    if(get_actual(BUTTON_8) && time_active(BUTTON_8) > 100) {
        combo_run(breath);
    }   
    }
    if(sprint == 1) {
    if(is_active(STICK_2_Y)) {
        combo_run(EasySprint);
    }
    if(get_actual(BUTTON_5) || get_actual(BUTTON_8) ||
       get_actual(BUTTON_4) || get_actual(BUTTON_7)) {
        combo_stop(EasySprint);
    }
    }
    if(sprint == 2) {
    if(get_val(STICK_2_Y) < -98.0) {
        combo_run(EasySprint);
    }
    if(get_actual(BUTTON_5) || get_actual(BUTTON_8) ||
       get_actual(BUTTON_4) || get_actual(BUTTON_7)) {
        combo_stop(EasySprint);
    }
    }
    if(sprint == 3){
    if(is_active(STICK_2_Y) && crouch == 0) {
        combo_run(EasySprint);
    }
    if(get_actual(BUTTON_5) || get_actual(BUTTON_8) ||
       get_actual(BUTTON_4) || get_actual(BUTTON_7)) {
        combo_stop(EasySprint);
    }
    if(event_active(BUTTON_15)) crouch = 1;
    else if(event_active(BUTTON_17)) crouch = 1;
    else if(event_active(BUTTON_16)) crouch = 0;
    }
    if(slide == 1){
    if(get_actual(STICK_2_Y) < -75.0){
        inhibit(BUTTON_15, 100);
    if(is_active(BUTTON_15) && time_release(BUTTON_15) <= 240){
        slide_switch = 1;
        crouch = 0;
    }
    }else if(get_actual(STICK_2_Y) > -75.0){
        slide_switch = 0;
    }
    if(slide_switch == 1){
        combo_run(slide_sprint);
    }
    }
    if(hop == 1){
    if(get_actual(STICK_2_Y) < -75.0){
        inhibit(BUTTON_16, 100);
    if(is_active(BUTTON_16) && time_release(BUTTON_16) <= 240){
        hop_switch = 1;
    }
    }else if(get_actual(STICK_2_Y) > -75.0){
        hop_switch = 0;
    }
    if(hop_switch == 1){
        combo_run(bunny_hop);
    }
    }
    if(spot == 1) {
    Spot_Time = Spot_Time + elapsed_time();
    if(Spot_Time >= Spot_Maximum){
        Spot_Time = Spot_Minimum;
    }
    if(!auto_spot && get_actual(BUTTON_8)){
        Spot_Wait = Spot_Time;
        combo_run(auto_spot);
    }else if(event_release(BUTTON_8)) {
        combo_stop(auto_spot);
    }
    }
    if(spot == 2) {
    if (get_actual(BUTTON_8) && time_active(BUTTON_8) > 300) {
        spot_u = 1;change = 1;
    }
    if(spot_u == 1) {
    if(event_active(BUTTON_8)
    & !change || (t > 6000)){
        t = 0,
        change = !change;
        spot_u = 0;
    }
    if (change){
        ++t;
        if (get_actual(BUTTON_8))
        { t = 0; }
        ...
    Spot_Time = Spot_Time + elapsed_time();
    if(Spot_Time >= Spot_Maximum){
        Spot_Time = Spot_Minimum;
    }
    if(!auto_spot){
        Spot_Wait = Spot_Time;
        combo_run(auto_spot);
    }else if(get_actual(BUTTON_4)) {
        combo_stop(auto_spot);
        set_val(BUTTON_4, 100.0);
    }
    }
    }
    }
    if(spot == 3){
    if (get_actual(BUTTON_8) && time_active(BUTTON_8) > 400) {
        spot_u = 1;
    }
    if (get_actual(BUTTON_16) && time_active(BUTTON_16) > 400) {
        spot_u = 0;
    }
    if(spot_u == 1) {
    Spot_Time = Spot_Time + elapsed_time();
    if(Spot_Time >= Spot_Maximum){
        Spot_Time = Spot_Minimum;
    }
    if(!auto_spot){
        Spot_Wait = Spot_Time;
        combo_run(auto_spot);
    }else if(get_actual(BUTTON_4)) {
        combo_stop(auto_spot);
        set_val(BUTTON_4, 100.0);
    }
    }
    }
}
 
combo burst_auto
{
    turbo(BUTTON_5);
    set_val(BUTTON_5, 100.0);
    wait(tap_fire);
    set_val(BUTTON_5, 0.0);
    wait(burst_adjustment);
}
 
combo burst_rapid
{
    turbo(BUTTON_5);
    wait(tap_fire);
    set_val(BUTTON_5, 0.0);
    wait(burst_adjustment);
}
 
combo burst_auto2
{
    turbos(BUTTON_5);
    set_val(BUTTON_5, 100.0);
    wait(tap_fire2);
    set_val(BUTTON_5, 0.0);
    wait(burst_adjustment2);
}
 
combo burst_rapid2
{
    turbos(BUTTON_5);
    wait(tap_fire2);
    set_val(BUTTON_5, 0.0);
    wait(burst_adjustment2);
}
 
combo anti_recoil
{
    set_val(STICK_1_Y, vertical);
    set_val(STICK_1_X, horizontal);
}
 
combo anti_recoil2
{
    set_val(STICK_1_Y, vertical2);
    set_val(STICK_1_X, horizontal2);
}
 
combo EasySprint
{
    set_val(BUTTON_9, 100.0);
    wait(60);
    set_val(BUTTON_9, 0.0);
    wait(60);
    set_val(BUTTON_9, 0.0);
}
 
combo auto_spot
{
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0.0);
    wait(Spot_Wait);
    set_val(BUTTON_4, 0.0);
}
 
combo breath
{
    set_val(BUTTON_9, 100.0);
    wait(10);
    set_val(BUTTON_9, 100.0);
}
 
combo one_shot
{
    set_val(BUTTON_8, 100.0);
    set_val(BUTTON_9, 100.0);
    wait(quick_scope_delay);
    set_val(BUTTON_8, 100.0);
    set_val(BUTTON_9, 100.0);
    set_val(BUTTON_5, 100.0);
    wait(60);
    set_val(BUTTON_8, 100.0);
    wait(40);
}
 
combo slide_sprint
{
    set_val(BUTTON_15, 100.0);
    wait(50);wait(1750);
}
 
combo bunny_hop
{
    set_val(BUTTON_16, 100.0);
    wait(50);wait(1500);
}
 
void turbo(uint8 button)
{
    uint32 sps = rpm/ 60;
    uint32 rate = 1000 / sps;
    uint32 hold = rate / 2;
 
    uint32 ta = time_active(button);
    set_val(button, 100.0);
 
   while(ta > rate) {
        ta -= rate;
    }
    tap_fire = burst * (1000 / (rpm / 60));
 
    if(ta > hold) {
        set_val(button, 0.0);
    }
}
 
void turbos(uint8 button)
{
    uint32 sps2 = rpm2/ 60;
    uint32 rate2 = 1000 / sps2;
    uint32 hold2 = rate2 / 2;
 
    uint32 ta2 = time_active(button);
    set_val(button, 100.0);
 
   while(ta2 > rate2) {
        ta2 -= rate2;
    }
    tap_fire2 = burst2 * (1000 / (rpm2 / 60));
 
    if(ta2 > hold2) {
        set_val(button, 0.0);
    }
}
 
void set_weapon(uint8 new_weapon)
{
    static uint8 old_weapon;
 
    if(new_weapon == old_weapon) return;
    old_weapon = new_weapon;
    weapon = new_weapon;
 
    static uint32 timestamp;
    uint32 elapsed = system_time() - timestamp;
 
    if(!elapsed || elapsed >= 10) {
    // Set LED
    switch(weapon) {
        case WEAPON_0: { // BLUE LED
            led_set(LED_1, 100.0, 0);
            led_set(LED_2, 0.0, 0);
            led_set(LED_3, 0.0, 0);
            led_set(LED_4, 0.0, 0);
            display (4);
        } break;
        case WEAPON_1: { // RED LED
            led_set(LED_1, 0.0, 0);
            led_set(LED_2, 100.0, 0);
            led_set(LED_3, 0.0, 0);
            led_set(LED_4, 0.0, 0);
            display (5);
        } break;
    }
    timestamp = system_time();
    }
    return;
}
 
 // Display Numbers
void display (uint8 indc)
{
    uint8 VIE;
    VIE = IND[indc];
    display_overlay(VIE, 2000 );
}
 
 
 

btw I'm basically a beginner too all this scripting stuff. I really just don't understand it. Its kind of like C# but hell what do I know.
User avatar
Quiet_Clutch
Sergeant First Class
Sergeant First Class
 
Posts: 17
Joined: Fri Feb 16, 2018 5:18 pm

Re: AR script (bonefisher)

Postby J2Kbr » Fri Sep 21, 2018 9:55 am

Related with your request, the script was changed to:

d-pad down + LT to toggle anti recoil

d-pad down + RT to toggle rapidfire

Code: Select all
#define vertical    28.75
#define horizontal   0.00
 
bool    rf_active;
bool    ar_active;
fix32   noise;
 
init{noise = 5.0;}
 
main {
//-------------------------Remove stick noise---------------------------------//
    if(abs(get_actual(STICK_1_X)) < noise) set_val(STICK_1_X, 0.0);
    if(abs(get_actual(STICK_1_Y)) < noise) set_val(STICK_1_Y, 0.0);
    if(abs(get_actual(STICK_2_X)) < noise) set_val(STICK_2_X, 0.0);
    if(abs(get_actual(STICK_2_Y)) < noise) set_val(STICK_2_Y, 0.0);
 
    // click d-pad down + LT to toggle anti recoil
    if(get_val(BUTTON_11) && event_active(BUTTON_8)) {
        ar_active = !ar_active;
    }
    if(ar_active){
        if(get_actual(BUTTON_5))combo_run(anti_recoil);
        if(is_active(STICK_1_Y))combo_stop(anti_recoil);
        if(is_active(STICK_1_X))combo_stop(anti_recoil);
    }
 
    // click d-pad down + RT to toggle rapidfire
    if(get_val(BUTTON_11) && event_active(BUTTON_5)) {
        rf_active = !rf_active;
    }
    if(rf_active){
        if(get_actual(BUTTON_5)) combo_run(rapid_fire);
    }
}
combo rapid_fire
{
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
}
 
combo anti_recoil
{
    set_val(STICK_1_Y, vertical);
    set_val(STICK_1_X, horizontal);
}
 
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Re: AR script (bonefisher)

Postby alanmcgregor » Fri Sep 21, 2018 4:48 pm

A bit unrelated yet I'm curious.

J2Kbr, is there a particular reason why on rapid-fire combos, added this second set_val sentence to 0.0?

Code: Select all
combo rapid_fire
{
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
    set_val(BUTTON_5, 0.0); //<---- this line
}
User avatar
alanmcgregor
Major
Major
 
Posts: 981
Joined: Tue Mar 27, 2018 8:38 am

Re: AR script (bonefisher)

Postby bonefisher » Fri Sep 21, 2018 4:54 pm

You don't need to but it just closes it off then on tight when looping.
bonefisher
Lieutenant General
Lieutenant General
 
Posts: 5413
Joined: Thu Jan 29, 2015 10:49 am

Re: AR script (bonefisher)

Postby alanmcgregor » Fri Sep 21, 2018 6:23 pm

Oh thanks bonefisher :joia:

BTW, I tried your Battlefield V MODz Pack amazing job man! the Spotting is golden!.

You are going to publish it when game is released?
User avatar
alanmcgregor
Major
Major
 
Posts: 981
Joined: Tue Mar 27, 2018 8:38 am

Re: AR script (bonefisher)

Postby bonefisher » Fri Sep 21, 2018 8:29 pm

I'm going to add some new things but waiting on release to make sure everything is in good timing !
bonefisher
Lieutenant General
Lieutenant General
 
Posts: 5413
Joined: Thu Jan 29, 2015 10:49 am


Return to GPC2 Script Programming

Who is online

Users browsing this forum: Google [Bot] and 89 guests