Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <cstrike>
- #include <fun>
- #include <dhudmessage>
- #include <hamsandwich>
- #include <fakemeta>
- #include <fakemeta_util>
- #define MAX_JOGADORES 32
- #define TAG "!g[Comunidade GEG.]"
- //Mapas
- new bool: g_Mapa
- //Registos Menu, Granadas
- new bool:g_C4[MAX_JOGADORES];
- new g_Ronda;
- new g_Tempo[33];
- #define TASK_MENU 2000
- #define CVAR "fake_slots"
- //AlterarSlots
- new kvar1;
- // GameName
- new amx_gamename;
- // dano
- new g_type, g_enabled, g_recieved, bool:g_showrecieved, g_hudmsg1, g_hudmsg2
- //Cvars
- new cv_HP, cv_HP_HS, cv_Ronda, cv_Menu, cv_Itens, cv_Tempo;
- //Pub
- new Ronda;
- //vips,admins,...
- new maxplayers
- static const COLOR[] = "^x04" //green
- static const CONTACT[] = ""
- new gmsgSayText
- public plugin_init()
- {
- //Registos Plugin
- register_plugin("Menu_VIP", "1.0", "7he_Punisher")
- //Menu, Granadas
- RegisterHam ( Ham_Spawn, "player", "_nascer", 1 );
- register_event ( "DeathMsg", "_morte", "a" );
- register_event ( "HLTV", "_ronda", "a", "1=0", "2=0" );
- register_event ( "TextMsg", "_reiniciar", "a", "2&#Game_w" );
- register_event ( "TextMsg", "_reiniciar", "a", "2&#Game_C" );
- //Cvars
- cv_Menu = register_cvar( "mostrar_menu", "1" );
- cv_Itens = register_cvar( "itens", "1" );
- cv_HP = register_cvar( "vip_hp", "5" );
- cv_HP_HS = register_cvar( "vip_hp_hs", "10");
- cv_Ronda = register_cvar( "rondas_menu", "3" );
- cv_Tempo = register_cvar( "tempo_menu", "10");
- //Mapa
- Verificar_Mapas( );
- //Alterar Slots
- register_cvar(CVAR, "32");
- //GameName
- amx_gamename = register_cvar( "GameName", "Comunidade GEG." );
- register_forward( FM_GetGameDescription, "GameDesc" );
- //Dano Event
- register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
- //Dano
- g_type = register_cvar("amx_bulletdamage","1")
- g_recieved = register_cvar("amx_bulletdamage_recieved","1")
- g_hudmsg1 = CreateHudSyncObj()
- g_hudmsg2 = CreateHudSyncObj()
- //Vips,admins,...
- maxplayers = get_maxplayers()
- gmsgSayText = get_user_msgid("SayText")
- register_clcmd("say", "handle_say")
- register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
- }
- public plugin_cfg()
- {
- set_task(1.0, "postCfg")
- }
- public postCfg()
- {
- kvar1 = get_cvar_num(CVAR);
- if(kvar1 > 255)
- set_cvar_num(CVAR, 255)
- server_print("^n^n======== Fake Slots: %d =========^n^n", kvar1);
- server_cmd("sv_visiblemaxplayers %d", kvar1)
- set_task(2.0, "cmdUpdateCvar", 512, "", 0, "b")
- }
- public cmdUpdateCvar()
- {
- kvar1 = get_cvar_num(CVAR);
- if(kvar1 > 255)
- set_cvar_num(CVAR, 255)
- server_cmd("sv_visiblemaxplayers %d", kvar1)
- }
- public GameDesc( ) {
- static gamename[32];
- get_pcvar_string( amx_gamename, gamename, 31 );
- forward_return( FMV_STRING, gamename );
- return FMRES_SUPERCEDE;
- }
- public client_disconnect(id)
- {
- if(task_exists(id))
- remove_task(id)
- }
- public on_damage(id)
- {
- if(g_enabled)
- {
- static attacker; attacker = get_user_attacker(id)
- static damage; damage = read_data(2)
- if(g_showrecieved && is_user_connected(attacker))
- {
- set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
- ShowSyncHudMsg(id, g_hudmsg2, "-%i^n", damage)
- }
- if(is_user_connected(attacker))
- {
- switch(g_enabled)
- {
- case 1: {
- set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
- ShowSyncHudMsg(attacker, g_hudmsg1, "-%i^n", damage)
- }
- case 2: {
- if(fm_is_ent_visible(attacker,id))
- {
- set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
- ShowSyncHudMsg(attacker, g_hudmsg1, "-%i^n", damage)
- }
- }
- }
- }
- }
- }
- public _morte()
- {
- new szAssassino = read_data(1);
- new szVitima = read_data(2);
- if(is_user_alive(szAssassino) && szAssassino != szVitima && (get_user_flags(szAssassino) & ADMIN_LEVEL_D || get_user_flags(szAssassino) & ADMIN_RESERVATION))
- {
- new addHP
- if ( (read_data(3) == 1) && (read_data(5) == 0) )
- {
- addHP = get_pcvar_num(cv_HP_HS);
- }
- else
- {
- addHP = get_pcvar_num(cv_HP);
- }
- new szHP = get_user_health(szAssassino);
- szHP += addHP;
- if ( szHP > 100 ) szHP = 100;
- set_user_health( szAssassino, szHP );
- set_dhudmessage( 0, 255, 0, -1.0, 0.35, 0, 0.1, 0.1, 0.1 );
- show_dhudmessage( szAssassino, "[ Vida +%i hp ]", addHP );
- }
- }
- public _ronda(id)
- {
- g_Ronda++;
- Ronda++;
- if(Ronda >= 1)
- {
- Ronda = 0
- }
- // dano
- g_enabled = get_pcvar_num(g_type)
- if(get_pcvar_num(g_recieved)) g_showrecieved = true
- }
- public _nascer(id)
- {
- new szRonda = get_pcvar_num(cv_Ronda)
- if(is_user_alive(id) && (get_pcvar_num(cv_Itens) >= 1) && !g_Mapa && (get_user_flags(id) & ADMIN_RESERVATION || get_user_flags(id) & ADMIN_LEVEL_D || get_user_flags(id) & ADMIN_LEVEL_E))
- {
- 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")
- if(g_Ronda >= szRonda && get_pcvar_num(cv_Menu) == 1) _menu(id);
- }
- }
- public _reiniciar()
- {
- g_Ronda=0;
- }
- public _menu(id)
- {
- if( !task_exists(id) )
- {
- g_Tempo[id] = get_pcvar_num(cv_Tempo)
- set_task( 1.0, "_funcao", id, _, _, "b" )
- }
- new Texto[ 102 ]
- formatex( Texto, charsmax( Texto ), "\r[Comunidade GEG.]^n\yEscolhe o Teu Armamento^n\wTempo de escolha: %i", g_Tempo[id] );
- new menu = menu_create( Texto, "menu_armas_handler" );
- menu_additem( menu, "\wQuero \r| \wM4A1 e Deagle \r|", "1", 0 );
- menu_additem( menu, "\wQuero \r| \wAK47 e Deagle \r|", "2", 0 );
- menu_additem( menu, "\wQuero \r| \wAWP e Deagle \r| \d(\ySTAFF\d)^n^n", "3", 0 );
- menu_additem( menu, "Prefiro comprar", "0", 0 );
- menu_setprop( menu,MPROP_EXIT,MEXIT_NEVER );
- menu_display( id, menu, 0 );
- }
- public menu_armas_handler(id, menu, item)
- {
- new data[6], iName[64];
- new access, callback;
- menu_item_getinfo( menu, item, access, data, 6, iName, 63, callback )
- new key = str_to_num( data );
- switch( key )
- {
- case 1:
- {
- if( task_exists( id ) )
- remove_task( id );
- if (is_user_alive(id) && user_has_weapon(id, CSW_C4) && cs_get_user_team(id) == CS_TEAM_T)
- g_C4[id] = true;
- else
- g_C4[id] = false;
- strip_user_weapons (id);
- give_item(id,"weapon_m4a1");
- cs_set_user_bpammo( id, CSW_M4A1, 90 );
- give_item(id,"weapon_deagle");
- cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
- give_item(id,"weapon_knife");
- 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");
- if (g_C4[id])
- {
- give_item(id, "weapon_c4");
- cs_set_user_plant( id );
- }
- Color(id, "%s !yTu Ganhastes !g[ M4A1 + Deagle ]", TAG);
- }
- case 2:
- {
- if( task_exists( id ) )
- remove_task( id );
- if (is_user_alive(id) && user_has_weapon(id, CSW_C4) && cs_get_user_team(id) == CS_TEAM_T)
- g_C4[id] = true;
- else
- g_C4[id] = false;
- strip_user_weapons (id)
- give_item(id,"weapon_ak47")
- cs_set_user_bpammo( id, CSW_AK47, 90 );
- give_item(id,"weapon_deagle");
- cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
- give_item(id,"weapon_knife");
- 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");
- if (g_C4[id])
- {
- give_item(id, "weapon_c4");
- cs_set_user_plant( id );
- }
- Color(id, "%s !yTu Ganhastes !g[ AK47 + Deagle ]", TAG);
- }
- case 3:
- {
- if(get_user_flags(id) != ADMIN_LEVEL_D)
- {
- Color(id, "%s !yPrecisas de ser !gSTAFF !ypara esta opcao!", TAG)
- _menu(id);
- }
- if(get_user_flags(id) & ADMIN_LEVEL_D)
- {
- remove_task( id );
- show_menu(id, 0, "^n", 1);
- if (is_user_alive(id) && user_has_weapon(id, CSW_C4) && cs_get_user_team(id) == CS_TEAM_T)
- {
- g_C4[id] = true;
- }
- else
- {
- g_C4[id] = false;
- }
- strip_user_weapons (id)
- give_item(id,"weapon_awp")
- cs_set_user_bpammo( id, CSW_AWP, 90 );
- give_item(id,"weapon_deagle");
- cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
- give_item(id,"weapon_knife");
- 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");
- if (g_C4[id])
- {
- give_item(id, "weapon_c4");
- cs_set_user_plant( id );
- }
- Color(id, "%s !yTu Ganhastes !g[ AWP + Deagle ]", TAG);
- }
- }
- case 4:
- {
- remove_task(id);
- show_menu(id, 0, "^n", 1);
- }
- }
- }
- public _funcao(id)
- {
- g_Tempo[id]--
- _menu(id)
- if( g_Tempo[id] <= 0 )
- {
- remove_task(id);
- show_menu(id, 0, "^n", 1);
- g_Tempo[id] = 0;
- }
- }
- public _motdvip(id)
- {
- if(is_user_connected(id)) show_motd(id, "ARMAMENTO NORMAL= NADES,AK47+DEAGLE OU NADES,M4A1+DEAGLE")
- if(is_user_connected(id)) show_motd(id, "ARMAMENTO STAFF= NADE,AK47+DEAGLE OU NADES,M4A1+DEAGLE OU NADES,AWP+DEAGLE")
- }
- Verificar_Mapas( )
- {
- new szFicheiro[ 128 ];
- get_localinfo( "amxx_configsdir", szFicheiro, charsmax( szFicheiro ) );
- add( szFicheiro, charsmax( szFicheiro ), "/Mapas_VIP.ini" );
- new iFicheiro = fopen( szFicheiro, "rt" );
- if( !iFicheiro ) return;
- new szMapa[ 32 ], szModelo[ 5 ], szAtualMapa[ 32 ];
- get_mapname( szAtualMapa, charsmax( szAtualMapa ) );
- while( !feof( iFicheiro ) )
- {
- fgets( iFicheiro, szFicheiro, charsmax( szFicheiro ) );
- trim( szFicheiro );
- parse( szFicheiro, szMapa, charsmax( szMapa ), szModelo, charsmax( szModelo ) );
- if( equali( szMapa, szAtualMapa ) )
- {
- g_Mapa = true
- }
- }
- fclose( iFicheiro );
- }
- public handle_say(id) {
- new said[192]
- read_args(said,192)
- if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
- set_task(0.1,"print_viplist",id)
- if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/admins") != -1 )
- set_task(0.1,"print_adminlist",id)
- if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/mods") != -1 )
- set_task(0.1,"print_modlist",id)
- if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/membros") != -1 )
- set_task(0.1,"print_membrolist",id)
- return PLUGIN_CONTINUE
- }
- // VIPS
- public print_viplist(user)
- {
- new adminnames[33][32]
- new message[256]
- new contactinfo[256], contact[112]
- new id, count, x, len
- for(id = 1 ; id <= maxplayers ; id++)
- if(is_user_connected(id))
- if(get_user_flags(id) & ADMIN_RESERVATION)
- get_user_name(id, adminnames[count++], 31)
- len = format(message, 255, "%s VIPS ONLINE: ",COLOR)
- if(count > 0) {
- for(x = 0 ; x < count ; x++) {
- len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
- if(len > 96 ) {
- print_message(user, message)
- len = format(message, 255, "%s ",COLOR)
- }
- }
- print_message(user, message)
- }
- else {
- len += format(message[len], 255-len, "Sem Vips online.")
- print_message(user, message)
- }
- get_cvar_string("amx_contactinfo", contact, 63)
- if(contact[0]) {
- format(contactinfo, 111, "%s Contacto Mail Admin: %s", COLOR, contact)
- print_message(user, contactinfo)
- }
- }
- // ADMINS
- public print_adminlist(user)
- {
- new adminnames[33][32]
- new message[256]
- new contactinfo[256], contact[112]
- new id, count, x, len
- for(id = 1 ; id <= maxplayers ; id++)
- if(is_user_connected(id))
- if(get_user_flags(id) & ADMIN_LEVEL_A)
- get_user_name(id, adminnames[count++], 31)
- len = format(message, 255, "%s ADMINS ONLINE: ",COLOR)
- if(count > 0) {
- for(x = 0 ; x < count ; x++) {
- len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
- if(len > 96 ) {
- print_message(user, message)
- len = format(message, 255, "%s ",COLOR)
- }
- }
- print_message(user, message)
- }
- else {
- len += format(message[len], 255-len, "Sem Admins online.")
- print_message(user, message)
- }
- get_cvar_string("amx_contactinfo", contact, 63)
- if(contact[0]) {
- format(contactinfo, 111, "%s Contacto Mail Admin: %s", COLOR, contact)
- print_message(user, contactinfo)
- }
- }
- // MODS
- public print_modlist(user)
- {
- new adminnames[33][32]
- new message[256]
- new contactinfo[256], contact[112]
- new id, count, x, len
- for(id = 1 ; id <= maxplayers ; id++)
- if(is_user_connected(id))
- if(get_user_flags(id) & ADMIN_LEVEL_C)
- get_user_name(id, adminnames[count++], 31)
- len = format(message, 255, "%s MODS ONLINE: ",COLOR)
- if(count > 0) {
- for(x = 0 ; x < count ; x++) {
- len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
- if(len > 96 ) {
- print_message(user, message)
- len = format(message, 255, "%s ",COLOR)
- }
- }
- print_message(user, message)
- }
- else {
- len += format(message[len], 255-len, "Sem Mods online.")
- print_message(user, message)
- }
- get_cvar_string("amx_contactinfo", contact, 63)
- if(contact[0]) {
- format(contactinfo, 111, "%s Contacto Mail Admin: %s", COLOR, contact)
- print_message(user, contactinfo)
- }
- }
- // SVIPS
- public print_sviplist(user)
- {
- new adminnames[33][32]
- new message[256]
- new contactinfo[256], contact[112]
- new id, count, x, len
- for(id = 1 ; id <= maxplayers ; id++)
- if(is_user_connected(id))
- if(get_user_flags(id) & ADMIN_LEVEL_D)
- get_user_name(id, adminnames[count++], 31)
- len = format(message, 255, "%s SUPER VIPS ONLINE: ",COLOR)
- if(count > 0) {
- for(x = 0 ; x < count ; x++) {
- len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
- if(len > 96 ) {
- print_message(user, message)
- len = format(message, 255, "%s ",COLOR)
- }
- }
- print_message(user, message)
- }
- else {
- len += format(message[len], 255-len, "Sem Super Vips online.")
- print_message(user, message)
- }
- get_cvar_string("amx_contactinfo", contact, 63)
- if(contact[0]) {
- format(contactinfo, 111, "%s Contacto Mail Admin: %s", COLOR, contact)
- print_message(user, contactinfo)
- }
- }
- // Membros
- public print_membrolist(user)
- {
- new adminnames[33][32]
- new message[256]
- new contactinfo[256], contact[112]
- new id, count, x, len
- for(id = 1 ; id <= maxplayers ; id++)
- if(is_user_connected(id))
- if(get_user_flags(id) & ADMIN_LEVEL_E)
- get_user_name(id, adminnames[count++], 31)
- len = format(message, 255, "%s MEMBROS ONLINE: ",COLOR)
- if(count > 0) {
- for(x = 0 ; x < count ; x++) {
- len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
- if(len > 96 ) {
- print_message(user, message)
- len = format(message, 255, "%s ",COLOR)
- }
- }
- print_message(user, message)
- }
- else {
- len += format(message[len], 255-len, "Sem Membros online.")
- print_message(user, message)
- }
- get_cvar_string("amx_contactinfo", contact, 63)
- if(contact[0]) {
- format(contactinfo, 111, "%s Contacto Mail Admin: %s", COLOR, contact)
- print_message(user, contactinfo)
- }
- }
- //
- print_message(id, msg[]) {
- message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
- write_byte(id)
- write_string(msg)
- message_end()
- }
- stock 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") //Verde
- replace_all(msg, 190, "!y", "^1") //Amarelo
- replace_all(msg, 190, "!team", "^3") //Cor das Equipas
- 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();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement