- plugin | Afiseaza codul
/****************************************************\ |*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)) { //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) } 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) } 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 } */
Eroare :
Code: Select all
L 09/06/2022 - 10:01:59: Function is not present (function "award_notice") (plugin "award_nades.amxx")
L 09/06/2022 - 10:01:59: [AMXX] Displaying debug trace (plugin "award_nades.amxx", version "1.5")
L 09/06/2022 - 10:01:59: [AMXX] Run time error 10: native error (native "set_task")
L 09/06/2022 - 10:01:59: [AMXX] [0] award_nades.sma::client_connect (line 124)
L 09/06/2022 - 10:01:59: Function is not present (function "award_notice") (plugin "award_nades.amxx")
L 09/06/2022 - 10:01:59: [AMXX] Displaying debug trace (plugin "award_nades.amxx", version "1.5")
L 09/06/2022 - 10:01:59: [AMXX] Run time error 10: native error (native "set_task")
L 09/06/2022 - 10:01:59: [AMXX] [0] award_nades.sma::client_connect (line 124)