Код за потвърждение: Избери целия код
/****************************************************\
|*Award Grenades: Reloaded *|
|*Created By: Sam Tsuki(Aka Sam X HearTLesS) *|
|* *|
|* Have Fun, *|
|* Sam Tsuki *|
\****************************************************/
/*
Description:
When you kill a person you'll be awarded with Grenades.
CVARs:
award_nades 1 //Enables the plugin
award_he 1 //How many HE Grenades a player should be awarded when killing another player?
award_fb 1 //How many Flash Bangs a player should be awarded when killing another player?
award_sg 1 //How many Smoke Grenades a player should be awarded when killing another player?
he_max 3 //What's the maximum number of HEs a player can be awarded with?
fb_max 5 //What's the maximum number of FBs a player can be awarded with?
sg_max 4 //What's the maximum number of SGs a player can be awarded with?
award_team Any //Which team should be awarded? (Any, CT, T)
award_headshot 0 //Is a Head Shot needed ot get awarded?
award_weapon any //What weapon is needed to get awarded? (knife, usp, glock18, etc.)
CMDs:
say /awardcmds //Shows Award Grenades: Reloaded Commands
say /awardmenu //Shows a menu to know the awards and conditions
award_nades_toggle <0|1> //ADMIN_LEVEL_D, Enables or disables the plugin
award_nades_awards <he><fb><sg> //ADMIN_LEVEL_D, Changes the the awarded Grenades
give_nade <name> <nade> <amount> //ADMIN_LEVEL_D, Gives a Grenade to a player
//Leave <nade> empty to give all Grenades, 'he' to give HEs, 'fb' to give Flash Bangs, 'sg' to give smoke grenades
award_team_toggle <Any|CT|T> //ADMIN_LEVEL_D, Changes which team should be awarded? *case sensetive*
award_hs_toggle <0|1> //ADMIN_LEVEL_D, Changes if a head shot is needed to get awarded
award_wpn_toggle <any|weapon name> //ADMIN_LEVEL_D, Changes if a weapon is needed to get awarded (knife, usp, glock18, etc.)
award_valid_weapons //ADMIN_LEVEL_D, Shows valid weapons
award_valid_weapons2 //ADMIN_LEVEL_D, Shows the rest of the valid weapons
*/
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <csx>
#include <cstrike>
// PCVARs
new award_nades, award_he, award_fb, award_sg, he_max, fb_max, sg_max, award_team, award_headshot, award_weapon
new NADE_PICKUP_SOUND[] = "items/9mmclip1.wav"
//--------------------------------------------------------------------------------------------------
static valid_weapons[][] =
{
"p228",
"scout",
"hegrenade",
"xm1014",
"mac10",
"aug",
"elite",
"fiveseven",
"ump45",
"sg551",
"galil",
"famas",
"usp",
"glock18",
"awp",
"mp5navy",
"m249",
"m3",
"m4a1",
"tmp",
"g3sg1",
"deagle",
"sg552",
"ak47",
"knife",
"p90"
}
//--------------------------------------------------------------------------------------------------
public plugin_init()
{
// Plugin Info
register_plugin("Award Grenades: Reloaded","1.5","Sam Tsuki")
//CVARs
award_nades = register_cvar("award_nades", "1")
award_he = register_cvar("award_he", "1")
award_fb = register_cvar("award_fb", "1")
award_sg = register_cvar("award_sg", "1")
he_max = register_cvar("he_max", "3")
fb_max = register_cvar("fb_max", "5")
sg_max = register_cvar("sg_max", "4")
award_team = register_cvar("award_team", "Any")
award_headshot = register_cvar("award_headshot", "0")
award_weapon = register_cvar("award_weapon", "any")
//Client CMDs
register_clcmd("say /awardmenu", "show_awardmenu")
register_clcmd("say /awardcmds", "show_awardcmds")
register_clcmd("say_team /awardmenu", "show_awardmenu")
register_clcmd("say_team /awardcmds", "show_awardcmds")
register_menucmd(register_menuid("Award Grenades Menu"),1023,"action_menu")
//Admin CMDs
register_concmd("award_nades_toggle", "award_nades_toggle", ADMIN_LEVEL_D, "<0|1> Enables or disables the plugin")
register_concmd("award_nades_awards", "award_nades_awards", ADMIN_LEVEL_D, "<he><fb><sg> Changes the the awarded Grenades")
register_concmd("give_nade", "give_nade", ADMIN_LEVEL_D, "<name> <nade he,fb,sg> <amount> Gives nades to the taregt")
register_concmd("award_team_toggle", "award_team_toggle", ADMIN_LEVEL_D, "<Any|CT|T> Changes which team can be awarded")
register_concmd("award_hs_toggle", "award_hs_toggle", ADMIN_LEVEL_D, "<0|1> Changes if a head shot is needed to get awarded")
register_concmd("award_wpn_toggle", "award_wpn_toggle", ADMIN_LEVEL_D, "<any|weapon name> Changes if a weapon is needed to get awarded (knife, usp, glock18, etc.)")
register_concmd("award_valid_weapons", "award_valid_weapons", ADMIN_LEVEL_D, "Shows valid weapons")
register_concmd("award_valid_weapons2", "award_valid_weapons2", ADMIN_LEVEL_D, "Shows the rest of the valid weapons")
}
//--------------------------------------------------------------------------------------------------
public plugin_precache()
{
precache_sound(NADE_PICKUP_SOUND)
}
//--------------------------------------------------------------------------------------------------
public client_connect(id)
{
set_task(30.0, "award_notice", id)
}
//--------------------------------------------------------------------------------------------------
public award_notice(id)
{
//Check if Award Grenades is enabled
if(!get_pcvar_num(award_nades)) return
client_print(id, print_chat, "[AG:R] This server is using Award Grenades: Reloaded! Say '/awardcmds' for more info.")
}
//--------------------------------------------------------------------------------------------------
public client_death(attacker, victim, wpnindex, hitplace)
{
//Check if Award Grenades is enabled
if(!get_pcvar_num(award_nades)) return PLUGIN_HANDLED
//Check award_team
new team[21]
get_pcvar_string(award_team, team, 20)
if(equali(team, "CT")) {
if(cs_get_user_team(attacker) != CS_TEAM_CT)
return PLUGIN_HANDLED
}
else if(equali(team, "T")) {
if(cs_get_user_team(attacker) != CS_TEAM_T)
return PLUGIN_HANDLED
}
//Check if Head Shot is needed
if(get_pcvar_num(award_headshot) && hitplace != 1) return PLUGIN_HANDLED
//Check if a weapon is needed
new weapon[32], weapon_name[32]
get_pcvar_string(award_weapon, weapon, 31)
if(!equal(weapon, "any")) {
new name[32]
get_weaponname(wpnindex, name, 31)
formatex(weapon_name, 31, "weapon_%s", weapon)
if(!equal(weapon_name, name)) return PLUGIN_HANDLED
}
//If the Victem is the Killer
if(attacker == victim) return PLUGIN_HANDLED
//Give Grenades
new ammo = cs_get_user_bpammo(attacker , CSW_HEGRENADE)
if(get_pcvar_num(award_he) > 0 && ammo < get_pcvar_num(he_max)) {
if(ammo == 0) {
give_item(attacker, "weapon_hegrenade")
give_grenade(attacker, CSW_HEGRENADE, get_pcvar_num(award_he) - 1)
}
else
give_grenade(attacker, CSW_HEGRENADE, get_pcvar_num(award_he))
}
ammo = cs_get_user_bpammo(attacker , CSW_FLASHBANG)
if(get_pcvar_num(award_fb) > 0 && ammo < get_pcvar_num(fb_max)) {
if(ammo == 0) {
give_item(attacker, "weapon_flashbang")
give_grenade(attacker, CSW_FLASHBANG, get_pcvar_num(award_fb) - 1)
}
else
give_grenade(attacker, CSW_FLASHBANG, get_pcvar_num(award_fb))
}
ammo = cs_get_user_bpammo(attacker , CSW_SMOKEGRENADE)
if(get_pcvar_num(award_sg) > 0 && ammo < get_pcvar_num(sg_max)) {
if(ammo == 0) {
give_item(attacker, "weapon_smokegrenade")
give_grenade(attacker, CSW_SMOKEGRENADE, get_pcvar_num(award_sg) - 1)
}
else
give_grenade(attacker, CSW_SMOKEGRENADE, get_pcvar_num(award_sg))
}
//Send a message
new name[31]
get_user_name(victim, name, 30)
client_print(attacker, print_chat, "[AG:R] You've been awarded with Grenades for killing '%s'.", name)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public show_awardcmds(id)
{
new buffer[2048]
new len = format( buffer, 2047, "<body bgcolor=#000000><font color=#FFB000>" )
len += format( buffer[len], 2047-len, "<table cellspacing=10 rules=all border=0 frame=border>" )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000><B> Command <td><font color=#FFB000><B> Description " )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> say /awardmenu <td><font color=#FFB000> Shows a menu to know the awards and conditions." )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> con award_nades_toggle <td><font color=#FFB000> ADMIN_LEVEL_D, Enables or disables the plugin." )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> con give_nade <td><font color=#FFB000> ADMIN_LEVEL_D, Gives nades for the taregt. " )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> con award_team_toggle <td><font color=#FFB000> ADMIN_LEVEL_D, Changes which team can be awarded." )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> con award_hs_toggle <td><font color=#FFB000> ADMIN_LEVEL_D, Changes if a head shot is needed to get awarded." )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> con award_wpn_toggle <td><font color=#FFB000> ADMIN_LEVEL_D, Changes if a weapon is needed to get awarded (knife, usp, glock18, etc.)." )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> con award_valid_weapons <td><font color=#FFB000> ADMIN_LEVEL_D, Shows valid weapons." )
len += format( buffer[len], 2047-len, "<tr><td><font color=#FFB000> con award_valid_weapons2 <td><font color=#FFB000> ADMIN_LEVEL_D, Shows the rest of the valid weapons." )
len += format( buffer[len], 2047-len, "</table>" )
show_motd( id, buffer, "Award Grenades: Reloaded Help" )
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public show_awardmenu(id)
{
//Check if Award Grenades is enabled
if(!get_pcvar_num(award_nades)) {
client_print(id, print_chat, "[AG:R] Award Grenades is disabled!")
return PLUGIN_HANDLED
}
new menu_body[320]
new n = 0
new len = 319
n += format( menu_body[n],len-n,"\yAward Grenades Menu:^n^n\w")
n += format( menu_body[n],len-n,"1. Awards^n")
n += format( menu_body[n],len-n,"2. Conditions^n")
n += format( menu_body[n],len-n,"\y^n0. Exit")
new keys = (1<<0)|(1<<1)|(1<<9)
show_menu(id,keys,menu_body)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public action_menu(id, key)
{
key++
switch(key) {
case 1: show_awards(id)
case 2: show_conditions(id)
case 10: return PLUGIN_HANDLED
default: show_awardmenu(id)
}
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public show_awards(id)
{
new menu_body[320]
new n = 0
new len = 319
n += format( menu_body[n],len-n,"\yAwards:^n^n\w")
n += format( menu_body[n],len-n,"HE Greandes: %d MAX: %d^n", get_pcvar_num(award_he), get_pcvar_num(he_max))
n += format( menu_body[n],len-n,"Flash Bangs: %d MAX: %d^n", get_pcvar_num(award_fb), get_pcvar_num(fb_max))
n += format( menu_body[n],len-n,"Smoke Grenades: %d MAX: %d^n", get_pcvar_num(award_sg), get_pcvar_num(sg_max))
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)
show_menu(id,keys,menu_body)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public show_conditions(id)
{
new menu_body[320]
new n = 0
new len = 319
new team[21], weapon[21]
get_pcvar_string(award_team, team, 20)
get_pcvar_string(award_weapon, weapon, 20)
n += format( menu_body[n],len-n,"\yConidtions:^n^n\w")
n += format( menu_body[n],len-n,"Team: %s^n", team)
if(!get_pcvar_num(award_headshot))
n += format( menu_body[n],len-n,"Head Shot: No^n")
else
n += format( menu_body[n],len-n,"Head Shot: Yes^n")
n += format( menu_body[n],len-n,"Weapon: %s^n", weapon)
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)
show_menu(id,keys,menu_body)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public award_nades_toggle(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
//Check arguments
new arg[21]
read_argv(1, arg, 20)
if(str_to_num(arg) != 0 && str_to_num(arg) != 1) {
console_print(id, "[AG:R] Invalid value!")
return PLUGIN_HANDLED
}
//Toggle Award Grenades
set_pcvar_num(award_nades, str_to_num(arg))
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public award_nades_awards(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 4))
return PLUGIN_HANDLED
//Check arguments
new arg1[21], arg2[21], arg3[21]
read_argv(1, arg1, 20)
read_argv(2, arg2, 20)
read_argv(3, arg3, 20)
if(str_to_num(arg1) < 0) {
console_print(id, "[AG:R] Invalid value (arg1)!")
return PLUGIN_HANDLED
}
if(str_to_num(arg2) < 0) {
console_print(id, "[AG:R] Invalid value (arg2)!")
return PLUGIN_HANDLED
}
if(str_to_num(arg3) < 0) {
console_print(id, "[AG:R] Invalid value (arg3)!")
return PLUGIN_HANDLED
}
//Change Awarded Grenades
set_pcvar_num(award_he, str_to_num(arg1))
set_pcvar_num(award_fb, str_to_num(arg2))
set_pcvar_num(award_sg, str_to_num(arg3))
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public give_nade(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
//Check if Award Grenades is enabled
if(!get_pcvar_num(award_nades)) return PLUGIN_HANDLED
//Check arguments
new arg1[32], arg2[21], arg3[21]
read_argv(1, arg1, 31)
read_argv(2, arg2, 20)
read_argv(3, arg3, 20)
//Check player names
new name[32], player
player = cmd_target(id, name, 3)
if(!player) return PLUGIN_HANDLED
//Give Grenades
new ammo
new admin_name[32]
get_user_name(id, admin_name, 31)
if(equal(arg2, "he")) {
ammo = cs_get_user_bpammo(player , CSW_HEGRENADE)
if(ammo < get_pcvar_num(he_max)) {
if(ammo == 0) {
give_item(player, "weapon_hegrenade")
give_grenade(player, CSW_HEGRENADE, str_to_num(arg3) - 1)
}
else
give_grenade(player, CSW_HEGRENADE, str_to_num(arg3))
}
client_print(player, print_chat, "[AG:R] ADMIN:'%s' gave you '%d' HE Grenades.", admin_name, str_to_num(arg3))
console_print(id, "[AG:R] You gave '%s' '%d' HE Grenades.", name, str_to_num(arg3))
return PLUGIN_HANDLED
}
else if(equal(arg2, "fb")) {
ammo = cs_get_user_bpammo(player , CSW_FLASHBANG)
if(ammo < get_pcvar_num(fb_max)) {
if(ammo == 0) {
give_item(player, "weapon_flashbang")
give_grenade(player, CSW_FLASHBANG, str_to_num(arg3) - 1)
}
else
give_grenade(player, CSW_FLASHBANG, str_to_num(arg3))
}
client_print(player, print_chat, "[AG:R] ADMIN:'%s' gave you '%d' Flash Bangs.", admin_name, str_to_num(arg3))
console_print(id, "[AG:R] You gave '%s' '%d' Flash Bangs.", name, str_to_num(arg3))
return PLUGIN_HANDLED
}
else if(equal(arg2, "sg")) {
ammo = cs_get_user_bpammo(player , CSW_SMOKEGRENADE)
if(ammo < get_pcvar_num(sg_max)) {
if(ammo == 0) {
give_item(player, "weapon_smokegrenade")
give_grenade(player, CSW_SMOKEGRENADE, str_to_num(arg3) - 1)
}
else
give_grenade(player, CSW_SMOKEGRENADE, str_to_num(arg3))
}
client_print(player, print_chat, "[AG:R] ADMIN:'%s' gave you '%d' Smoke Grenades.", admin_name, str_to_num(arg3))
console_print(id, "[AG:R] You gave '%s' '%d' Smoke Grenades.", name, str_to_num(arg3))
return PLUGIN_HANDLED
}
else {
ammo = cs_get_user_bpammo(player , CSW_HEGRENADE)
if(ammo == 0) {
give_item(player, "weapon_hegrenade")
give_grenade(player, CSW_HEGRENADE, get_pcvar_num(he_max) - ammo - 1)
}
else
give_grenade(player, CSW_HEGRENADE, get_pcvar_num(he_max) - ammo)
ammo = cs_get_user_bpammo(player , CSW_FLASHBANG)
if(ammo == 0) {
give_item(player, "weapon_flashbang")
give_grenade(player, CSW_FLASHBANG, get_pcvar_num(fb_max) - ammo - 1)
}
else
give_grenade(player, CSW_FLASHBANG, get_pcvar_num(fb_max) - ammo)
ammo = cs_get_user_bpammo(player , CSW_SMOKEGRENADE)
if(ammo == 0) {
give_item(player, "weapon_smokegrenade")
give_grenade(player, CSW_SMOKEGRENADE, get_pcvar_num(sg_max) - ammo - 1)
}
else
give_grenade(player, CSW_SMOKEGRENADE, get_pcvar_num(sg_max) - ammo)
client_print(player, print_chat, "[AG:R] ADMIN:'%s' gave you ALL Grenades.", admin_name)
console_print(id, "[AG:R] You gave '%s' ALL Grenades.", name)
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public award_team_toggle(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
//Check argument
new arg[21]
read_argv(1, arg, 20)
if(!equali(arg, "Any") && !equali(arg, "CT") && !equali(arg, "T")) {
console_print(id, "[AG:R] Invalid value!")
return PLUGIN_HANDLED
}
//Change award_team
set_pcvar_string(award_team, arg)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public award_hs_toggle(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
//Check argument
new arg[21]
read_argv(1, arg, 20)
if(str_to_num(arg) != 0 && str_to_num(arg) != 1) {
console_print(id, "[AG:R] Invalid value!")
return PLUGIN_HANDLED
}
//Change award_headshot
set_pcvar_num(award_headshot, str_to_num(arg))
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public award_wpn_toggle(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
//Check argument
new arg[21]
read_argv(1, arg, 20)
if(!equal(arg, "any")) {
for(new i = 0; i < sizeof valid_weapons; i++) {
if(equal(arg, valid_weapons[i])) {
//Change award_weapon
set_pcvar_string(award_weapon, arg)
return PLUGIN_HANDLED
}
}
console_print(id, "[AG:R] Invalid value!")
return PLUGIN_HANDLED
}
else
set_pcvar_string(award_weapon, arg)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public award_valid_weapons(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
//Show weapon names
new body[1000]
new n = 0
new len = 999
for(new i = 0; i < 14; i++) {
n += format( body[n],len-n,"%s, ", valid_weapons[i])
}
console_print(id, "[AG:R] Valid Weapons are: %s", body)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public award_valid_weapons2(id, level, cid)
{
//Check access
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
//Show weapon names
new body[1000]
new n = 0
new len = 999
for(new i = 14; i < sizeof valid_weapons; i++) {
n += format( body[n],len-n,"%s, ", valid_weapons[i])
}
console_print(id, "[AG:R] Valid Weapons are: %s", body)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------------
public give_grenade(id , grenade, amount)
{
new ammo = cs_get_user_bpammo(id , grenade)
cs_set_user_bpammo(id , grenade , ammo + amount)
emit_sound(id, CHAN_WEAPON , NADE_PICKUP_SOUND , 1.0 , ATTN_NORM , 0 , PITCH_NORM)
}
//--------------------------------------------------------------------------------------------------
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1025\\ f0\\ fs16 \n\\ par }
*/