Buyur;
Kod:#include <amxmisc>#include <engine> #define PLUGIN "Menu Plugini" #define VERSION "1.4" #define AUTHOR "NiCoMeDiA" #define SITE "www.CsPlague.com" #define DEFAULT_TIME 600.0 // In Seconds enum ( <<= 1 ) { GAG_CHAT = 1, GAG_TEAMSAY, GAG_VOICE }; enum _:GagData { GAG_AUTHID[ 20 ], GAG_TIME, GAG_START, GAG_FLAGS }; new g_szAuthid[ 33 ][ 20 ]; new g_iThinker, g_iGagged; new bool:g_bColoredMenus, Trie:g_tArrayPos, Array:g_aGagData, Array:g_aGagTimes; new g_iMenuOption[ 33 ], g_iMenuPosition[ 33 ], g_iMenuPlayers[ 33 ][ 32 ]; new g_menuPosition[33] new g_menuSelect[33][64] new g_menuUnBanType[33] new g_menuUnBanLine[33][2] new g_menuUnBanText[33][8][32] new g_bannedCfgFile[2][] = {"banned.cfg","listip.cfg"} new g_coloredMenus new menucvar public plugin_init() { menucvar = register_cvar("menu_aktif","1") register_clcmd("amx_unbanmenu","cmdUnBanMenu", ADMIN_BAN, "- displays unban menu") register_menucmd(register_menuid("UnBan STEAMID or IP?"),(1<<0|1<<1|1<<9),"actionUnBanMenuType") register_menucmd(register_menuid("UnBan Menu"),1023,"actionUnBanMenu") g_coloredMenus = colored_menus() register_clcmd("say /menu","adminmenu"); register_clcmd("say !menu","adminmenu"); register_clcmd("say .menu","adminmenu"); register_clcmd("say menu","adminmenu"); set_task(300.0,"nicomediaa",0,"",0,"b",0) register_clcmd( "say", "CmdSay" ); register_clcmd( "say_team", "CmdTeamSay" ); register_concmd( "amx_gag", "CmdGagPlayer", ADMIN_KICK, "<nick or #userid> <time> <a|b|c>" ); register_concmd( "amx_ungag", "CmdUnGagPlayer", ADMIN_KICK, "<nick or #userid>" ); register_concmd( "amx_gagmenu", "CmdGagMenu", ADMIN_KICK, "- displays gag menu" ); register_srvcmd( "amx_gag_times", "CmdSetBanTimes" ); register_menucmd( register_menuid( "Gag Menu" ), 1023, "ActionGagMenu" ); register_message( get_user_msgid( "SayText" ), "MessageSayText" ); g_tArrayPos = TrieCreate( ); g_aGagData = ArrayCreate( GagData ); g_aGagTimes = ArrayCreate( ); g_bColoredMenus = bool:colored_menus( ); // Gag times for the gag menu (amx_gagmenu) // Default values: 60 300 600 1800 3600 7200 86400 // Load up standart times ArrayPushCell( g_aGagTimes, 60 ); ArrayPushCell( g_aGagTimes, 300 ); ArrayPushCell( g_aGagTimes, 600 ); ArrayPushCell( g_aGagTimes, 1800 ); ArrayPushCell( g_aGagTimes, 3600 ); ArrayPushCell( g_aGagTimes, 7200 ); ArrayPushCell( g_aGagTimes, 86400 ); // Set up entity-thinker new const szClassname[ ] = "gag_thinker"; g_iThinker = create_entity( "info_target" ); entity_set_string( g_iThinker, EV_SZ_classname, szClassname ); register_think( szClassname, "FwdThink" ); } public adminmenu(id) { if(get_pcvar_num(menucvar) == 1) { new menu = menu_create("\rwww.CSPLAGUE.com^n\w[ ~ Admin Menu ~ ]", "adminmenudevam") menu_additem(menu, "\w=> \yBan Menu \w<= \r( \dOyundan Atma \r)", "1",ADMIN_BAN) menu_additem(menu, "\w=> \yKick Menu \w<= \r( \dOyundan Atma \r)", "2",ADMIN_BAN) menu_additem(menu, "\w=> \yUnban Menu \w<= \r( \dOyundan Atilanlarin Cezalarini Kaldirma \r)", "3",ADMIN_BAN) menu_additem(menu, "\w=> \ySlap Menu \w<= \r( \dTokatlama / Oldurme Menusu \r)", "4",ADMIN_BAN) menu_additem(menu, "\w=> \yTeam Menu \w<= \r( \dTakim Degistirme Menusu \r)", "5",ADMIN_BAN) menu_additem(menu, "\w=> \yGag Menu \w<= \r( \dSusturma Menusu \r)", "6",ADMIN_BAN) menu_additem(menu, "\w=> \yRestart Game \w<= \r( \dOyunu Yeniden Baslat \r)", "7",ADMIN_BAN) menu_setprop(menu, MPROP_NEXTNAME, "Ileri"); menu_setprop(menu, MPROP_BACKNAME, "Geri"); menu_setprop(menu, MPROP_EXITNAME, "Menuyu Kapat"); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); new admin_name[32] get_user_name(id , admin_name , 31 ) chat_color(0,"!t[ %s ] !y%s !g/menu !yYazarak Ozel !tAdmin Menusune !yGirdi.",SITE,admin_name) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); } } public adminmenudevam(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch(key) { case 1: { console_cmd(id,"amx_banmenu"); } case 2: { console_cmd(id,"amx_kickmenu"); } case 3: { console_cmd(id,"amx_unbanmenu"); } case 4: { console_cmd(id,"amx_slapmenu"); } case 5: { console_cmd(id,"amx_teammenu"); } case 6: { console_cmd(id,"amx_gagmenu"); } case 7: { console_cmd(id,"amx_cvar sv_restart 3"); } } menu_destroy(menu); return PLUGIN_HANDLED; } public nicomediaa() { chat_color(0,"!y[ !t%s !y] !gCounter Strike Plugin Paylasim Platformu !t%s",SITE,SITE) } //===============================UNBANMENU================================// public actionUnBanMenu(id,key) { switch(key) { case 8: { displayUnBanMenu(id, ++g_menuPosition[id]) } case 9: { g_menuUnBanLine[id][0] = g_menuUnBanLine[id][0] - (8 + g_menuUnBanLine[id][1]) if(g_menuUnBanLine[id][0] < 0) g_menuUnBanLine[id][0] = 0 displayUnBanMenu(id, --g_menuPosition[id]) } default: { new name[32], authid[32], ipaddress[24] get_user_authid(id, authid, 31) get_user_name(id, name, 31) get_user_ip(id, ipaddress, 23, 1) log_amx("UnBan: ^"%s<%d><%s><%s>^" unban ^"%s^"", name,get_user_userid(id),authid,ipaddress,g_menuUnBanText[id][key]) switch (get_cvar_num("amx_show_activity")) { case 2: client_print(0, print_chat, "ADMIN %s: unban %s", name, g_menuUnBanText[id][key]) case 1: client_print(0, print_chat, "ADMIN: unban %s", g_menuUnBanText[id][key]) } if(g_menuUnBanType[id] == 1) { server_cmd("removeip ^"%s^"; writeip", g_menuUnBanText[id][key]) server_exec() console_print(id, "IP ^"%s^" removed from ban list", g_menuUnBanText[id][key]) } else { server_cmd("removeid %s; writeid", g_menuUnBanText[id][key]) console_print(id, "Authid ^"%s^" removed from ban list", g_menuUnBanText[id][key]) } g_menuUnBanLine[id][0] = g_menuUnBanLine[id][1] = 0 displayUnBanMenu(id, g_menuPosition[id] = 0) } } return PLUGIN_HANDLED } checkSTEAMID(steamid[]) { new len = strlen(steamid) if(len > 10 && equali(steamid, "STEAM_", 6) && steamid[7] == ':' && steamid[9] == ':' && str_to_num(steamid[10])) { return 1 } return 0 } checkIP(ip[]) { new len = strlen(ip) new dots = 0, i = 0 while(isdigit(ip[i]) || ip[i]=='.') if(ip[i++] == '.') ++dots if(i == len && dots == 3) { return 1 } return 0 } displayUnBanMenu(id,pos) { if(pos < 0) return new menuBody[512] new b = 0 new len = format(menuBody, 511, g_coloredMenus ? "\yBan Kaldir\R%d^n\w^n" : "UnBan Menu %d^n^n", id, "UNBAN_MENU", pos + 1) new keys = (1<<9) new textlen, line new type = g_menuUnBanType[id] new temp[32], banTime[32], disable if(file_exists(g_bannedCfgFile[type])) { line = g_menuUnBanLine[id][0] while((line = read_file(g_bannedCfgFile[type], line, g_menuSelect[id], 63, textlen))) { temp[0] = '^0' banTime[0] = '^0' g_menuUnBanText[id][b][0] = '^0' disable = 0 if(textlen < 9) disable = 1 else if(parse(g_menuSelect[id], temp, 31, banTime, 31, g_menuUnBanText[id][b], 31) != 3) disable = 1 else if((type == 1 && !checkIP(g_menuUnBanText[id][b])) || (type == 0 && !checkSTEAMID(g_menuUnBanText[id][b]))) disable = 1 if(disable == 0) { keys |= (1<<b) if(g_coloredMenus) len += format(menuBody[len], 511-len, "%d. %s\R\r%s^n\w", b, g_menuUnBanText[id][b++], banTime) else len += format(menuBody[len], 511-len, "%d. %s ( %s )^n", b, g_menuUnBanText[id][b++], banTime) } else { if(g_coloredMenus) len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_menuUnBanText[id][b++]) else len += format(menuBody[len], 511-len, "#. %s^n", b, g_menuUnBanText[id][b++]) } if(b == 8) break } if(b == 8 && read_file(g_bannedCfgFile[type], line, g_menuSelect[id], 63, textlen) > 0) { format(menuBody[len], 511-len, "^n9. More...^n0. %s",id, pos ? "Back" : "Exit",id) keys |= (1<<8) } else format(menuBody[len], 511-len, "^n0. %s", pos ? "Back" : "Exit",id) g_menuUnBanLine[id][1] = line - g_menuUnBanLine[id][0] g_menuUnBanLine[id][0] = line show_menu(id, keys, menuBody, -1, "UnBan Menu") } return } public actionUnBanMenuType(id,key) { switch(key) { case 9: return PLUGIN_HANDLED default: { g_menuUnBanType[id] = key // 0 = STEAMID, 1 = IP g_menuUnBanLine[id][0] = g_menuUnBanLine[id][1] = 0 displayUnBanMenu(id, g_menuPosition[id] = 0) } } return PLUGIN_HANDLED } displayUnBanMenuType(id) { new menuBody[512] new len = format(menuBody, 511, g_coloredMenus ? "\rBanned \yKaldirma Turu?^n\w^n" :"UnBan STEAMID or IP?^n^n",id) new keys = (1<<0)|(1<<1)|(1<<9) len += format(menuBody[len], 511-len, "1. \rSinirsiz \yBanlari Kaldir^n",id) len += format(menuBody[len], 511-len, "\w2. \rNormal \yBanlari Kaldir^n",id) format(menuBody[len], 511-len, "^n\w0. \rExit",id) show_menu(id, keys, menuBody, -1, "UnBan STEAMID or IP?") } public cmdUnBanMenu(id,level,cid) { if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED g_menuUnBanType[id] = -1 displayUnBanMenuType(id) return PLUGIN_HANDLED } stock chat_color(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") replace_all(msg, 190, "!team2", "^0") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]); write_string(msg); message_end(); } } } } //======================================GAGMENU=====================================// public CmdSetBanTimes( ) { new iArgs = read_argc( ); if( iArgs <= 1 ) { server_print( "Usage: amx_gag_times <time1> [time2] [time3] ..." ); return; } ArrayClear( g_aGagTimes ); new szBuffer[ 32 ], iTime; for( new i = 1; i < iArgs; i++ ) { read_argv( i, szBuffer, 31 ); iTime = str_to_num( szBuffer ); if( iTime > 86400 ) { server_print( "[AMXX GAG] Time more then 86400 is not allowed!" ); continue; } ArrayPushCell( g_aGagTimes, iTime ); } } public plugin_end( ) { TrieDestroy( g_tArrayPos ); ArrayDestroy( g_aGagData ); ArrayDestroy( g_aGagTimes ); } public client_putinserver( id ) if( CheckGagFlag( id, GAG_VOICE ) ) set_speak( id, SPEAK_MUTED ); public client_authorized( id ) get_user_authid( id, g_szAuthid[ id ], 19 ); public client_disconnect( id ) { if( TrieKeyExists( g_tArrayPos, g_szAuthid[ id ] ) ) { new szName[ 32 ]; get_user_name( id, szName, 31 ); new iPlayers[ 32 ], iNum, iPlayer; get_players( iPlayers, iNum, "ch" ); for( new i; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( get_user_flags( iPlayer ) & ADMIN_KICK ) client_print( iPlayer, print_chat, "[AMXX] Gagged player ^"%s<%s>^" has disconnected!", szName, g_szAuthid[ id ] ); } } g_szAuthid[ id ][ 0 ] = '^0'; } public client_infochanged( id ) { if( !CheckGagFlag( id, ( GAG_CHAT | GAG_TEAMSAY ) ) ) return; static const name[ ] = "name"; static szNewName[ 32 ], szOldName[ 32 ]; get_user_info( id, name, szNewName, 31 ); get_user_name( id, szOldName, 31 ); if( !equal( szNewName, szOldName ) ) { client_print( id, print_chat, "[AMXX] Gagged players cannot change their names!" ); set_user_info( id, name, szOldName ); } } public MessageSayText( ) { static const Cstrike_Name_Change[ ] = "#Cstrike_Name_Change"; new szMessage[ sizeof( Cstrike_Name_Change ) + 1 ]; get_msg_arg_string( 2, szMessage, sizeof( szMessage ) - 1 ); if( equal( szMessage, Cstrike_Name_Change ) ) { new szName[ 32 ], id; for( new i = 3; i <= 4; i++ ) { get_msg_arg_string( i, szName, 31 ); id = get_user_index( szName ); if( is_user_connected( id ) ) { if( CheckGagFlag( id, ( GAG_CHAT | GAG_TEAMSAY ) ) ) return PLUGIN_HANDLED; break; } } } return PLUGIN_CONTINUE; } public FwdThink( const iEntity ) { if( !g_iGagged ) return; new Float:fGametime; fGametime = get_gametime( ); new data[ GagData ], id, szName[ 32 ]; for( new i = 0; i < g_iGagged; i++ ) { ArrayGetArray( g_aGagData, i, data ); if( ( Float:data[ GAG_START ] + Float:data[ GAG_TIME ] - 0.5 ) <= fGametime ) { id = find_player( "c", data[ GAG_AUTHID ] ); if( is_user_connected( id ) ) { get_user_name( id, szName, 31 ); client_print( 0, print_chat, "[AMXX] Player ^"%s^" is no longer gagged.", szName ); } DeleteGag( i ); i--; } } if( !g_iGagged ) return; new Float:flNextTime = 999999.9; for( new i = 0; i < g_iGagged; i++ ) { ArrayGetArray( g_aGagData, i, data ); flNextTime = floatmin( flNextTime, Float:data[ GAG_START ] + Float:data[ GAG_TIME ] ); } entity_set_float( iEntity, EV_FL_nextthink, flNextTime ); } public CmdSay( const id ) return CheckSay( id, 0 ); public CmdTeamSay( const id ) return CheckSay( id, 1 ); CheckSay( const id, const bTeam ) { new iArrayPos; if( TrieGetCell( g_tArrayPos, g_szAuthid[ id ], iArrayPos ) ) { new data[ GagData ]; ArrayGetArray( g_aGagData, iArrayPos, data ); new const iFlags[ ] = { GAG_CHAT, GAG_TEAMSAY }; if( data[ GAG_FLAGS ] & iFlags[ bTeam ] ) { new szInfo[ 32 ], iLen, iTime = floatround( ( Float:data[ GAG_START ] + Float:data[ GAG_TIME ] ) - get_gametime( ) ), iMinutes = iTime / 60, iSeconds = iTime % 60; if( iMinutes > 0 ) iLen = formatex( szInfo, 31, "%i minute%s", iMinutes, iMinutes == 1 ? "" : "s" ); if( iSeconds > 0 ) formatex( szInfo[ iLen ], 31 - iLen, "%s%i second%s", iLen ? " and " : "", iSeconds, iSeconds == 1 ? "" : "s" ); client_print( id, print_chat, "[AMXX] %s left before your ungag!", szInfo ); client_print( id, print_center, "** You are gagged from%s chat! **", bTeam ? " team" : "" ); return PLUGIN_HANDLED; } } return PLUGIN_CONTINUE; } public CmdGagPlayer( const id, const iLevel, const iCid ) { if( !cmd_access( id, iLevel, iCid, 2 ) ) { console_print( id, "Flags: a - Chat | b - Team Chat | c - Voice communications" ); return PLUGIN_HANDLED; } new szArg[ 32 ]; read_argv( 1, szArg, 31 ); new iPlayer = cmd_target( id, szArg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 20 ]; get_user_name( iPlayer, szName, 19 ); if( TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ) { console_print( id, "User ^"%s^" is already gagged!", szName ); return PLUGIN_HANDLED; } new szFlags[ 4 ], Float:flGagTime; read_argv( 2, szArg, 31 ); if( !szArg[ 0 ] ) { // No time entered flGagTime = DEFAULT_TIME; formatex( szFlags, 3, "abc" ); } else { if( is_str_num( szArg ) ) { // Seconds entered flGagTime = floatstr( szArg ); if( flGagTime > 86400.0 ) flGagTime = 86400.0; } else { console_print( id, "The value must be in seconds!" ); return PLUGIN_HANDLED; } read_argv( 3, szArg, 31 ); if( !szArg[ 0 ] ) // No flag entered formatex( szFlags, 3, "abc" ); else formatex( szFlags, 3, szArg ); } new iFlags = read_flags( szFlags ); new data[ GagData ]; data[ GAG_START ] = _:get_gametime( ); data[ GAG_TIME ] = _:flGagTime; data[ GAG_FLAGS ] = iFlags; copy( data[ GAG_AUTHID ], 19, g_szAuthid[ iPlayer ] ); TrieSetCell( g_tArrayPos, g_szAuthid[ iPlayer ], g_iGagged ); ArrayPushArray( g_aGagData, data ); new szFrom[ 64 ]; if( iFlags & GAG_CHAT ) formatex( szFrom, 63, "say" ); if( iFlags & GAG_TEAMSAY ) { if( !szFrom[ 0 ] ) formatex( szFrom, 63, "say_team" ); else format( szFrom, 63, "%s / say_team", szFrom ); } if( iFlags & GAG_VOICE ) { set_speak( iPlayer, SPEAK_MUTED ); if( !szFrom[ 0 ] ) formatex( szFrom, 63, "voicecomm" ); else format( szFrom, 63, "%s / voicecomm", szFrom ); } g_iGagged++; new Float:flGametime = get_gametime( ), Float:flNextThink; flNextThink = entity_get_float( g_iThinker, EV_FL_nextthink ); if( !flNextThink || flNextThink > ( flGametime + flGagTime ) ) entity_set_float( g_iThinker, EV_FL_nextthink, flGametime + flGagTime ); new szInfo[ 32 ], szAdmin[ 20 ], iTime = floatround( flGagTime ), iMinutes = iTime / 60, iSeconds = iTime % 60; get_user_name( id, szAdmin, 19 ); if( !iMinutes ) formatex( szInfo, 31, "%i second%s", iSeconds, iSeconds == 1 ? "" : "s" ); else formatex( szInfo, 31, "%i minute%s", iMinutes, iMinutes == 1 ? "" : "s" ); show_activity( id, szAdmin, "Has gagged %s from speaking for %s! (%s)", szName, szInfo, szFrom ); console_print( id, "You have gagged ^"%s^" (%s) !", szName, szFrom ); log_amx( "Gag: ^"%s<%s>^" has gagged ^"%s<%s>^" for %i minutes. (%s)", szAdmin, g_szAuthid[ id ], szName, g_szAuthid[ iPlayer ], floatround( flGagTime / 60 ), szFrom ); return PLUGIN_HANDLED; } public CmdUnGagPlayer( const id, const iLevel, const iCid ) { if( !cmd_access( id, iLevel, iCid, 2 ) ) return PLUGIN_HANDLED; new szArg[ 32 ]; read_argv( 1, szArg, 31 ); if( equali( szArg, "@all" ) ) { if( !g_iGagged ) { console_print( id, "No gagged players!" ); return PLUGIN_HANDLED; } while( g_iGagged ) DeleteGag( 0 ); // Excellent by Exolent if( entity_get_float( g_iThinker, EV_FL_nextthink ) > 0.0 ) entity_set_float( g_iThinker, EV_FL_nextthink, 0.0 ); console_print( id, "You have ungagged all players!" ); new szAdmin[ 32 ]; get_user_name( id, szAdmin, 31 ); show_activity( id, szAdmin, "Has ungagged all players." ); log_amx( "UnGag: ^"%s<%s>^" has ungagged all players.", szAdmin, g_szAuthid[ id ] ); return PLUGIN_HANDLED; } new iPlayer = cmd_target( id, szArg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 32 ]; get_user_name( iPlayer, szName, 31 ); new iArrayPos; if( !TrieGetCell( g_tArrayPos, g_szAuthid[ iPlayer ], iArrayPos ) ) { console_print( id, "User ^"%s^" is not gagged!", szName ); return PLUGIN_HANDLED; } DeleteGag( iArrayPos ); new szAdmin[ 32 ]; get_user_name( id, szAdmin, 31 ); show_activity( id, szAdmin, "Has ungagged %s.", szName ); console_print( id, "You have ungagged ^"%s^" !", szName ); log_amx( "UnGag: ^"%s<%s>^" has ungagged ^"%s<%s>^"", szAdmin, g_szAuthid[ id ], szName, g_szAuthid[ iPlayer ] ); return PLUGIN_HANDLED; } public CmdGagMenu( const id, const iLevel, const iCid ) { if( !cmd_access( id, iLevel, iCid, 1 ) ) return PLUGIN_HANDLED; g_iMenuOption[ id ] = 0; arrayset( g_iMenuPlayers[ id ], 0, 32 ); DisplayGagMenu( id, g_iMenuPosition[ id ] = 0 ); return PLUGIN_HANDLED; } public ActionGagMenu( const id, const iKey ) { switch( iKey ) { case 7: { ++g_iMenuOption[ id ]; g_iMenuOption[ id ] %= ArraySize( g_aGagTimes ); DisplayGagMenu( id, g_iMenuPosition[ id ] ); } case 8: DisplayGagMenu( id, ++g_iMenuPosition[ id ] ); case 9: DisplayGagMenu( id, --g_iMenuPosition[ id ] ); default: { new iPlayer = g_iMenuPlayers[ id ][ g_iMenuPosition[ id ] * 7 + iKey ]; if( TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ) client_cmd( id, "amx_ungag #%i", get_user_userid( iPlayer ) ); else client_cmd( id, "amx_gag #%i %i", get_user_userid( iPlayer ), ArrayGetCell( g_aGagTimes, g_iMenuOption[ id ] ) ); DisplayGagMenu( id, g_iMenuPosition[ id ] ); } } } // I just copied this from AMXX Ban menu, so don't blame me :D DisplayGagMenu( const id, iPosition ) { if( iPosition < 0 ) { arrayset( g_iMenuPlayers[ id ], 0, 32 ); return; } new iPlayers[ 32 ], iNum, iCount, szMenu[ 512 ], iPlayer, iFlags, szName[ 32 ]; get_players( iPlayers, iNum, "ch" ); // Ignore bots and hltv new iStart = iPosition * 7; if( iStart >= iNum ) iStart = iPosition = g_iMenuPosition[ id ] = 0; new iEnd = iStart + 7, iKeys = MENU_KEY_0 | MENU_KEY_8; new iLen = formatex( szMenu, 511, g_bColoredMenus ? "\rGag Menu\R%i/%i\w^n^n" : "Gag Menu %i %i^n^n", iPosition + 1, ( iNum / 7 + ( ( iNum % 7 ) ? 1 : 0 ) ) ); if( iEnd > iNum ) iEnd = iNum; for( new i = iStart; i < iEnd; ++i ) { iPlayer = iPlayers[ i ]; iFlags = get_user_flags( iPlayer ); get_user_name( iPlayer, szName, 31 ); if( iPlayer != id && iFlags & ADMIN_IMMUNITY ) { ++iCount; if( g_bColoredMenus ) iLen += formatex( szMenu[ iLen ], 511 - iLen, "\d%i. %s^n", iCount, szName ); else iLen += formatex( szMenu[ iLen ], 511 - iLen, "#. %s^n", szName ); } else { iKeys |= ( 1 << iCount ); ++iCount; iLen += formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "\r%i.\w %s\y%s\r%s^n" : "%i. %s%s%s^n", iCount, szName, TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ? " GAGGED" : "", ( ~iFlags & ADMIN_USER ? " *" : "" ) ); } } g_iMenuPlayers[ id ] = iPlayers; new iSeconds = ArrayGetCell( g_aGagTimes, g_iMenuOption[ id ] ); new iTime = iSeconds / 60; iLen += formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r8.\w Gag for\y %i\w %s^n" : "^n8. Gag for %i %s^n", ( iSeconds > 60 ? iTime : iSeconds ), ( iSeconds > 60 ? "minutes" : "seconds" ) ); if( iEnd != iNum ) { formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r9.\w More...^n\r0.\w %s" : "^n9. More...^n0. %s", iPosition ? "Back" : "Exit" ); iKeys |= MENU_KEY_9; } else formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r0.\w %s" : "^n0. %s", iPosition ? "Back" : "Exit" ); show_menu( id, iKeys, szMenu, -1, "Gag Menu" ); } CheckGagFlag( const id, const iFlag ) { new iArrayPos; if( TrieGetCell( g_tArrayPos, g_szAuthid[ id ], iArrayPos ) ) { new data[ GagData ]; ArrayGetArray( g_aGagData, iArrayPos, data ); return ( data[ GAG_FLAGS ] & iFlag ); } return 0; } DeleteGag( const iArrayPos ) { new data[ GagData ]; ArrayGetArray( g_aGagData, iArrayPos, data ); if( data[ GAG_FLAGS ] & GAG_VOICE ) { new iPlayer = find_player( "c", data[ GAG_AUTHID ] ); if( is_user_connected( iPlayer ) ) set_speak( iPlayer, SPEAK_NORMAL ); } TrieDeleteKey( g_tArrayPos, data[ GAG_AUTHID ] ); ArrayDeleteItem( g_aGagData, iArrayPos ); g_iGagged--; for( new i = iArrayPos; i < g_iGagged; i++ ) { ArrayGetArray( g_aGagData, i, data ); TrieSetCell( g_tArrayPos, data[ GAG_AUTHID ], i ); } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */
Bu Yazı Kaldırabilirmisiniz Ben Menu Girdiğimde Bu Cıkıyor
Kod:!g/menu !yYazarak Ozel !tAdmin Menusune !yGirdi
Buyur;
Konu JDM tarafından (11-07-13 Saat 12:24 ) değiştirilmiştir. Sebep: [php] [ /php] kodu bozuk gösteriyor.
Steam ID: STEAM_1:0:70428872
Steam Name: Seps!s
Skype: jdm.csplague
Takdir ediliyorsan değil, Taklit ediliyorsan başarmışsın demektir.
Albert Einstein
Eyvallah Kardeş Şu Yazıyıda Kaldırırsan
Counter Strike Plugin Paylasim Platformu
Kod:#include <amxmisc>#include <engine> #define PLUGIN "Menu Plugini" #define VERSION "1.4" #define AUTHOR "NiCoMeDiA" #define SITE "www.CsPlague.com" #define DEFAULT_TIME 600.0 // In Seconds enum ( <<= 1 ) { GAG_CHAT = 1, GAG_TEAMSAY, GAG_VOICE }; enum _:GagData { GAG_AUTHID[ 20 ], GAG_TIME, GAG_START, GAG_FLAGS }; new g_szAuthid[ 33 ][ 20 ]; new g_iThinker, g_iGagged; new bool:g_bColoredMenus, Trie:g_tArrayPos, Array:g_aGagData, Array:g_aGagTimes; new g_iMenuOption[ 33 ], g_iMenuPosition[ 33 ], g_iMenuPlayers[ 33 ][ 32 ]; new g_menuPosition[33] new g_menuSelect[33][64] new g_menuUnBanType[33] new g_menuUnBanLine[33][2] new g_menuUnBanText[33][8][32] new g_bannedCfgFile[2][] = {"banned.cfg","listip.cfg"} new g_coloredMenus new menucvar public plugin_init() { menucvar = register_cvar("menu_aktif","1") register_clcmd("amx_unbanmenu","cmdUnBanMenu", ADMIN_BAN, "- displays unban menu") register_menucmd(register_menuid("UnBan STEAMID or IP?"),(1<<0|1<<1|1<<9),"actionUnBanMenuType") register_menucmd(register_menuid("UnBan Menu"),1023,"actionUnBanMenu") g_coloredMenus = colored_menus() register_clcmd("say /menu","adminmenu"); register_clcmd("say !menu","adminmenu"); register_clcmd("say .menu","adminmenu"); register_clcmd("say menu","adminmenu"); set_task(300.0,"nicomediaa",0,"",0,"b",0) register_clcmd( "say", "CmdSay" ); register_clcmd( "say_team", "CmdTeamSay" ); register_concmd( "amx_gag", "CmdGagPlayer", ADMIN_KICK, "<nick or #userid> <time> <a|b|c>" ); register_concmd( "amx_ungag", "CmdUnGagPlayer", ADMIN_KICK, "<nick or #userid>" ); register_concmd( "amx_gagmenu", "CmdGagMenu", ADMIN_KICK, "- displays gag menu" ); register_srvcmd( "amx_gag_times", "CmdSetBanTimes" ); register_menucmd( register_menuid( "Gag Menu" ), 1023, "ActionGagMenu" ); register_message( get_user_msgid( "SayText" ), "MessageSayText" ); g_tArrayPos = TrieCreate( ); g_aGagData = ArrayCreate( GagData ); g_aGagTimes = ArrayCreate( ); g_bColoredMenus = bool:colored_menus( ); // Gag times for the gag menu (amx_gagmenu) // Default values: 60 300 600 1800 3600 7200 86400 // Load up standart times ArrayPushCell( g_aGagTimes, 60 ); ArrayPushCell( g_aGagTimes, 300 ); ArrayPushCell( g_aGagTimes, 600 ); ArrayPushCell( g_aGagTimes, 1800 ); ArrayPushCell( g_aGagTimes, 3600 ); ArrayPushCell( g_aGagTimes, 7200 ); ArrayPushCell( g_aGagTimes, 86400 ); // Set up entity-thinker new const szClassname[ ] = "gag_thinker"; g_iThinker = create_entity( "info_target" ); entity_set_string( g_iThinker, EV_SZ_classname, szClassname ); register_think( szClassname, "FwdThink" ); } public adminmenu(id) { if(get_pcvar_num(menucvar) == 1) { new menu = menu_create("\rwww.CSPLAGUE.com^n\w[ ~ Admin Menu ~ ]", "adminmenudevam") menu_additem(menu, "\w=> \yBan Menu \w<= \r( \dOyundan Atma \r)", "1",ADMIN_BAN) menu_additem(menu, "\w=> \yKick Menu \w<= \r( \dOyundan Atma \r)", "2",ADMIN_BAN) menu_additem(menu, "\w=> \yUnban Menu \w<= \r( \dOyundan Atilanlarin Cezalarini Kaldirma \r)", "3",ADMIN_BAN) menu_additem(menu, "\w=> \ySlap Menu \w<= \r( \dTokatlama / Oldurme Menusu \r)", "4",ADMIN_BAN) menu_additem(menu, "\w=> \yTeam Menu \w<= \r( \dTakim Degistirme Menusu \r)", "5",ADMIN_BAN) menu_additem(menu, "\w=> \yGag Menu \w<= \r( \dSusturma Menusu \r)", "6",ADMIN_BAN) menu_additem(menu, "\w=> \yRestart Game \w<= \r( \dOyunu Yeniden Baslat \r)", "7",ADMIN_BAN) menu_setprop(menu, MPROP_NEXTNAME, "Ileri"); menu_setprop(menu, MPROP_BACKNAME, "Geri"); menu_setprop(menu, MPROP_EXITNAME, "Menuyu Kapat"); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); new admin_name[32] get_user_name(id , admin_name , 31 ) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); } } public adminmenudevam(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch(key) { case 1: { console_cmd(id,"amx_banmenu"); } case 2: { console_cmd(id,"amx_kickmenu"); } case 3: { console_cmd(id,"amx_unbanmenu"); } case 4: { console_cmd(id,"amx_slapmenu"); } case 5: { console_cmd(id,"amx_teammenu"); } case 6: { console_cmd(id,"amx_gagmenu"); } case 7: { console_cmd(id,"amx_cvar sv_restart 3"); } } menu_destroy(menu); return PLUGIN_HANDLED; } public nicomediaa() { chat_color(0,"!y[ !t%s !y] !gCounter Strike Plugin Paylasim Platformu !t%s",SITE,SITE) } //===============================UNBANMENU================================// public actionUnBanMenu(id,key) { switch(key) { case 8: { displayUnBanMenu(id, ++g_menuPosition[id]) } case 9: { g_menuUnBanLine[id][0] = g_menuUnBanLine[id][0] - (8 + g_menuUnBanLine[id][1]) if(g_menuUnBanLine[id][0] < 0) g_menuUnBanLine[id][0] = 0 displayUnBanMenu(id, --g_menuPosition[id]) } default: { new name[32], authid[32], ipaddress[24] get_user_authid(id, authid, 31) get_user_name(id, name, 31) get_user_ip(id, ipaddress, 23, 1) log_amx("UnBan: ^"%s<%d><%s><%s>^" unban ^"%s^"", name,get_user_userid(id),authid,ipaddress,g_menuUnBanText[id][key]) switch (get_cvar_num("amx_show_activity")) { case 2: client_print(0, print_chat, "ADMIN %s: unban %s", name, g_menuUnBanText[id][key]) case 1: client_print(0, print_chat, "ADMIN: unban %s", g_menuUnBanText[id][key]) } if(g_menuUnBanType[id] == 1) { server_cmd("removeip ^"%s^"; writeip", g_menuUnBanText[id][key]) server_exec() console_print(id, "IP ^"%s^" removed from ban list", g_menuUnBanText[id][key]) } else { server_cmd("removeid %s; writeid", g_menuUnBanText[id][key]) console_print(id, "Authid ^"%s^" removed from ban list", g_menuUnBanText[id][key]) } g_menuUnBanLine[id][0] = g_menuUnBanLine[id][1] = 0 displayUnBanMenu(id, g_menuPosition[id] = 0) } } return PLUGIN_HANDLED } checkSTEAMID(steamid[]) { new len = strlen(steamid) if(len > 10 && equali(steamid, "STEAM_", 6) && steamid[7] == ':' && steamid[9] == ':' && str_to_num(steamid[10])) { return 1 } return 0 } checkIP(ip[]) { new len = strlen(ip) new dots = 0, i = 0 while(isdigit(ip[i]) || ip[i]=='.') if(ip[i++] == '.') ++dots if(i == len && dots == 3) { return 1 } return 0 } displayUnBanMenu(id,pos) { if(pos < 0) return new menuBody[512] new b = 0 new len = format(menuBody, 511, g_coloredMenus ? "\yBan Kaldir\R%d^n\w^n" : "UnBan Menu %d^n^n", id, "UNBAN_MENU", pos + 1) new keys = (1<<9) new textlen, line new type = g_menuUnBanType[id] new temp[32], banTime[32], disable if(file_exists(g_bannedCfgFile[type])) { line = g_menuUnBanLine[id][0] while((line = read_file(g_bannedCfgFile[type], line, g_menuSelect[id], 63, textlen))) { temp[0] = '^0' banTime[0] = '^0' g_menuUnBanText[id][b][0] = '^0' disable = 0 if(textlen < 9) disable = 1 else if(parse(g_menuSelect[id], temp, 31, banTime, 31, g_menuUnBanText[id][b], 31) != 3) disable = 1 else if((type == 1 && !checkIP(g_menuUnBanText[id][b])) || (type == 0 && !checkSTEAMID(g_menuUnBanText[id][b]))) disable = 1 if(disable == 0) { keys |= (1<<b) if(g_coloredMenus) len += format(menuBody[len], 511-len, "%d. %s\R\r%s^n\w", b, g_menuUnBanText[id][b++], banTime) else len += format(menuBody[len], 511-len, "%d. %s ( %s )^n", b, g_menuUnBanText[id][b++], banTime) } else { if(g_coloredMenus) len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_menuUnBanText[id][b++]) else len += format(menuBody[len], 511-len, "#. %s^n", b, g_menuUnBanText[id][b++]) } if(b == 8) break } if(b == 8 && read_file(g_bannedCfgFile[type], line, g_menuSelect[id], 63, textlen) > 0) { format(menuBody[len], 511-len, "^n9. More...^n0. %s",id, pos ? "Back" : "Exit",id) keys |= (1<<8) } else format(menuBody[len], 511-len, "^n0. %s", pos ? "Back" : "Exit",id) g_menuUnBanLine[id][1] = line - g_menuUnBanLine[id][0] g_menuUnBanLine[id][0] = line show_menu(id, keys, menuBody, -1, "UnBan Menu") } return } public actionUnBanMenuType(id,key) { switch(key) { case 9: return PLUGIN_HANDLED default: { g_menuUnBanType[id] = key // 0 = STEAMID, 1 = IP g_menuUnBanLine[id][0] = g_menuUnBanLine[id][1] = 0 displayUnBanMenu(id, g_menuPosition[id] = 0) } } return PLUGIN_HANDLED } displayUnBanMenuType(id) { new menuBody[512] new len = format(menuBody, 511, g_coloredMenus ? "\rBanned \yKaldirma Turu?^n\w^n" :"UnBan STEAMID or IP?^n^n",id) new keys = (1<<0)|(1<<1)|(1<<9) len += format(menuBody[len], 511-len, "1. \rSinirsiz \yBanlari Kaldir^n",id) len += format(menuBody[len], 511-len, "\w2. \rNormal \yBanlari Kaldir^n",id) format(menuBody[len], 511-len, "^n\w0. \rExit",id) show_menu(id, keys, menuBody, -1, "UnBan STEAMID or IP?") } public cmdUnBanMenu(id,level,cid) { if(!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED g_menuUnBanType[id] = -1 displayUnBanMenuType(id) return PLUGIN_HANDLED } stock chat_color(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") replace_all(msg, 190, "!team2", "^0") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]); write_string(msg); message_end(); } } } } //======================================GAGMENU=====================================// public CmdSetBanTimes( ) { new iArgs = read_argc( ); if( iArgs <= 1 ) { server_print( "Usage: amx_gag_times <time1> [time2] [time3] ..." ); return; } ArrayClear( g_aGagTimes ); new szBuffer[ 32 ], iTime; for( new i = 1; i < iArgs; i++ ) { read_argv( i, szBuffer, 31 ); iTime = str_to_num( szBuffer ); if( iTime > 86400 ) { server_print( "[AMXX GAG] Time more then 86400 is not allowed!" ); continue; } ArrayPushCell( g_aGagTimes, iTime ); } } public plugin_end( ) { TrieDestroy( g_tArrayPos ); ArrayDestroy( g_aGagData ); ArrayDestroy( g_aGagTimes ); } public client_putinserver( id ) if( CheckGagFlag( id, GAG_VOICE ) ) set_speak( id, SPEAK_MUTED ); public client_authorized( id ) get_user_authid( id, g_szAuthid[ id ], 19 ); public client_disconnect( id ) { if( TrieKeyExists( g_tArrayPos, g_szAuthid[ id ] ) ) { new szName[ 32 ]; get_user_name( id, szName, 31 ); new iPlayers[ 32 ], iNum, iPlayer; get_players( iPlayers, iNum, "ch" ); for( new i; i < iNum; i++ ) { iPlayer = iPlayers[ i ]; if( get_user_flags( iPlayer ) & ADMIN_KICK ) client_print( iPlayer, print_chat, "[AMXX] Gagged player ^"%s<%s>^" has disconnected!", szName, g_szAuthid[ id ] ); } } g_szAuthid[ id ][ 0 ] = '^0'; } public client_infochanged( id ) { if( !CheckGagFlag( id, ( GAG_CHAT | GAG_TEAMSAY ) ) ) return; static const name[ ] = "name"; static szNewName[ 32 ], szOldName[ 32 ]; get_user_info( id, name, szNewName, 31 ); get_user_name( id, szOldName, 31 ); if( !equal( szNewName, szOldName ) ) { client_print( id, print_chat, "[AMXX] Gagged players cannot change their names!" ); set_user_info( id, name, szOldName ); } } public MessageSayText( ) { static const Cstrike_Name_Change[ ] = "#Cstrike_Name_Change"; new szMessage[ sizeof( Cstrike_Name_Change ) + 1 ]; get_msg_arg_string( 2, szMessage, sizeof( szMessage ) - 1 ); if( equal( szMessage, Cstrike_Name_Change ) ) { new szName[ 32 ], id; for( new i = 3; i <= 4; i++ ) { get_msg_arg_string( i, szName, 31 ); id = get_user_index( szName ); if( is_user_connected( id ) ) { if( CheckGagFlag( id, ( GAG_CHAT | GAG_TEAMSAY ) ) ) return PLUGIN_HANDLED; break; } } } return PLUGIN_CONTINUE; } public FwdThink( const iEntity ) { if( !g_iGagged ) return; new Float:fGametime; fGametime = get_gametime( ); new data[ GagData ], id, szName[ 32 ]; for( new i = 0; i < g_iGagged; i++ ) { ArrayGetArray( g_aGagData, i, data ); if( ( Float:data[ GAG_START ] + Float:data[ GAG_TIME ] - 0.5 ) <= fGametime ) { id = find_player( "c", data[ GAG_AUTHID ] ); if( is_user_connected( id ) ) { get_user_name( id, szName, 31 ); client_print( 0, print_chat, "[AMXX] Player ^"%s^" is no longer gagged.", szName ); } DeleteGag( i ); i--; } } if( !g_iGagged ) return; new Float:flNextTime = 999999.9; for( new i = 0; i < g_iGagged; i++ ) { ArrayGetArray( g_aGagData, i, data ); flNextTime = floatmin( flNextTime, Float:data[ GAG_START ] + Float:data[ GAG_TIME ] ); } entity_set_float( iEntity, EV_FL_nextthink, flNextTime ); } public CmdSay( const id ) return CheckSay( id, 0 ); public CmdTeamSay( const id ) return CheckSay( id, 1 ); CheckSay( const id, const bTeam ) { new iArrayPos; if( TrieGetCell( g_tArrayPos, g_szAuthid[ id ], iArrayPos ) ) { new data[ GagData ]; ArrayGetArray( g_aGagData, iArrayPos, data ); new const iFlags[ ] = { GAG_CHAT, GAG_TEAMSAY }; if( data[ GAG_FLAGS ] & iFlags[ bTeam ] ) { new szInfo[ 32 ], iLen, iTime = floatround( ( Float:data[ GAG_START ] + Float:data[ GAG_TIME ] ) - get_gametime( ) ), iMinutes = iTime / 60, iSeconds = iTime % 60; if( iMinutes > 0 ) iLen = formatex( szInfo, 31, "%i minute%s", iMinutes, iMinutes == 1 ? "" : "s" ); if( iSeconds > 0 ) formatex( szInfo[ iLen ], 31 - iLen, "%s%i second%s", iLen ? " and " : "", iSeconds, iSeconds == 1 ? "" : "s" ); client_print( id, print_chat, "[AMXX] %s left before your ungag!", szInfo ); client_print( id, print_center, "** You are gagged from%s chat! **", bTeam ? " team" : "" ); return PLUGIN_HANDLED; } } return PLUGIN_CONTINUE; } public CmdGagPlayer( const id, const iLevel, const iCid ) { if( !cmd_access( id, iLevel, iCid, 2 ) ) { console_print( id, "Flags: a - Chat | b - Team Chat | c - Voice communications" ); return PLUGIN_HANDLED; } new szArg[ 32 ]; read_argv( 1, szArg, 31 ); new iPlayer = cmd_target( id, szArg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 20 ]; get_user_name( iPlayer, szName, 19 ); if( TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ) { console_print( id, "User ^"%s^" is already gagged!", szName ); return PLUGIN_HANDLED; } new szFlags[ 4 ], Float:flGagTime; read_argv( 2, szArg, 31 ); if( !szArg[ 0 ] ) { // No time entered flGagTime = DEFAULT_TIME; formatex( szFlags, 3, "abc" ); } else { if( is_str_num( szArg ) ) { // Seconds entered flGagTime = floatstr( szArg ); if( flGagTime > 86400.0 ) flGagTime = 86400.0; } else { console_print( id, "The value must be in seconds!" ); return PLUGIN_HANDLED; } read_argv( 3, szArg, 31 ); if( !szArg[ 0 ] ) // No flag entered formatex( szFlags, 3, "abc" ); else formatex( szFlags, 3, szArg ); } new iFlags = read_flags( szFlags ); new data[ GagData ]; data[ GAG_START ] = _:get_gametime( ); data[ GAG_TIME ] = _:flGagTime; data[ GAG_FLAGS ] = iFlags; copy( data[ GAG_AUTHID ], 19, g_szAuthid[ iPlayer ] ); TrieSetCell( g_tArrayPos, g_szAuthid[ iPlayer ], g_iGagged ); ArrayPushArray( g_aGagData, data ); new szFrom[ 64 ]; if( iFlags & GAG_CHAT ) formatex( szFrom, 63, "say" ); if( iFlags & GAG_TEAMSAY ) { if( !szFrom[ 0 ] ) formatex( szFrom, 63, "say_team" ); else format( szFrom, 63, "%s / say_team", szFrom ); } if( iFlags & GAG_VOICE ) { set_speak( iPlayer, SPEAK_MUTED ); if( !szFrom[ 0 ] ) formatex( szFrom, 63, "voicecomm" ); else format( szFrom, 63, "%s / voicecomm", szFrom ); } g_iGagged++; new Float:flGametime = get_gametime( ), Float:flNextThink; flNextThink = entity_get_float( g_iThinker, EV_FL_nextthink ); if( !flNextThink || flNextThink > ( flGametime + flGagTime ) ) entity_set_float( g_iThinker, EV_FL_nextthink, flGametime + flGagTime ); new szInfo[ 32 ], szAdmin[ 20 ], iTime = floatround( flGagTime ), iMinutes = iTime / 60, iSeconds = iTime % 60; get_user_name( id, szAdmin, 19 ); if( !iMinutes ) formatex( szInfo, 31, "%i second%s", iSeconds, iSeconds == 1 ? "" : "s" ); else formatex( szInfo, 31, "%i minute%s", iMinutes, iMinutes == 1 ? "" : "s" ); show_activity( id, szAdmin, "Has gagged %s from speaking for %s! (%s)", szName, szInfo, szFrom ); console_print( id, "You have gagged ^"%s^" (%s) !", szName, szFrom ); log_amx( "Gag: ^"%s<%s>^" has gagged ^"%s<%s>^" for %i minutes. (%s)", szAdmin, g_szAuthid[ id ], szName, g_szAuthid[ iPlayer ], floatround( flGagTime / 60 ), szFrom ); return PLUGIN_HANDLED; } public CmdUnGagPlayer( const id, const iLevel, const iCid ) { if( !cmd_access( id, iLevel, iCid, 2 ) ) return PLUGIN_HANDLED; new szArg[ 32 ]; read_argv( 1, szArg, 31 ); if( equali( szArg, "@all" ) ) { if( !g_iGagged ) { console_print( id, "No gagged players!" ); return PLUGIN_HANDLED; } while( g_iGagged ) DeleteGag( 0 ); // Excellent by Exolent if( entity_get_float( g_iThinker, EV_FL_nextthink ) > 0.0 ) entity_set_float( g_iThinker, EV_FL_nextthink, 0.0 ); console_print( id, "You have ungagged all players!" ); new szAdmin[ 32 ]; get_user_name( id, szAdmin, 31 ); show_activity( id, szAdmin, "Has ungagged all players." ); log_amx( "UnGag: ^"%s<%s>^" has ungagged all players.", szAdmin, g_szAuthid[ id ] ); return PLUGIN_HANDLED; } new iPlayer = cmd_target( id, szArg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 32 ]; get_user_name( iPlayer, szName, 31 ); new iArrayPos; if( !TrieGetCell( g_tArrayPos, g_szAuthid[ iPlayer ], iArrayPos ) ) { console_print( id, "User ^"%s^" is not gagged!", szName ); return PLUGIN_HANDLED; } DeleteGag( iArrayPos ); new szAdmin[ 32 ]; get_user_name( id, szAdmin, 31 ); show_activity( id, szAdmin, "Has ungagged %s.", szName ); console_print( id, "You have ungagged ^"%s^" !", szName ); log_amx( "UnGag: ^"%s<%s>^" has ungagged ^"%s<%s>^"", szAdmin, g_szAuthid[ id ], szName, g_szAuthid[ iPlayer ] ); return PLUGIN_HANDLED; } public CmdGagMenu( const id, const iLevel, const iCid ) { if( !cmd_access( id, iLevel, iCid, 1 ) ) return PLUGIN_HANDLED; g_iMenuOption[ id ] = 0; arrayset( g_iMenuPlayers[ id ], 0, 32 ); DisplayGagMenu( id, g_iMenuPosition[ id ] = 0 ); return PLUGIN_HANDLED; } public ActionGagMenu( const id, const iKey ) { switch( iKey ) { case 7: { ++g_iMenuOption[ id ]; g_iMenuOption[ id ] %= ArraySize( g_aGagTimes ); DisplayGagMenu( id, g_iMenuPosition[ id ] ); } case 8: DisplayGagMenu( id, ++g_iMenuPosition[ id ] ); case 9: DisplayGagMenu( id, --g_iMenuPosition[ id ] ); default: { new iPlayer = g_iMenuPlayers[ id ][ g_iMenuPosition[ id ] * 7 + iKey ]; if( TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ) client_cmd( id, "amx_ungag #%i", get_user_userid( iPlayer ) ); else client_cmd( id, "amx_gag #%i %i", get_user_userid( iPlayer ), ArrayGetCell( g_aGagTimes, g_iMenuOption[ id ] ) ); DisplayGagMenu( id, g_iMenuPosition[ id ] ); } } } // I just copied this from AMXX Ban menu, so don't blame me :D DisplayGagMenu( const id, iPosition ) { if( iPosition < 0 ) { arrayset( g_iMenuPlayers[ id ], 0, 32 ); return; } new iPlayers[ 32 ], iNum, iCount, szMenu[ 512 ], iPlayer, iFlags, szName[ 32 ]; get_players( iPlayers, iNum, "ch" ); // Ignore bots and hltv new iStart = iPosition * 7; if( iStart >= iNum ) iStart = iPosition = g_iMenuPosition[ id ] = 0; new iEnd = iStart + 7, iKeys = MENU_KEY_0 | MENU_KEY_8; new iLen = formatex( szMenu, 511, g_bColoredMenus ? "\rGag Menu\R%i/%i\w^n^n" : "Gag Menu %i %i^n^n", iPosition + 1, ( iNum / 7 + ( ( iNum % 7 ) ? 1 : 0 ) ) ); if( iEnd > iNum ) iEnd = iNum; for( new i = iStart; i < iEnd; ++i ) { iPlayer = iPlayers[ i ]; iFlags = get_user_flags( iPlayer ); get_user_name( iPlayer, szName, 31 ); if( iPlayer != id && iFlags & ADMIN_IMMUNITY ) { ++iCount; if( g_bColoredMenus ) iLen += formatex( szMenu[ iLen ], 511 - iLen, "\d%i. %s^n", iCount, szName ); else iLen += formatex( szMenu[ iLen ], 511 - iLen, "#. %s^n", szName ); } else { iKeys |= ( 1 << iCount ); ++iCount; iLen += formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "\r%i.\w %s\y%s\r%s^n" : "%i. %s%s%s^n", iCount, szName, TrieKeyExists( g_tArrayPos, g_szAuthid[ iPlayer ] ) ? " GAGGED" : "", ( ~iFlags & ADMIN_USER ? " *" : "" ) ); } } g_iMenuPlayers[ id ] = iPlayers; new iSeconds = ArrayGetCell( g_aGagTimes, g_iMenuOption[ id ] ); new iTime = iSeconds / 60; iLen += formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r8.\w Gag for\y %i\w %s^n" : "^n8. Gag for %i %s^n", ( iSeconds > 60 ? iTime : iSeconds ), ( iSeconds > 60 ? "minutes" : "seconds" ) ); if( iEnd != iNum ) { formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r9.\w More...^n\r0.\w %s" : "^n9. More...^n0. %s", iPosition ? "Back" : "Exit" ); iKeys |= MENU_KEY_9; } else formatex( szMenu[ iLen ], 511 - iLen, g_bColoredMenus ? "^n\r0.\w %s" : "^n0. %s", iPosition ? "Back" : "Exit" ); show_menu( id, iKeys, szMenu, -1, "Gag Menu" ); } CheckGagFlag( const id, const iFlag ) { new iArrayPos; if( TrieGetCell( g_tArrayPos, g_szAuthid[ id ], iArrayPos ) ) { new data[ GagData ]; ArrayGetArray( g_aGagData, iArrayPos, data ); return ( data[ GAG_FLAGS ] & iFlag ); } return 0; } DeleteGag( const iArrayPos ) { new data[ GagData ]; ArrayGetArray( g_aGagData, iArrayPos, data ); if( data[ GAG_FLAGS ] & GAG_VOICE ) { new iPlayer = find_player( "c", data[ GAG_AUTHID ] ); if( is_user_connected( iPlayer ) ) set_speak( iPlayer, SPEAK_NORMAL ); } TrieDeleteKey( g_tArrayPos, data[ GAG_AUTHID ] ); ArrayDeleteItem( g_aGagData, iArrayPos ); g_iGagged--; for( new i = iArrayPos; i < g_iGagged; i++ ) { ArrayGetArray( g_aGagData, i, data ); TrieSetCell( g_tArrayPos, data[ GAG_AUTHID ], i ); } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */
Konu Güncelleme Süresi 2 Gündur.
Buyur Buda Link ;
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
PHP- Kodu:
İletişim => cebinihat@hotmail.com
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
PHP- Kodu:
İletişim => cebinihat@hotmail.com
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
PHP- Kodu:
İletişim => cebinihat@hotmail.com
En İyi Konularım:
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
color="#ff0000">CSPLAGUE.com
2 Gün Biliyorum Fakat Verdiğin Dosyada Debug Verdi Bak Hata Alıyorum .ss
L 07/12/2013 - 15:12:55: Invalid trie handle provided (0)
L 07/12/2013 - 15:12:55: [AMXX] Run time error 10 (plugin "menu.amxx") (native "TrieGetCell") - debug not enabled!
L 07/12/2013 - 15:12:55: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 07/12/2013 - 15:12:55: Invalid trie handle provided (0)
L 07/12/2013 - 15:12:55: [AMXX] Run time error 10 (plugin "menu.amxx") (native "TrieGetCell") - debug not enabled!
L 07/12/2013 - 15:12:55: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 07/12/2013 - 15:12:55: Invalid trie handle provided (0)
L 07/12/2013 - 15:12:55: [AMXX] Run time error 10 (plugin "menu.amxx") (native "TrieGetCell") - debug not enabled!
L 07/12/2013 - 15:12:55: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
- - - - - - - - - -
2 Gün Biliyorum Fakat Verdiğin Dosyada Debug Verdi Bak Hata Alıyorum .ss
L 07/12/2013 - 15:12:55: Invalid trie handle provided (0)
L 07/12/2013 - 15:12:55: [AMXX] Run time error 10 (plugin "menu.amxx") (native "TrieGetCell") - debug not enabled!
L 07/12/2013 - 15:12:55: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 07/12/2013 - 15:12:55: Invalid trie handle provided (0)
L 07/12/2013 - 15:12:55: [AMXX] Run time error 10 (plugin "menu.amxx") (native "TrieGetCell") - debug not enabled!
L 07/12/2013 - 15:12:55: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 07/12/2013 - 15:12:55: Invalid trie handle provided (0)
L 07/12/2013 - 15:12:55: [AMXX] Run time error 10 (plugin "menu.amxx") (native "TrieGetCell") - debug not enabled!
L 07/12/2013 - 15:12:55: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Buyrun :
Nefesim Fark Yaratırmı ?
Çözülmüş İsteklere taşındı.
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz: destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/