
Стаж: 13 лет
Сообщений: 1473
Благодарностей: 222
Полезность: 95
|
Как отключить в vip menu ,чтоб в статистике не показывало кто VIP ? Код:
/* *-------------------Информация--------------------* * * Название: Vip_weapon * Автор: 7eVen * Версия: 1.1 * Последнее обновление: 19.12.2012 * *-------------------------------------------------* * *-------------------Переменные--------------------* * * amx_vip_give [По умолчанию: 3] * - Количество раундов, после которых оружия * - будет доступно. * *-------------------------------------------------* * *----------------История изменений----------------* * * 1.0: * [!] Первый релиз. * * 1.1: * [!] Полная оптимизация кода. * [*] Фикс некоторых ошибок. * [+] При выдачи Deagle второе оружия убирается. * [+] Добавлен квар amx_vip_give. * *-------------------------------------------------* * *----------------------P.S------------------------* * * Пишу плагины, на заказ. Skype magoga25 * *-------------------------------------------------* */
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <fakemeta_util>
#define VIP_FLAG ADMIN_LEVEL_H
new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_GALIL, CSW_USP, CSW_GLOCK18}
new round_number, g_round new bool:has_used[32]
public plugin_init() { register_plugin("Vip_weapon", "1.1", "7eVen") register_event("ResetHUD", "ResetHUD", "be") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_clcmd("vipmenu", "vip_menu") register_clcmd("say /adminka", "adminka") register_clcmd("say /vipka","vipka") g_round = register_cvar("amx_vip_give", "4") }
public vip_menu(id) { if ( ! ( get_user_flags ( id ) & VIP_FLAG ) ) { ChatColor ( id, "^3[^4 V.I.P^3 ] ^1 Только для ^4[V.I.P]") return PLUGIN_HANDLED; } new menu = menu_create("\r Оружейка \w[\y V.I.P \w]", "show_vipmenu")
menu_additem(menu, "\wВзять \r[\y Famas \r]\r", "1") menu_additem(menu, "\wВзять \r[\y M4A1 \r]\r", "2") menu_additem(menu, "\wВзять \r[\y AK47 \r]\r", "3") menu_additem(menu, "\wВзять \r[\y AWP \r]\r", "4") menu_setprop(menu, MPROP_NEXTNAME, "Дальше") menu_setprop(menu, MPROP_BACKNAME, "Назад") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_setprop(menu, MPROP_EXIT,MEXIT_ALL) menu_display(id,menu,0) return PLUGIN_HANDLED; }
public show_vipmenu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED; } if(is_user_alive(id)&& !has_used[id] ) { if ( round_number <= get_pcvar_num(g_round) ) { ChatColor ( id, "^3[^4 V.I.P^3 ] ^1 Доступно со %d раунда!", get_pcvar_num(g_round) ) return PLUGIN_HANDLED; } new data[6], iName[64], access, callback menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1: { give_item( id, "weapon_famas" ) cs_set_user_bpammo( id , CSW_FAMAS, 90 ) } case 2: { give_item( id, "weapon_m4a1" ) cs_set_user_bpammo( id , CSW_M4A1, 90 ) } case 3: { give_item( id, "weapon_ak47" ) cs_set_user_bpammo( id , CSW_AK47, 90 ) } case 4: { give_item( id, "weapon_awp" ) cs_set_user_bpammo( id , CSW_AWP, 30 ) } } has_used[id] = true; } else { ChatColor ( id, "^3[^4 V.I.P^3 ] ^1 Вы уже использовали.Подождите..." ) return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
public event_round_start () { round_number++ arrayset(has_used, false, 32) }
public adminka(id) { show_motd( id, "adminka.txt", "Покупка - Админки!" ) }
public vipka(id) { show_motd( id, "vip.txt", "Покупка - V.I.P!" ) }
public ResetHUD(id) { set_task(0.5, "VIP", id + 6910) }
public VIP(TaskID) { new id = TaskID - 6910 if (get_user_flags(id) & VIP_FLAG && is_user_connected(id) && is_user_alive(id)) { for (new i = 0; i < 6; i++) { if (fm_strip_user_gun(id, pistols[i])) { break; } message_begin(MSG_ALL, get_user_msgid("ScoreAttrib")) write_byte(id) write_byte(4) message_end() give_item( id, "weapon_hegrenade" ) give_item( id, "weapon_flashbang" ) give_item( id, "weapon_flashbang" ) give_item( id, "weapon_smokegrenade" ) give_item( id, "item_assaultsuit" ) give_item( id, "item_thighpack" ) give_item( id, "weapon_deagle") 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" ) } } return PLUGIN_HANDLED; }
stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") // Green Color replace_all(msg, 190, "!y ", "^1") // Default Color replace_all(msg, 190, "!team", "^3") // Team Color replace_all(msg, 190, "!team2", "^0") // Team2 Color 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(); } } } } как сделать чтоб voteban могли вызвать игроки когда на сервере вип с определенным флагом,но забанить вип игроков нельзя.Чтоб они невысвечивались в списке или как. А когда админы на сервере,чтоб вотебан вызвать нельзя было вообще.Сейчас нельзя вызвать вотебан когда на сервере и вип игроки Код:
#include <amxmodx> #include <amxmisc>
#define MAX_players 32 #define MAX_menudata 1024
new ga_PlayerName[MAX_players][32] new ga_PlayerAuthID[MAX_players][35] new ga_PlayerID[MAX_players] new ga_PlayerIP[MAX_players][16] new ga_MenuData[MAX_menudata] new ga_Choice[2] new gi_VoteStarter new gi_MenuPosition new gi_Sellection new gi_TotalPlayers new gi_SysTimeOffset = 0 new i //pcvars new gi_LastTime new gi_DelayTime new gf_Ratio new gf_MinVoters new gf_BF_Ratio new gi_BanTime new gi_Disable new gi_BanType
public plugin_init() { register_plugin("Voteban Menu","1.2","hjvl") register_clcmd("say /voteban","SayIt" ) register_menucmd(register_menuid("ChoosePlayer"), 1023, "ChooseMenu") register_menucmd(register_menuid("VoteMenu"), 1023, "CountVotes")
gi_LastTime=register_cvar("amx_voteban_lasttime","0") gi_DelayTime=register_cvar("amxx_voteban_delaytime","600") gf_Ratio=register_cvar("amxx_voteban_ratio","0.50") gf_MinVoters=register_cvar("amxx_voteban_minvoters","0.0") gf_BF_Ratio=register_cvar("amxx_voteban_bf_ratio","0.0") gi_BanTime=register_cvar("amxx_voteban_bantime","5") gi_Disable=register_cvar("amxx_voteban_disable","0") gi_BanType=register_cvar("amxx_voteban_type","0") }
public SayIt(id) { if(get_pcvar_num(gi_Disable)) { client_print(id,print_chat,"[AMXX]amx_votaban disabled") return 0 }
new Elapsed=get_systime(gi_SysTimeOffset) - get_pcvar_num(gi_LastTime) new Delay=get_pcvar_num(gi_DelayTime)
if((Delay > Elapsed)) { new seconds = Delay - Elapsed client_print(id,print_chat,"[AMXX] You have to wait %d seconds before a new voteban can be started", seconds) return 0 }
get_players( ga_PlayerID, gi_TotalPlayers ) for(i=0; i<gi_TotalPlayers; i++) { new TempID = ga_PlayerID[i] if(get_user_flags(TempID) & (ADMIN_IMMUNITY | ADMIN_LEVEL_H)) { client_print(id,print_chat,"There is an admin on the server, voting is disabled!") return 0 }
if(TempID == id) gi_VoteStarter=i
get_user_name( TempID, ga_PlayerName[i], 31 ) get_user_authid( TempID, ga_PlayerAuthID[i], 34 ) get_user_ip( TempID, ga_PlayerIP[i], 15, 1 ) }
gi_MenuPosition = 0 ShowPlayerMenu(id) return 0 }
public ShowPlayerMenu(id) { new arrayloc = 0 new keys = (1<<9)
arrayloc = format(ga_MenuData,(MAX_menudata-1),"voteban menu ^n") for(i=0; i<8; i++) if( gi_TotalPlayers>(gi_MenuPosition+i) ) { arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"%d. %s^n", i+1, ga_PlayerName[gi_MenuPosition+i]) keys |= (1<<i) } if( gi_TotalPlayers>(gi_MenuPosition+8) ) { arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n9. More") keys |= (1<<8) } arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n0. Back/exit")
show_menu(id, keys, ga_MenuData, 20, "ChoosePlayer") return PLUGIN_HANDLED }
public ChooseMenu(id, key) { switch(key) { case 8: { gi_MenuPosition=gi_MenuPosition+8 ShowPlayerMenu(id) } case 9: { if(gi_MenuPosition>=8) { gi_MenuPosition=gi_MenuPosition-8 ShowPlayerMenu(id) } else return 0 } default: { gi_Sellection=gi_MenuPosition+key new Now=get_systime(gi_SysTimeOffset) set_pcvar_num(gi_LastTime, Now)
run_vote() return 0 } } return PLUGIN_HANDLED }
public run_vote() { log_amx("Vote ban started by %s for %s %s", ga_PlayerName[gi_VoteStarter], ga_PlayerName[gi_Sellection], ga_PlayerAuthID[gi_Sellection]) format(ga_MenuData,(MAX_menudata-1),"Ban %s for %d minutes?^n1. Yes^n2. No",ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime)) ga_Choice[0] = 0 ga_Choice[1] = 0 show_menu( 0, (1<<0)|(1<<1), ga_MenuData, 15, "VoteMenu" ) set_task(15.0,"outcom") return 0 }
public CountVotes(id, key) { ++ga_Choice[key] return PLUGIN_HANDLED }
public outcom() { new TotalVotes = ga_Choice[0] + ga_Choice[1] new Float:result = (float(ga_Choice[0]) / float(TotalVotes))
if( get_pcvar_float(gf_MinVoters) >= ( float(TotalVotes) / float(gi_TotalPlayers) ) ) { client_print(0,print_chat,"[AMXX] Not enough voters to ban %s!", ga_PlayerName[gi_Sellection]) return 0 } else { if( result < get_pcvar_float(gf_BF_Ratio) ) { client_print(0,print_chat,"[AMXX] The vote back fired at %s, he is banned for %d minutes", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime)) ActualBan(gi_VoteStarter) log_amx("[AMXX] The vote back fired at %s, he is banned for %d minutes", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime)) }
if( result >= get_pcvar_float(gf_Ratio) ) { client_print(0,print_chat,"[AMXX] The vote succeeded, %s is banned for %d minutes", ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime)) log_amx("[AMXX] The vote succeeded: %s is banned for %d minutes", ga_PlayerAuthID[gi_Sellection], get_pcvar_num(gi_BanTime)) ActualBan(gi_Sellection) } else { client_print(0,print_chat,"[AMXX] The vote did not succeeded!") log_amx("[AMXX] The voteban dit not sucseed.") } } client_print(0,print_chat,"A total of %d players, %d voted yes.", gi_TotalPlayers, ga_Choice[0])
return 0 }
public ActualBan(Selected) { new Type = get_pcvar_num(gi_BanType) switch(Type) { case 1: server_cmd("addip %d %s", get_pcvar_num(gi_BanTime), ga_PlayerIP[Selected]) case 2: server_cmd("amx_ban %d %s Voteban", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected]) default: server_cmd("banid %d %s kick", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected]) } return 0 }
Отредактировал: cyber1741, - 9.3.2015, 11:46
|