Re: weapon don't change
can you add here?
PHP Code:
#include < amxmodx > #include < amxmisc > #include < hamsandwich > #include < fun > #include < cstrike > #include <fakemeta_util> #define ADMIN ADMIN_RCON #define SILVER ADMIN_LEVEL_G #define GOLDEN ADMIN_LEVEL_H #define SetUserAdmin(%0) ( gBitAdmin |= ( 1 << ( %0 & 31 ) ) ) #define ClearUserAdmin(%0) ( gBitAdmin &= ( ~( 1 << ( %0 & 31 ) ) ) ) #define IsAdmin(%0) ( gBitAdmin & ( 1 << ( %0 & 31 ) ) ) enum ChatColor { CHATCOLOR_NORMAL = 1, CHATCOLOR_GREEN, CHATCOLOR_TEAM_COLOR, CHATCOLOR_GREY, CHATCOLOR_RED, CHATCOLOR_BLUE, } new bool:g_bBuyBlocked new gBlocked; new gBitAdmin; new uflags[33]; public client_putinserver(id){ if(get_user_flags(id)&ADMIN) uflags[id] = ADMIN else if(get_user_flags(id)&GOLDEN) uflags[id] = GOLDEN else if(get_user_flags(id)&SILVER) uflags[id] = SILVER else uflags[id] = 0 } public plugin_init( ) { register_event( "CurWeapon", "eCurWeapon", "be", "1=1", "2!29" ); register_event( "HLTV", "eNewRound", "a", "1=0", "2=0" ); register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0"); register_concmd("amx_knife", "ConCmd_BlockBuy", ADMIN_MAP); register_clcmd( "amx_knife", "ClientCommand_Knife",ADMIN|SILVER|GOLDEN, "- start knife round" ); } public ClientCommand_Knife( id, level, cid ) { if( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED; if( gBlocked ) return PLUGIN_HANDLED; gBlocked = true; new szName[32],level[10]; get_user_name( id, szName, 31 ); get_level_by_flag(id,level); colorChat(0,CHATCOLOR_NORMAL,"$g[$tSoloGunner$g]$n SoloGunner activated by $g%s$n $g[$t%s$g]",szName,level) return PLUGIN_HANDLED } public eCurWeapon( id ) { if( gBlocked ) { if(!IsAdmin(id)) { engclient_cmd( id, "weapon_usp" ); } else { if( read_data( 2 ) != CSW_USP ) { engclient_cmd( id, "weapon_knife" ); } } } } public ConCmd_BlockBuy(id, lvl, cid) { if( cmd_access(id, lvl, cid, 0) ) { engclient_cmd( id, "weapon_usp" ); fm_give_item( id,"weapon_usp" ); cs_set_user_bpammo(id,CSW_USP,12); } { g_bBuyBlocked = true } return PLUGIN_HANDLED }
public Event_HLTV_New_Round() { if( g_bBuyBlocked ) { g_bBuyBlocked = false } }
public client_buy(id, item) { if( g_bBuyBlocked ) { client_print(id, print_chat, "*** Buy is restricted for this round") return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public eNewRound( ) { gBlocked = false; } get_level_by_flag(id,level[]){ switch(uflags[id]){ case ADMIN: copy(level,9,"ADMIN") case SILVER: copy(level,9,"SILVER") case GOLDEN: copy(level,9,"GOLDEN") } } colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...) { new team, index, MSG_Type new bool:teamChanged = false static message[192] switch(color) { case CHATCOLOR_NORMAL: // Normal { message[0] = 0x01; } case CHATCOLOR_GREEN: // Green { message[0] = 0x04; } default: // Grey, Red, Blue { message[0] = 0x03; } } vformat(message[1], 190, msg, 4); replace_all(message, 190, "$g", "^x04") replace_all(message, 190, "$n", "^x01") replace_all(message, 190, "$t", "^x03") if(id == 0) { index = findAnyPlayer() MSG_Type = MSG_ALL; } else { index = id; MSG_Type = MSG_ONE; } if(index != 0) { team = get_user_team(index); if(color == CHATCOLOR_RED && team != 1) { messageTeamInfo(index, MSG_Type, "TERRORIST") teamChanged = true } else if(color == CHATCOLOR_BLUE && team != 2) { messageTeamInfo(index, MSG_Type, "CT") teamChanged = true } else if(color == CHATCOLOR_GREY && team != 0) { messageTeamInfo(index, MSG_Type,"") teamChanged = true } messageSayText(index, MSG_Type, message); if(teamChanged) { messageTeamInfo(index, MSG_Type, "SPECTATOR") } } } messageSayText(id, type, message[]) { message_begin(type, get_user_msgid("SayText"), _, id) write_byte(id) write_string(message) message_end() } messageTeamInfo(id, type, team[]) { message_begin(type, get_user_msgid("TeamInfo"), _, id) write_byte(id) write_string(team) message_end() } findAnyPlayer() { static players[32], inum, pid get_players(players, inum, "ch") for (new a = 0; a < inum; a++) { pid = players[a] if(is_user_connected(pid)) return pid } return 0 }
|