Raised This Month: $ Target: $400
 0% 

add a flag check


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
jonny1990
Senior Member
Join Date: Apr 2020
Old 06-27-2020 , 10:02   add a flag check
Reply With Quote #1

Hello! please help me make sure that only those who have a flag get grenades

Code:
#include <amxmodx>
  #include <engine>
  #include <fun>

  #define VOL_LOW 0.5 // volume used to play nade bouncing sound
  #define NADE_OFFSET 10 // distance (vaguely) between death origin and nade origin

  // DeathMSG
  public event_damage(id) {

    // if player is still alive or plugin is disabled
    if(get_user_health(id) > 0 || get_cvar_num("mp_nadedrops") < 1) {
      return PLUGIN_CONTINUE;
    }

    // if player had HE grenade
    if(hasweapon(id,"weapon_hegrenade") > 0) {
      new grenade = create_entity("info_target"); // create grenade entity
      entity_set_string(grenade,EV_SZ_classname,"fake_hegrenade"); // change name
      entity_set_int(grenade,EV_ENT_owner,id); // set owner
      entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

      // set grenade entity's size
      new Float:minbox[3] = { -2.5, -2.5, -2.5 }
      new Float:maxbox[3] = { 2.5, 2.5, 2.5 };
      entity_set_vector(grenade,EV_VEC_mins,minbox);
      entity_set_vector(grenade,EV_VEC_maxs,maxbox);

      // set grenade's overall being of a whole
      entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
      entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

      // set a random angle
      new Float:angles[3] = { 0.0, 0.0, 0.0 };
      angles[1] = float(random_num(0,180));
      entity_set_vector(grenade,EV_VEC_angles,angles);

      // get player's origin
      new Float:origin[3];
      entity_get_vector(id,EV_VEC_origin,origin);
      origin[0] += NADE_OFFSET; // offset

      // set model and origin
      entity_set_model(grenade,"models/w_hegrenade.mdl");
      entity_set_vector(grenade,EV_VEC_origin,origin);
    }

    // if player had smoke grenade
    if(hasweapon(id,"weapon_smokegrenade") > 0) {
      new grenade = create_entity("info_target"); // create grenade entity
      entity_set_string(grenade,EV_SZ_classname,"fake_smokegrenade"); // change name
      entity_set_int(grenade,EV_ENT_owner,id); // set owner
      entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

      // set grenade entity's size
      new Float:minbox[3] = { -2.5, -2.5, -2.5 }
      new Float:maxbox[3] = { 2.5, 2.5, 2.5 };
      entity_set_vector(grenade,EV_VEC_mins,minbox);
      entity_set_vector(grenade,EV_VEC_maxs,maxbox);

      // set grenade's overall being of a whole
      entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
      entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

      // set a random angle
      new Float:angles[3] = { 0.0, 0.0, 0.0 };
      angles[1] = float(random_num(0,180));
      entity_set_vector(grenade,EV_VEC_angles,angles);

      // get player's origin
      new Float:origin[3];
      entity_get_vector(id,EV_VEC_origin,origin);
      origin[0] -= NADE_OFFSET; // offset

      // set model and origin
      entity_set_model(grenade,"models/w_smokegrenade.mdl");
      entity_set_vector(grenade,EV_VEC_origin,origin);
    }

    // if player had at least one flashbang
    if(hasweapon(id,"weapon_flashbang") > 0) {
      new grenade = create_entity("info_target"); // create grenade entity
      entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
      entity_set_int(grenade,EV_ENT_owner,id); // set owner
      entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

      // set grenade entity's size
      new Float:minbox[3] = { -2.5, -2.5, -2.5 }
      new Float:maxbox[3] = { 2.5, 2.5, 2.5 };
      entity_set_vector(grenade,EV_VEC_mins,minbox);
      entity_set_vector(grenade,EV_VEC_maxs,maxbox);

      // set grenade's overall being of a whole
      entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
      entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

      // set a random angle
      new Float:angles[3] = { 0.0, 0.0, 0.0 };
      angles[1] = float(random_num(0,180));
      entity_set_vector(grenade,EV_VEC_angles,angles);

      // get player's origin
      new Float:origin[3];
      entity_get_vector(id,EV_VEC_origin,origin);
      origin[1] += NADE_OFFSET; // offset

      // set model and origin
      entity_set_model(grenade,"models/w_flashbang.mdl");
      entity_set_vector(grenade,EV_VEC_origin,origin);
    }

    // if player had two flashbangs, drop another
    if(hasweapon(id,"weapon_flashbang") > 1) {
      new grenade = create_entity("info_target"); // create grenade entity
      entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
      entity_set_int(grenade,EV_ENT_owner,id); // set owner
      entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

      // set grenade entity's size
      new Float:minbox[3] = { -2.5, -2.5, -2.5 }
      new Float:maxbox[3] = { 2.5, 2.5, 2.5 };
      entity_set_vector(grenade,EV_VEC_mins,minbox);
      entity_set_vector(grenade,EV_VEC_maxs,maxbox);

      // set grenade's overall being of a whole
      entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
      entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

      // set a random angle
      new Float:angles[3] = { 0.0, 0.0, 0.0 };
      angles[1] = float(random_num(0,180));
      entity_set_vector(grenade,EV_VEC_angles,angles);

      // get player's origin
      new Float:origin[3];
      entity_get_vector(id,EV_VEC_origin,origin);
      origin[1] -= NADE_OFFSET; // offset

      // set model and origin
      entity_set_model(grenade,"models/w_flashbang.mdl");
      entity_set_vector(grenade,EV_VEC_origin,origin);
    }

    return PLUGIN_CONTINUE;
  }

  // ResetHUD
  public event_resethud(id) {
    if(is_user_connected(id) == 1 && get_user_team(id) < 3) {
      set_task(0.5,"checkalive",id); // delay, because client is technically dead on ResetHUD
    }
  }

  // check if user is alive
  public checkalive(id) {
    if(is_user_alive(id) == 1) { // if so
      clear_nades(id); // clear nades (they just spawned)
    }
  }

  // entity touching
  public pfn_touch(ptr,ptd) {
    if(!is_valid_ent(ptd)) { // invalid toucher
      return PLUGIN_CONTINUE;
    }

    new classname[32];
    entity_get_string(ptd,EV_SZ_classname,classname,31); // get name of toucher

    new bounced = entity_get_int(ptd,EV_INT_iuser1); // bounced yet?

    // check if one of our fake grenades is colliding with world and mp_nadedropsounds is positive
    if((equal(classname,"fake_hegrenade") || equal(classname,"fake_flashbang") || equal(classname,"fake_smokegrenade")) && ptr == 0 && bounced == 0 && get_cvar_num("mp_nadedropsounds") > 0) {
      emit_sound(ptd,CHAN_ITEM,"weapons/he_bounce-1.wav",VOL_LOW,ATTN_NORM,0,PITCH_LOW); // play sound
      entity_set_int(ptd,EV_INT_iuser1,1); // has bounced
      return PLUGIN_CONTINUE;
    }

    // now check for more invalid entities or players
    if(!is_valid_ent(ptr) || !is_valid_ent(ptd) || !is_user_connected(ptd)) {
      return PLUGIN_CONTINUE;
    }

    entity_get_string(ptr,EV_SZ_classname,classname,31); // get name of touched

    // if player is touching hegrenade and doesn't have one
    if(equal(classname,"fake_hegrenade") && hasweapon(ptd,"weapon_hegrenade") == 0) {
      give_item(ptd,"weapon_hegrenade");
      remove_entity(ptr);
      return PLUGIN_CONTINUE;
    }

    // if player is touching smokegrenade and doesn't have one
    if(equal(classname,"fake_smokegrenade") && hasweapon(ptd,"weapon_smokegrenade") == 0) {
      give_item(ptd,"weapon_smokegrenade");
      remove_entity(ptr);
      return PLUGIN_CONTINUE;
    }

    // if player is touching flashbang and has room for another
    if(equal(classname,"fake_flashbang") && hasweapon(ptd,"weapon_flashbang") < 2) {
      give_item(ptd,"weapon_flashbang");
      remove_entity(ptr);
      return PLUGIN_CONTINUE;
    }

    return PLUGIN_CONTINUE;
  }

  // client disconnection
  public client_disconnect(id) {
    clear_nades(id);
  }

  // function to check if player has a specific weapon.
  // returns the amount of ammo for that weapon in backpack.
  // we use this so we can check for multiple flashbangs as well
  public hasweapon(id,weaponname[32]) {
    if(is_user_connected(id) == 0 || get_user_team(id) > 2) {
      return 0;
    }

    new weapons[32], num;
    get_user_weapons(id,weapons,num); // get weapons

    new foundweapon; // if we found the weapon yet (and if we did how much ammo for it)

    // loop through weapons
    for(new i=0;i<num;i++) {
      new checkweaponname[32];
      get_weaponname(weapons[i],checkweaponname,31);

      if(equal(weaponname,checkweaponname)) { // compare names
        new clip, ammo; // clip and ammo
        get_user_ammo(id,weapons[i],clip,ammo); // get clip and ammo
        foundweapon = ammo; // return amount in clip (for multiple FBs)
        break;
      }
    }

    return foundweapon;
  }

  // clear user's grenades
  public clear_nades(id) {
    new currnade;

    // go through fake HE grenades
    currnade = -1;
    while((currnade = find_ent_by_class(currnade,"fake_hegrenade")) > 0) {
      if(entity_get_int(currnade,EV_ENT_owner) == id) {
        remove_entity(currnade);
      }
    }

    // go through fake smoke grenades
    currnade = -1;
    while((currnade = find_ent_by_class(currnade,"fake_smokegrenade")) > 0) {
      if(entity_get_int(currnade,EV_ENT_owner) == id) {
        remove_entity(currnade);
      }
    }

    // go through fake flashbangs
    currnade = -1;
    while((currnade = find_ent_by_class(currnade,"fake_flashbang")) > 0) {
      if(entity_get_int(currnade,EV_ENT_owner) == id) {
        remove_entity(currnade);
      }
    }
  }

  // plugin precache
  public plugin_precache() {
    precache_model("models/w_hegrenade.mdl");
    precache_model("models/w_flashbang.mdl");
    precache_model("models/w_smokegrenade.mdl");
    precache_sound("weapons/he_bounce-1.wav");
  }

  // plugin initiation
  public plugin_init() {
    register_plugin("CSNadeDrops","0.14","Avalanche");
    console_print(0,"* CSNadeDrops 0.14 by Avalanche");

    register_event("Damage","event_damage","b","2!0"); // damage event
    register_event("ResetHUD","event_resethud","b"); // reset HUD event

    register_cvar("mp_nadedrops","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable plugin
    register_cvar("mp_nadedropsounds","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable nade drop sounds

    // get the mod's name
    new modname[32];
    get_modname(modname,31);

    // if this isn't Counter-Strike
    if(!equal(modname,"cstrike")) {
      pause("ae"); // lock the plugin
    }
  }
jonny1990 is offline
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-27-2020 , 10:12   Re: add a flag check
Reply With Quote #2

What is this plugin supposed to do? Drop the grenade when player dies? In that case you want to drop only when player has certain flags?
__________________
Contact! || Discord:
Mr_Boopsy_#2066
supertrio17 is offline
jonny1990
Senior Member
Join Date: Apr 2020
Old 06-27-2020 , 10:34   Re: add a flag check
Reply With Quote #3

Quote:
Originally Posted by supertrio17 View Post
What is this plugin supposed to do? Drop the grenade when player dies? In that case you want to drop only when player has certain flags?
Yes, that's right, that would grenades fell to the ground only for those who have a flag
jonny1990 is offline
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-27-2020 , 10:42   Re: add a flag check
Reply With Quote #4

Quote:
Originally Posted by jonny1990 View Post
Yes, that's right, that would grenades fell to the ground only for those who have a flag
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>

#define FLAG_HERE "t" //change your flag here

#define VOL_LOW 0.5 // volume used to play nade bouncing sound
#define NADE_OFFSET 10 // distance (vaguely) between death origin and nade origin

// DeathMSG
public event_damage(id) {

// if player is still alive or plugin is disabled
if(get_user_health(id) > || get_cvar_num("mp_nadedrops") < || !has_flag(idFLAG_HERE)) {
    return 
PLUGIN_CONTINUE;
}

// if player had HE grenade
if(hasweapon(id,"weapon_hegrenade") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_hegrenade"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[0] += NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_hegrenade.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had smoke grenade
if(hasweapon(id,"weapon_smokegrenade") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_smokegrenade"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[0] -= NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_smokegrenade.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had at least one flashbang
if(hasweapon(id,"weapon_flashbang") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[1] += NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_flashbang.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had two flashbangs, drop another
if(hasweapon(id,"weapon_flashbang") > 1) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[1] -= NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_flashbang.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

return 
PLUGIN_CONTINUE;
}

// ResetHUD
public event_resethud(id) {
if(
is_user_connected(id) == && get_user_team(id) < 3) {
    
set_task(0.5,"checkalive",id); // delay, because client is technically dead on ResetHUD
}
}

// check if user is alive
public checkalive(id) {
if(
is_user_alive(id) == 1) { // if so
    
clear_nades(id); // clear nades (they just spawned)
}
}

// entity touching
public pfn_touch(ptr,ptd) {
if(!
is_valid_ent(ptd)) { // invalid toucher
    
return PLUGIN_CONTINUE;
}

new 
classname[32];
entity_get_string(ptd,EV_SZ_classname,classname,31); // get name of toucher

new bounced entity_get_int(ptd,EV_INT_iuser1); // bounced yet?

// check if one of our fake grenades is colliding with world and mp_nadedropsounds is positive
if((equal(classname,"fake_hegrenade") || equal(classname,"fake_flashbang") || equal(classname,"fake_smokegrenade")) && ptr == && bounced == && get_cvar_num("mp_nadedropsounds") > 0) {
    
emit_sound(ptd,CHAN_ITEM,"weapons/he_bounce-1.wav",VOL_LOW,ATTN_NORM,0,PITCH_LOW); // play sound
    
entity_set_int(ptd,EV_INT_iuser1,1); // has bounced
    
return PLUGIN_CONTINUE;
}

// now check for more invalid entities or players
if(!is_valid_ent(ptr) || !is_valid_ent(ptd) || !is_user_connected(ptd)) {
    return 
PLUGIN_CONTINUE;
}

entity_get_string(ptr,EV_SZ_classname,classname,31); // get name of touched

// if player is touching hegrenade and doesn't have one
if(equal(classname,"fake_hegrenade") && hasweapon(ptd,"weapon_hegrenade") == 0) {
    
give_item(ptd,"weapon_hegrenade");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

// if player is touching smokegrenade and doesn't have one
if(equal(classname,"fake_smokegrenade") && hasweapon(ptd,"weapon_smokegrenade") == 0) {
    
give_item(ptd,"weapon_smokegrenade");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

// if player is touching flashbang and has room for another
if(equal(classname,"fake_flashbang") && hasweapon(ptd,"weapon_flashbang") < 2) {
    
give_item(ptd,"weapon_flashbang");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

return 
PLUGIN_CONTINUE;
}

// client disconnection
public client_disconnect(id) {
clear_nades(id);
}

// function to check if player has a specific weapon.
// returns the amount of ammo for that weapon in backpack.
// we use this so we can check for multiple flashbangs as well
public hasweapon(id,weaponname[32]) {
if(
is_user_connected(id) == || get_user_team(id) > 2) {
    return 
0;
}

new 
weapons[32], num;
get_user_weapons(id,weapons,num); // get weapons

new foundweapon// if we found the weapon yet (and if we did how much ammo for it)

// loop through weapons
for(new i=0;i<num;i++) {
    new 
checkweaponname[32];
    
get_weaponname(weapons[i],checkweaponname,31);

    if(
equal(weaponname,checkweaponname)) { // compare names
    
new clipammo// clip and ammo
    
get_user_ammo(id,weapons[i],clip,ammo); // get clip and ammo
    
foundweapon ammo// return amount in clip (for multiple FBs)
    
break;
    }
}

return 
foundweapon;
}

// clear user's grenades
public clear_nades(id) {
new 
currnade;

// go through fake HE grenades
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_hegrenade")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}

// go through fake smoke grenades
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_smokegrenade")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}

// go through fake flashbangs
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_flashbang")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}
}

// plugin precache
public plugin_precache() {
precache_model("models/w_hegrenade.mdl");
precache_model("models/w_flashbang.mdl");
precache_model("models/w_smokegrenade.mdl");
precache_sound("weapons/he_bounce-1.wav");
}

// plugin initiation
public plugin_init() {
register_plugin("CSNadeDrops","0.14","Avalanche");
console_print(0,"* CSNadeDrops 0.14 by Avalanche");

register_event("Damage","event_damage","b","2!0"); // damage event
register_event("ResetHUD","event_resethud","b"); // reset HUD event

register_cvar("mp_nadedrops","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable plugin
register_cvar("mp_nadedropsounds","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable nade drop sounds

// get the mod's name
new modname[32];
get_modname(modname,31);

// if this isn't Counter-Strike
if(!equal(modname,"cstrike")) {
    
pause("ae"); // lock the plugin
}

Tell me if this works, and be sure that you change your flags here:
PHP Code:
#define FLAG_HERE "t" //change your flag here 
Sorry if this doesn't work, code is so messy, and I didn't have time to look at it, if it doesn't work I will get a closer look
__________________
Contact! || Discord:
Mr_Boopsy_#2066

Last edited by supertrio17; 06-27-2020 at 13:40.
supertrio17 is offline
jonny1990
Senior Member
Join Date: Apr 2020
Old 06-27-2020 , 11:21   Re: add a flag check
Reply With Quote #5

Quote:
Originally Posted by supertrio17 View Post
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>

#define FLAG_HERE "t" //change your flag here

#define VOL_LOW 0.5 // volume used to play nade bouncing sound
#define NADE_OFFSET 10 // distance (vaguely) between death origin and nade origin

// DeathMSG
public event_damage(id) {

// if player is still alive or plugin is disabled
if(get_user_health(id) > || get_cvar_num("mp_nadedrops") < || has_flag(idFLAG_HERE) {
    return 
PLUGIN_CONTINUE;
}

// if player had HE grenade
if(hasweapon(id,"weapon_hegrenade") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_hegrenade"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[0] += NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_hegrenade.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had smoke grenade
if(hasweapon(id,"weapon_smokegrenade") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_smokegrenade"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[0] -= NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_smokegrenade.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had at least one flashbang
if(hasweapon(id,"weapon_flashbang") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[1] += NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_flashbang.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had two flashbangs, drop another
if(hasweapon(id,"weapon_flashbang") > 1) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[1] -= NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_flashbang.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

return 
PLUGIN_CONTINUE;
}

// ResetHUD
public event_resethud(id) {
if(
is_user_connected(id) == && get_user_team(id) < 3) {
    
set_task(0.5,"checkalive",id); // delay, because client is technically dead on ResetHUD
}
}

// check if user is alive
public checkalive(id) {
if(
is_user_alive(id) == 1) { // if so
    
clear_nades(id); // clear nades (they just spawned)
}
}

// entity touching
public pfn_touch(ptr,ptd) {
if(!
is_valid_ent(ptd)) { // invalid toucher
    
return PLUGIN_CONTINUE;
}

new 
classname[32];
entity_get_string(ptd,EV_SZ_classname,classname,31); // get name of toucher

new bounced entity_get_int(ptd,EV_INT_iuser1); // bounced yet?

// check if one of our fake grenades is colliding with world and mp_nadedropsounds is positive
if((equal(classname,"fake_hegrenade") || equal(classname,"fake_flashbang") || equal(classname,"fake_smokegrenade")) && ptr == && bounced == && get_cvar_num("mp_nadedropsounds") > 0) {
    
emit_sound(ptd,CHAN_ITEM,"weapons/he_bounce-1.wav",VOL_LOW,ATTN_NORM,0,PITCH_LOW); // play sound
    
entity_set_int(ptd,EV_INT_iuser1,1); // has bounced
    
return PLUGIN_CONTINUE;
}

// now check for more invalid entities or players
if(!is_valid_ent(ptr) || !is_valid_ent(ptd) || !is_user_connected(ptd)) {
    return 
PLUGIN_CONTINUE;
}

entity_get_string(ptr,EV_SZ_classname,classname,31); // get name of touched

// if player is touching hegrenade and doesn't have one
if(equal(classname,"fake_hegrenade") && hasweapon(ptd,"weapon_hegrenade") == 0) {
    
give_item(ptd,"weapon_hegrenade");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

// if player is touching smokegrenade and doesn't have one
if(equal(classname,"fake_smokegrenade") && hasweapon(ptd,"weapon_smokegrenade") == 0) {
    
give_item(ptd,"weapon_smokegrenade");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

// if player is touching flashbang and has room for another
if(equal(classname,"fake_flashbang") && hasweapon(ptd,"weapon_flashbang") < 2) {
    
give_item(ptd,"weapon_flashbang");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

return 
PLUGIN_CONTINUE;
}

// client disconnection
public client_disconnect(id) {
clear_nades(id);
}

// function to check if player has a specific weapon.
// returns the amount of ammo for that weapon in backpack.
// we use this so we can check for multiple flashbangs as well
public hasweapon(id,weaponname[32]) {
if(
is_user_connected(id) == || get_user_team(id) > 2) {
    return 
0;
}

new 
weapons[32], num;
get_user_weapons(id,weapons,num); // get weapons

new foundweapon// if we found the weapon yet (and if we did how much ammo for it)

// loop through weapons
for(new i=0;i<num;i++) {
    new 
checkweaponname[32];
    
get_weaponname(weapons[i],checkweaponname,31);

    if(
equal(weaponname,checkweaponname)) { // compare names
    
new clipammo// clip and ammo
    
get_user_ammo(id,weapons[i],clip,ammo); // get clip and ammo
    
foundweapon ammo// return amount in clip (for multiple FBs)
    
break;
    }
}

return 
foundweapon;
}

// clear user's grenades
public clear_nades(id) {
new 
currnade;

// go through fake HE grenades
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_hegrenade")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}

// go through fake smoke grenades
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_smokegrenade")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}

// go through fake flashbangs
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_flashbang")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}
}

// plugin precache
public plugin_precache() {
precache_model("models/w_hegrenade.mdl");
precache_model("models/w_flashbang.mdl");
precache_model("models/w_smokegrenade.mdl");
precache_sound("weapons/he_bounce-1.wav");
}

// plugin initiation
public plugin_init() {
register_plugin("CSNadeDrops","0.14","Avalanche");
console_print(0,"* CSNadeDrops 0.14 by Avalanche");

register_event("Damage","event_damage","b","2!0"); // damage event
register_event("ResetHUD","event_resethud","b"); // reset HUD event

register_cvar("mp_nadedrops","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable plugin
register_cvar("mp_nadedropsounds","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable nade drop sounds

// get the mod's name
new modname[32];
get_modname(modname,31);

// if this isn't Counter-Strike
if(!equal(modname,"cstrike")) {
    
pause("ae"); // lock the plugin
}

Tell me if this works, and be sure that you change your flags here:
PHP Code:
#define FLAG_HERE "t" //change your flag here 
Sorry if this doesn't work, code is so messy, and I didn't have time to look at it, if it doesn't work I will get a closer look
the plugin is not compiled
jonny1990 is offline
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-27-2020 , 11:30   Re: add a flag check
Reply With Quote #6

PHP Code:
#include <amxmodx>
#include <engine>
#include <fun>
#include <amxmisc>

#define FLAG_HERE "t" //change your flag here

#define VOL_LOW 0.5 // volume used to play nade bouncing sound
#define NADE_OFFSET 10 // distance (vaguely) between death origin and nade origin

// DeathMSG
public event_damage(id) {

// if player is still alive or plugin is disabled
if(get_user_health(id) > || get_cvar_num("mp_nadedrops") < 1
{
    if(!
has_flag(idFLAG_HERE))
    {
        return 
PLUGIN_CONTINUE;
    }
}

// if player had HE grenade
if(hasweapon(id,"weapon_hegrenade") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_hegrenade"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[0] += NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_hegrenade.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had smoke grenade
if(hasweapon(id,"weapon_smokegrenade") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_smokegrenade"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[0] -= NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_smokegrenade.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had at least one flashbang
if(hasweapon(id,"weapon_flashbang") > 0) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[1] += NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_flashbang.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

// if player had two flashbangs, drop another
if(hasweapon(id,"weapon_flashbang") > 1) {
    new 
grenade create_entity("info_target"); // create grenade entity
    
entity_set_string(grenade,EV_SZ_classname,"fake_flashbang"); // change name
    
entity_set_int(grenade,EV_ENT_owner,id); // set owner
    
entity_set_int(grenade,EV_INT_iuser1,0); // hasn't bounced yet

    // set grenade entity's size
    
new Float:minbox[3] = { -2.5, -2.5, -2.5 }
    new 
Float:maxbox[3] = { 2.52.52.5 };
    
entity_set_vector(grenade,EV_VEC_mins,minbox);
    
entity_set_vector(grenade,EV_VEC_maxs,maxbox);

    
// set grenade's overall being of a whole
    
entity_set_int(grenade,EV_INT_solid,SOLID_TRIGGER);
    
entity_set_int(grenade,EV_INT_movetype,MOVETYPE_TOSS);

    
// set a random angle
    
new Float:angles[3] = { 0.00.00.0 };
    
angles[1] = float(random_num(0,180));
    
entity_set_vector(grenade,EV_VEC_angles,angles);

    
// get player's origin
    
new Float:origin[3];
    
entity_get_vector(id,EV_VEC_origin,origin);
    
origin[1] -= NADE_OFFSET// offset

    // set model and origin
    
entity_set_model(grenade,"models/w_flashbang.mdl");
    
entity_set_vector(grenade,EV_VEC_origin,origin);
}

return 
PLUGIN_CONTINUE;
}

// ResetHUD
public event_resethud(id) {
if(
is_user_connected(id) == && get_user_team(id) < 3) {
    
set_task(0.5,"checkalive",id); // delay, because client is technically dead on ResetHUD
}
}

// check if user is alive
public checkalive(id) {
if(
is_user_alive(id) == 1) { // if so
    
clear_nades(id); // clear nades (they just spawned)
}
}

// entity touching
public pfn_touch(ptr,ptd) {
if(!
is_valid_ent(ptd)) { // invalid toucher
    
return PLUGIN_CONTINUE;
}

new 
classname[32];
entity_get_string(ptd,EV_SZ_classname,classname,31); // get name of toucher

new bounced entity_get_int(ptd,EV_INT_iuser1); // bounced yet?

// check if one of our fake grenades is colliding with world and mp_nadedropsounds is positive
if((equal(classname,"fake_hegrenade") || equal(classname,"fake_flashbang") || equal(classname,"fake_smokegrenade")) && ptr == && bounced == && get_cvar_num("mp_nadedropsounds") > 0) {
    
emit_sound(ptd,CHAN_ITEM,"weapons/he_bounce-1.wav",VOL_LOW,ATTN_NORM,0,PITCH_LOW); // play sound
    
entity_set_int(ptd,EV_INT_iuser1,1); // has bounced
    
return PLUGIN_CONTINUE;
}

// now check for more invalid entities or players
if(!is_valid_ent(ptr) || !is_valid_ent(ptd) || !is_user_connected(ptd)) {
    return 
PLUGIN_CONTINUE;
}

entity_get_string(ptr,EV_SZ_classname,classname,31); // get name of touched

// if player is touching hegrenade and doesn't have one
if(equal(classname,"fake_hegrenade") && hasweapon(ptd,"weapon_hegrenade") == 0) {
    
give_item(ptd,"weapon_hegrenade");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

// if player is touching smokegrenade and doesn't have one
if(equal(classname,"fake_smokegrenade") && hasweapon(ptd,"weapon_smokegrenade") == 0) {
    
give_item(ptd,"weapon_smokegrenade");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

// if player is touching flashbang and has room for another
if(equal(classname,"fake_flashbang") && hasweapon(ptd,"weapon_flashbang") < 2) {
    
give_item(ptd,"weapon_flashbang");
    
remove_entity(ptr);
    return 
PLUGIN_CONTINUE;
}

return 
PLUGIN_CONTINUE;
}

// client disconnection
public client_disconnect(id) {
clear_nades(id);
}

// function to check if player has a specific weapon.
// returns the amount of ammo for that weapon in backpack.
// we use this so we can check for multiple flashbangs as well
public hasweapon(id,weaponname[32]) {
if(
is_user_connected(id) == || get_user_team(id) > 2) {
    return 
0;
}

new 
weapons[32], num;
get_user_weapons(id,weapons,num); // get weapons

new foundweapon// if we found the weapon yet (and if we did how much ammo for it)

// loop through weapons
for(new i=0;i<num;i++) {
    new 
checkweaponname[32];
    
get_weaponname(weapons[i],checkweaponname,31);

    if(
equal(weaponname,checkweaponname)) { // compare names
    
new clipammo// clip and ammo
    
get_user_ammo(id,weapons[i],clip,ammo); // get clip and ammo
    
foundweapon ammo// return amount in clip (for multiple FBs)
    
break;
    }
}

return 
foundweapon;
}

// clear user's grenades
public clear_nades(id) {
new 
currnade;

// go through fake HE grenades
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_hegrenade")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}

// go through fake smoke grenades
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_smokegrenade")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}

// go through fake flashbangs
currnade = -1;
while((
currnade find_ent_by_class(currnade,"fake_flashbang")) > 0) {
    if(
entity_get_int(currnade,EV_ENT_owner) == id) {
    
remove_entity(currnade);
    }
}
}

// plugin precache
public plugin_precache() {
precache_model("models/w_hegrenade.mdl");
precache_model("models/w_flashbang.mdl");
precache_model("models/w_smokegrenade.mdl");
precache_sound("weapons/he_bounce-1.wav");
}

// plugin initiation
public plugin_init() {
register_plugin("CSNadeDrops","0.14","Avalanche");
console_print(0,"* CSNadeDrops 0.14 by Avalanche");

register_event("Damage","event_damage","b","2!0"); // damage event
register_event("ResetHUD","event_resethud","b"); // reset HUD event

register_cvar("mp_nadedrops","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable plugin
register_cvar("mp_nadedropsounds","1",FCVAR_PRINTABLEONLY); // cvar to disable/enable nade drop sounds

// get the mod's name
new modname[32];
get_modname(modname,31);

// if this isn't Counter-Strike
if(!equal(modname,"cstrike")) {
    
pause("ae"); // lock the plugin
}

Try it now, I compiled it
__________________
Contact! || Discord:
Mr_Boopsy_#2066

Last edited by supertrio17; 06-27-2020 at 11:45. Reason: .
supertrio17 is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 06-27-2020 , 11:43   Re: add a flag check
Reply With Quote #7

This code says:
If player has greater than 0 health OR the plugin is disabled then check if the player has the flag, if so, return PLUGIN_CONTINUE.
PHP Code:
// if player is still alive or plugin is disabled
if(get_user_health(id) > || get_cvar_num("mp_nadedrops") < 1
{
    if(
has_flag(idFLAG_HERE))
    {
        return 
PLUGIN_CONTINUE;
    }

__________________

Last edited by Bugsy; 06-27-2020 at 11:53.
Bugsy is offline
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-27-2020 , 11:44   Re: add a flag check
Reply With Quote #8

Uf, now I see it, but why PLUGIN_CONTINUE than?

Edit: This is good now?
PHP Code:
    if(!has_flag(idFLAG_HERE))
    {
        return 
PLUGIN_CONTINUE;
    } 
__________________
Contact! || Discord:
Mr_Boopsy_#2066

Last edited by supertrio17; 06-27-2020 at 11:45.
supertrio17 is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 06-27-2020 , 11:54   Re: add a flag check
Reply With Quote #9

Do this:
PHP Code:
if ( get_user_health(id) > || get_cvar_num("mp_nadedrops") < || !has_flag(idFLAG_HERE) ) 
{
     return 
PLUGIN_CONTINUE;  

__________________
Bugsy is offline
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-27-2020 , 11:58   Re: add a flag check
Reply With Quote #10

One more thing I don't understand @Bugsy, I think || represents "or", so why using or? I think it's logical to use && right?
__________________
Contact! || Discord:
Mr_Boopsy_#2066
supertrio17 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:02.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode