CODE
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "Weapon + BlockBuyZone"
#define VERSION "1.0"
#define AUTHOR "SGamer"
#define CVAR_NAME "bz_range"
#define CVAR_DEF "0"
#define OFFSET_32BIT 235
#define OFFSET_64BIT 268
#define OFFSET_LINUX_DIFF 5
#define BIT_BUYZONE (1<<0)
#if !defined PROCESSOR_TYPE
#if cellbits == 32
#define OFFSET OFFSET_32BIT
#else
#define OFFSET OFFSET_64BIT
#endif
#else
#if PROCESSOR_TYPE == 0
#define OFFSET OFFSET_32BIT
#else
#define OFFSET OFFSET_64BIT
#endif
#endif
#define CS_GET_USER_MAPZONES(%1) get_pdata_int(%1, OFFSET, OFFSET_LINUX_DIFF)
#define CS_SET_USER_MAPZONES(%1,%2) set_pdata_int(%1, OFFSET, %2, OFFSET_LINUX_DIFF)
new Float:g_buyzone_min[3] = {-8192.0, -8192.0, -8192.0}
new Float:g_buyzone_max[3] = {-8191.0, -8191.0, -8191.0}
new g_buyzone
new g_pcvar
new bool:g_enabled
new g_bit
new bool:g_new_round
new g_maxplayers
#define MAX_PLAYERS 32
new bool:g_alive[MAX_PLAYERS + 1]
new g_msgid_icon
new g_icon_name[] = "buyzone"
#define ICON_R 0
#define ICON_G 160
#define ICON_B 0
new menu_t
new menu_ct
public go_menu(id)
{
if(cs_get_user_team(id) == CS_TEAM_T)
menu_display(id,menu_t)
else if(cs_get_user_team(id) == CS_TEAM_CT)
menu_display(id,menu_ct)
}
public plugin_init()
{
g_pcvar = register_cvar(CVAR_NAME, CVAR_DEF)
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("player_menu","go_menu");
RegisterHam(Ham_Spawn, "player", "runda", 1);
register_clcmd("buy", "menu_block")
register_clcmd("buyequip", "menu_block")
register_clcmd("fullupdate", "clcmd_fullupdate")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
register_event("ResetHUD", "event_player_alive", "be")
register_event("Health", "event_player_dead", "bd", "1=0")
register_forward(FM_PlayerPostThink, "forward_player_postthink")
g_msgid_icon = get_user_msgid("StatusIcon")
register_message(g_msgid_icon, "message_status_icon")
g_maxplayers = get_maxplayers()
g_buyzone = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_buyzone"))
dllfunc(DLLFunc_Spawn, g_buyzone)
engfunc(EngFunc_SetSize, g_buyzone, g_buyzone_min, g_buyzone_max)
update_state_vars()
}
public runda(id){
set_task(1.7, "menu", id)
}
public menu(id)
{
menu_t = menu_create("\yS\rG\yamer.ru","func_menu_t");
menu_additem( menu_t,"\rAK47+Deagle", "1", 0)
menu_additem( menu_t,"\rM4A1+Deagle", "2", 0)
menu_additem( menu_t,"\rAWP+Deagle", "3", 0)
menu_additem( menu_t,"\yFAMAS+Deagle", "4", 0)
menu_additem( menu_t,"\yGALIL+Deagle", "5", 0)
menu_additem( menu_t,"\wDeagle", "6", 0)
menu_additem( menu_t,"\wUsp", "7", 0)
menu_ct = menu_create("\yS\rG\yamer.ru","func_menu_ct");
menu_additem( menu_ct,"\rAK47+Deagle", "1", 0)
menu_additem( menu_ct,"\rM4A1+Deagle", "2", 0)
menu_additem( menu_ct,"\rAWP+Deagle", "3", 0)
menu_additem( menu_ct,"\yFAMAS+Deagle", "4", 0)
menu_additem( menu_ct,"\yGALIL+Deagle", "5", 0)
menu_additem( menu_ct,"\wDeagle", "6", 0)
menu_additem( menu_ct,"\wUsp", "7", 0)
}
public func_menu_t(id, menu_t, key)
{
key++
new name[32]
get_user_name(id, name, sizeof name -1)
if(key==1)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_762nato")
give_item(id, "ammo_762nato")
give_item(id, "ammo_762nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==2)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==3)
{
give_item(id, "weapon_awp")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_338magnum")
give_item(id, "ammo_338magnum")
give_item(id, "ammo_338magnum")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==4)
{
give_item(id, "weapon_famas")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==5)
{
give_item(id, "weapon_galil")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==6)
{
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==7)
{
give_item(id, "weapon_usp")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
}
public func_menu_ct(id, menu_ct, key)
{
key++
new name[32]
get_user_name(id, name, sizeof name -1)
if(key==1)
{
give_item(id, "weapon_ak47")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_762nato")
give_item(id, "ammo_762nato")
give_item(id, "ammo_762nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==2)
{
give_item(id, "weapon_m4a1")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==3)
{
give_item(id, "weapon_awp")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_338magnum")
give_item(id, "ammo_338magnum")
give_item(id, "ammo_338magnum")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==4)
{
give_item(id, "weapon_famas")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==5)
{
give_item(id, "weapon_galil")
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "ammo_556nato")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==6)
{
give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
if(key==7)
{
give_item(id, "weapon_usp")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "ammo_9mm")
give_item(id, "item_thighpack")
give_item(id, "item_assaultsuit")
give_item(id, "item_kevlar")
}
}
public forward_player_postthink(id) {
if (g_alive[id] && g_enabled) {
switch (g_bit) {
case BIT_BUYZONE: dllfunc(DLLFunc_Touch, g_buyzone, id)
default: CS_SET_USER_MAPZONES(id, CS_GET_USER_MAPZONES(id) & ~BIT_BUYZONE)
}
}
}
public event_new_round() {
g_new_round = true
set_task(0.1, "task_unset_var")
update_state_vars()
}
public task_unset_var() {
g_new_round = false
}
public event_player_alive(id) {
g_alive[id] = true
if (g_new_round) {
if (g_enabled)
draw_buyzone_icon(id, g_bit)
}
else {
update_state_vars()
if (g_enabled) {
for (new i = 1; i <= g_maxplayers; ++i) {
if (g_alive[i])
draw_buyzone_icon(i, g_bit)
}
}
}
}
public event_player_dead(id) {
g_alive[id] = false
}
public client_disconnect(id) {
g_alive[id] = false
}
public message_status_icon(msg_id, msg_dest, id) {
if (!g_alive[id] || !g_enabled)
return PLUGIN_CONTINUE
new icon[8]
get_msg_arg_string(2, icon, 7)
if (equal(icon, g_icon_name))
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public menu_block(id) {
if (g_alive[id] && g_enabled && !g_bit)
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public clcmd_fullupdate() {
return PLUGIN_HANDLED
}
update_state_vars() {
new cvar_value = get_pcvar_num(g_pcvar)
g_enabled = true
switch (cvar_value) {
case 0: g_bit = 0
case 1: g_enabled = false
default: g_bit = BIT_BUYZONE
}
}
draw_buyzone_icon(id, draw) {
message_begin(MSG_ONE, g_msgid_icon, _, id)
write_byte(draw)
write_string(g_icon_name)
if (draw) {
write_byte(ICON_R)
write_byte(ICON_G)
write_byte(ICON_B)
}
message_end()
}