Mensajes: 208
Temas: 56
Registro en: Nov 2018
Reputación:
1
buenas tengo este sistema de rangos + menu con extra items que se compran con aps pero le quiero agregar que tambien se compren con dinero osea que se compren con aps y dinero no se si me explique bien pero espero que me entiendan
Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> #include <hamsandwich> #include <fun> new const PLUGIN [] = "Rangos CS:GO" new const AUTHOR [] = "kikizon" /* ========== [CONSTANTES] ========== */ new const Prefijo [] = "^1[^4ProGaming^1]" // Prefijo en say //new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP // Natives // native give_railcannon ( id ); native get_thanatos ( id ); native Get_Balrog3 ( id ); native Get_AT4CS ( id ); native Get_Balrog11 ( id ); native give_janus3 ( id ); native Get_CompoundBow ( id ); native give_m32 ( id ); native ammopacks_jctf ( id ); native jctf_get_adrenaline ( id ); //native get_v3(id); // Fin // enum DETALLES { iNOMBRE [ 55 ], LIMITE_ITEM , COSTO_APS , } enum _ : ITEMS { RAILCANNON , THANATOS , BALROG3 , AT4CS , BALROG11 , JANUS3 , COMPOUNDBOW , M32 }; new const TIENDA_ITEMS [][ DETALLES ] = { { "RailCannon" , 1 , 22 }, { "Thanatos 7" , 1 , 26 }, { "Balrog 3" , 1 , 25 }, { "AT4cs" , 1 , 30 }, { "Balrog 11" , 1 , 21 }, { "Janus 3" , 1 , 20 }, { "CompoundBow" , 1 , 24 }, { "M32" , 1 , 35 } }; /* Limite */ new Limite [ 33 ][ ITEMS ]; /* ========== [CONST NOMBRES DE RANGOS] ========== */ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Distinguido" , 50 }, { "Cabo I" , 100 }, { "Cabo II" , 200 }, { "Sargento I" , 300 }, { "Sargento II" , 400 }, { "Sargento Mayor" , 500 }, { "Sargento Mayor III" , 600 }, { "Sargento Mayor II" , 700 }, { "Sargento Mayor I" , 800 }, { "Sargento Elite" , 900 }, { "Sargento Master" , 1000 }, { "Teniente" , 1200 }, { "Teniente I" , 1400 }, { "Capitan" , 1600 }, { "Mayor" , 1800 }, { "Teniente Coronel" , 2000 }, { "Coronel" , 2300 }, { "General II" , 2600 }, { "General I" , 2800 }, { "Mayor General" , 3000 }, { "General en Jefe" , 3400 }, { "Comandante" , 3800 }, { "Experto" , 4200 }, { "Silver IV" , 4700 }, { "Silver III" , 5200 }, { "Silver II" , 5700 }, { "Silver I" , 6200 }, { "Silver Elite" , 6800 }, { "Silver Elite Master" , 7400 }, { "Gold Nova I" , 8100 }, { "Gold Nova II" , 8800 }, { "Gold Nova III" , 9500 }, { "Gold Nova Master" , 10300 }, { "Master Guardian I" , 11100 }, { "Master Guardian II" , 12000 }, { "Master Guardian Elite" , 13000 }, { "Distinguido Master Guardian" , 15000 }, { "Aguila Legendaria" , 19000 }, { "Aguila Legendaria Master" , 23000 }, { "Master Supremo I" , 28000 }, { "Global Elite" , 34000 }, { "Global Master" , 41000 }, { "Boina Verde" , 50000 }, { "Profesional" , 59000 }, { "Ultimate" , 79000 }, { "Rambo" , 100000 }, { "Robocop" , 140000 }, { "Terminator" , 190000 }, { "Mercenario" , 240000 } } /* ========== [VARIABLES] ========== */ new g_rango [ 33 ], g_frags [ 33 ], g_ammopacks [ 33 ] new g_playername [ 33 ][ 32 ]; new g_vault enum { CAMPO_AMMOS = 0 , CAMPO_RANGO , CAMPO_FRAG , MAX_FIELDS } new g_campos [ MAX_FIELDS ] new bool : Remover [ 33 ] #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) /* Ganancia AmmoPacks */ new cvar_ammopacks_staff new cvar_ammopacks_full new cvar_ammopacks_premium new cvar_ammopacks_vip new cvar_ammopacks_usuario /* ========== [INIT] ========== */ public plugin_init () { register_concmd ( "amx_ammopacks" , "cmd_packs" , ADMIN_RCON , "<jugador> <cantidad>" ); RegisterHam ( Ham_Spawn , "player" , "PlayerSpawn" , 1 ) RegisterHam ( Ham_Killed , "player" , "PlayerKilled" , true ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say /hud" , "remover_hud" ) register_clcmd ( "radio1" , "TiendaItems" ) register_clcmd ( "nightvision" , "Menu_Principal" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ========== [EMPIEZA SECCION MODIFICABLE] ========== */ cvar_ammopacks_staff = register_cvar ( "amx_ammopacks_staff" , "5" , ADMIN_RCON ); cvar_ammopacks_full = register_cvar ( "amx_ammopacks_full" , "4" , ADMIN_RCON ); cvar_ammopacks_premium = register_cvar ( "amx_ammopacks_premium" , "3" , ADMIN_RCON ); cvar_ammopacks_vip = register_cvar ( "amx_ammopacks_vip" , "2" , ADMIN_RCON ); cvar_ammopacks_usuario = register_cvar ( "amx_ammopacks_usuario" , "1" , ADMIN_RCON ); /* ========== [TERMINA SECCION MODIFICABLE] ========== */ g_vault = adv_vault_open ( "data_rangos" , false ) g_campos [ CAMPO_AMMOS ] = adv_vault_register_field ( g_vault , "AMMOS" ) g_campos [ CAMPO_RANGO ] = adv_vault_register_field ( g_vault , "RANGOS" ) g_campos [ CAMPO_FRAG ] = adv_vault_register_field ( g_vault , "FRAGS" ) adv_vault_init ( g_vault ) } /* ========== [PRECACHE]* ==========*/ //public plugin_precache() // precache_generic(Sonido) /* ========== [NATIVES]* ==========*/ public plugin_natives () { register_native ( "rangos_jctf" , "mi_rango" , 1 ) register_native ( "ammopacks_jctf" , "mi_ammopack" , 1 ) register_native ( "jctf_get_tienda" , "TiendaItems" , 1 ) } public PlayerSpawn ( id ) { for(new o = 0 ; o < ITEMS ; o ++) Limite [ id ][ o ] = 0 } public mi_rango ( id ) return Rangos [ g_rango [ id ]][ NOMBRE ] public mi_ammopack ( id ) return g_ammopacks [ id ] /* ========== [REMOVER HUD] ==========*/ public remover_hud ( id ) { if(! Remover [ id ]) { remove_task ( id + TASK_HUD ) chatcolor ( id , "%s Has desactivado el ^4hud de rangos" , Prefijo ) Remover [ id ] = true } else { set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) chatcolor ( id , "%s Has activado el ^4hud de rangos" , Prefijo ) Remover [ id ] = false } } /* ========== [HUD] ==========*/ public Rangos_Hud ( taskid ) { new id = ID_HUD if (! is_user_alive ( id )) { id = pev ( id , pev_iuser2 ) if (! is_user_alive ( id )) return; } if( id != ID_HUD ) { set_hudmessage ( 255 , 255 , 255 , 0.60 , 0.67 , 1 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Nombre: %s | Frags: %d | Rango: %s" , g_playername [ id ], g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 255 , 255 , 255 , - 1.0 , 0.87 , 0 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Rango: %s^nFrags: [%d / %d]" , Rangos [ g_rango [ id ]][ NOMBRE ], g_frags [ id ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ]) } } /* ========== [PUTINSERVER] ========== */ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 ; g_frags [ id ] = 0 ; g_ammopacks [ id ] = 0 ; Cargar ( id ) set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) } /* ========== [DISCONNECT] ========== */ public client_disconnect ( id ) { Guardar ( id ) remove_task ( id + TASK_HUD ) } /* ========== [ROUND END] ========== */ public logevent_round_end () { for(new id = 1 ; id <= get_maxplayers (); id ++) Guardar ( id ); } /* ========== [HAM KILLED] ========== */ public PlayerKilled ( victim , attacker , shouldgib ) { if(! is_user_connected ( attacker ) || ! is_user_connected ( victim ) || victim == attacker ) return HAM_IGNORED if( is_user_admin ( attacker )) { if( get_user_flags ( attacker ) & ADMIN_LEVEL_A ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_staff ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_B ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_full ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_C ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_premium ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_D ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_vip ) } else g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_usuario ) return HAM_IGNORED } /* ========== [DEATHMSG] ========== */ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ AumentarRango ( attacker ) } } /* ========== [UPDATE RANGO] ========== */ AumentarRango ( id ) { new Aumento = false while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ]) { Aumento = true g_rango [ id ]++ } if( Aumento ) { chatcolor ( id , "%s ¡Felicidades has ascendido al rango: ^4%s^1!" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) //client_cmd(id, "mp3 play ^"%s^"", Sonido) Aumento = false } } /* ========== [HOOK SAY & SAY_TEAM] ========== */ public message_saytext ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i ) || is_user_alive ( i ) != is_user_alive ( id )) continue get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } return PLUGIN_HANDLED_MAIN ; } public message_sayteam ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static playerTeamName [ 19 ] switch ( get_user_team ( id )) { case 1 : copy ( playerTeamName , 12 , "TT" ) case 2 : copy ( playerTeamName , 12 , "CT" ) default: copy ( playerTeamName , 11 , "Sin Equipo" ) } static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i )) continue; if ( get_user_team ( i ) == get_user_team ( id )) { if( is_user_admin ( i ) && is_user_alive ( id ) || ! is_user_alive ( i ) && ! is_user_alive ( id )) { get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } } } return PLUGIN_HANDLED_MAIN ; } public changeTeamInfo ( player , team []) { message_begin ( MSG_ONE , get_user_msgid ( "TeamInfo" ), _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , get_user_msgid ( "SayText" ), { 0 , 0 , 0 }, player ) write_byte ( player ) write_string ( message ) message_end () } /* ========== [GUARDADO] ========== */ Guardar ( id ) { adv_vault_set_start ( g_vault ) adv_vault_set_field ( g_vault , g_campos [ CAMPO_AMMOS ], g_ammopacks [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_RANGO ], g_rango [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_FRAG ], g_frags [ id ]) adv_vault_set_end ( g_vault , 0 , g_playername [ id ]) } Cargar ( id ) { if(! adv_vault_get_prepare ( g_vault , _ , g_playername [ id ])) return g_rango [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_RANGO ]) g_frags [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_FRAG ]) g_ammopacks [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_AMMOS ]) } public TiendaItems ( id ) { static sztext [ 70 ] new Menu , len [ 300 ] formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d" , g_ammopacks [ id ]) Menu = menu_create ( len , "TiendaItems_Handler" ) for(new i = 0 ; i < sizeof ( TIENDA_ITEMS ); i ++) { if( Limite [ id ][ i ] == 1 || g_ammopacks [ id ] < TIENDA_ITEMS [ i ][ COSTO_APS ]) format ( sztext , charsmax ( sztext ), "\d%s \d[APs %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ]); else format ( sztext , charsmax ( sztext ), "\w%s \r[APs %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ]); menu_additem ( Menu , sztext , _ , _ , menu_makecallback ( "tienda_callback" )); } menu_setprop ( Menu , MPROP_EXITNAME , "Cerrar" ); menu_display ( id , Menu ); return PLUGIN_HANDLED ; } public tienda_callback ( id , Menu , Item ) { if( g_ammopacks [ id ] < TIENDA_ITEMS [ Item ][ COSTO_APS ]) return ITEM_DISABLED ; return ITEM_ENABLED ; } public TiendaItems_Handler ( id , Menu , Item ) { if( Item == MENU_EXIT || ! is_user_alive ( id )) { menu_destroy ( Menu ); return PLUGIN_HANDLED ; } static cost cost = TIENDA_ITEMS [ Item ][ COSTO_APS ]; if( Limite [ id ][ Item ] == TIENDA_ITEMS [ Item ][ LIMITE_ITEM ]) { chatcolor ( id , "%s Ya has comprado este item especial." , Prefijo ) TiendaItems ( id ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ); menu_destroy ( Menu ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ) { switch( Item ) { case RAILCANNON : drop_weapons ( id , 1 ), give_railcannon ( id ) case THANATOS : drop_weapons ( id , 1 ), get_thanatos ( id ) case BALROG3 : drop_weapons ( id , 1 ), Get_Balrog3 ( id ) case AT4CS : drop_weapons ( id , 1 ), Get_AT4CS ( id ) case BALROG11 : drop_weapons ( id , 1 ), Get_Balrog11 ( id ) case JANUS3 : drop_weapons ( id , 1 ), give_janus3 ( id ) case COMPOUNDBOW : drop_weapons ( id , 1 ), Get_CompoundBow ( id ) case M32 : drop_weapons ( id , 1 ), give_m32 ( id ) } Limite [ id ][ Item ]++ g_ammopacks [ id ] -= cost chatcolor ( id , "%s Has comprado el item ^4%s^1." , Prefijo , TIENDA_ITEMS [ Item ][ iNOMBRE ]) return PLUGIN_HANDLED } public cmd_packs ( iId , level , cid ) { if(! cmd_access ( iId , level , cid , 2 ) ) return PLUGIN_HANDLED ; new target [ 33 ], cantidad [ 10 ], packs , player ; read_argv ( 1 , target , charsmax ( target ) ); read_argv ( 2 , cantidad , charsmax ( cantidad ) ); player = cmd_target ( iId , target , CMDTARGET_ALLOW_SELF ); packs = str_to_num ( cantidad ); if(! player ) return PLUGIN_HANDLED ; new TargetName [ 33 ]; get_user_name ( player , TargetName , charsmax ( TargetName ) ); new AdminName [ 33 ]; get_user_name ( iId , AdminName , charsmax ( AdminName ) ); chatcolor ( 0 , "%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." , Prefijo , AdminName , packs , packs > 1 < packs ? "ammopacks" : "ammopack" , TargetName ); g_ammopacks [ player ] += packs ; return PLUGIN_HANDLED ; } /* ========== [STOCKS] ========== */ // stock de chatcolor stock chatcolor ( 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" ); // Default replace_all ( msg , 190 , "!t" , "^3" ); // Color del Equipo 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 (); } } } } stock ValidMessage ( text [], maxcount ) { static len , i , count len = strlen ( text ) count = 0 if (! len ) return false ; for ( i = 0 ; i < len ; i ++) { if ( text [ i ] != ' ' ) { count ++ if ( count >= maxcount ) return true ; } } return false ; } public Menu_Principal ( iId ) { new menu , len [ 300 ]; formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%" , jctf_get_adrenaline ( iId )); menu = menu_create ( len , "MenuPrincipal_Handler" ); menu_additem ( menu , "\wComprar \rArmas Especiales" , "0" , 0 ); menu_additem ( menu , "\wUsar \rAdrenalina" , "1" , 0 ); menu_additem ( menu , "\wNuestras \rServers" , "2" , 0 ); menu_additem ( menu , "\wDropear \rBandera" , "3" , 0 ); menu_additem ( menu , "\wReiniciar \rScore" , "4" , 0 ); menu_additem ( menu , "\wVer \rTop 15" , "5" ); menu_additem ( menu , "\wVer \rRankstats" , "6" ); menu_additem ( menu , "\wPanel \rAdmin" , "7" , ADMIN_KICK ); menu_setprop ( menu , MPROP_EXITNAME , "Salir" ); menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL ); menu_display ( iId , menu , 0 ); return PLUGIN_HANDLED ; } public MenuPrincipal_Handler ( iId , menu , item ) { if( item == MENU_EXIT ) { menu_destroy ( menu ); return PLUGIN_HANDLED ; } switch( item ) { case 0 : TiendaItems ( iId ); case 1 : client_cmd ( iId , "adrenaline" ); case 2 : client_cmd ( iId , "say servers" ); case 3 : client_cmd ( iId , "say /dropflag" ); case 4 : client_cmd ( iId , "say rs" ); case 5 : client_cmd ( iId , "say top" ); case 6 : client_cmd ( iId , "say /rankstats" ); case 7 : client_cmd ( iId , "amxmodmenu" ); } return PLUGIN_HANDLED ; } stock drop_weapons ( id , dropwhat ) { static weapons [ 32 ], num , i , weaponid ; num = 0 ; get_user_weapons ( id , weapons , num ); const PRIMARY_WEAPONS_BIT_SUM = ( 1 << CSW_SCOUT )|( 1 << CSW_XM1014 )|( 1 << CSW_MAC10 )|( 1 << CSW_MAC10 )|( 1 << CSW_UMP45 )|( 1 << CSW_SG550 )|( 1 << CSW_MAC10 )|( 1 << CSW_FAMAS )|( 1 << CSW_AWP )|( 1 << CSW_MP5NAVY )|( 1 << CSW_M249 )| ( 1 << CSW_M3 )|( 1 << CSW_M4A1 )|( 1 << CSW_TMP )|( 1 << CSW_G3SG1 )|( 1 << CSW_SG552 )|( 1 << CSW_AK47 )|( 1 << CSW_P90 ); const SECONDARY_WEAPONS_BIT_SUM = ( 1 << CSW_P228 )|( 1 << CSW_ELITE )|( 1 << CSW_FIVESEVEN )|( 1 << CSW_USP )|( 1 << CSW_GLOCK18 )|( 1 << CSW_DEAGLE ); for ( i = 0 ; i < num ; i ++) { weaponid = weapons [ i ]; if (( dropwhat == 1 && (( 1 << weaponid ) & PRIMARY_WEAPONS_BIT_SUM )) || ( dropwhat == 2 && (( 1 << weaponid ) & SECONDARY_WEAPONS_BIT_SUM ))) { static wname [ 32 ]; get_weaponname ( weaponid , wname , sizeof wname - 1 ); engclient_cmd ( id , "drop" , wname ); } } }
Aprendiendo scripting || Tratare ayudar en lo que pueda || PD: Soy pobre
Mensajes: 410
Temas: 9
Registro en: Apr 2015
Reputación:
5
Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> #include <hamsandwich> #include <fun> #include <cstrike> new const PLUGIN [] = "Rangos CS:GO" new const AUTHOR [] = "kikizon" /* ========== [CONSTANTES] ========== */ new const Prefijo [] = "^1[^4ProGaming^1]" // Prefijo en say //new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP // Natives // native give_railcannon ( id ); native get_thanatos ( id ); native Get_Balrog3 ( id ); native Get_AT4CS ( id ); native Get_Balrog11 ( id ); native give_janus3 ( id ); native Get_CompoundBow ( id ); native give_m32 ( id ); native ammopacks_jctf ( id ); native jctf_get_adrenaline ( id ); //native get_v3(id); // Fin // enum DETALLES { iNOMBRE [ 55 ], LIMITE_ITEM , COSTO_APS , COSTO_MONEY } enum _ : ITEMS { RAILCANNON , THANATOS , BALROG3 , AT4CS , BALROG11 , JANUS3 , COMPOUNDBOW , M32 }; new const TIENDA_ITEMS [][ DETALLES ] = { { "RailCannon" , 1 , 22 , 1000 }, { "Thanatos 7" , 1 , 26 , 2000 }, { "Balrog 3" , 1 , 25 , 3000 }, { "AT4cs" , 1 , 30 , 4000 }, { "Balrog 11" , 1 , 21 , 5000 }, { "Janus 3" , 1 , 20 , 6000 }, { "CompoundBow" , 1 , 24 , 7000 }, { "M32" , 1 , 35 , 8000 } }; /* Limite */ new Limite [ 33 ][ ITEMS ]; /* ========== [CONST NOMBRES DE RANGOS] ========== */ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Distinguido" , 50 }, { "Cabo I" , 100 }, { "Cabo II" , 200 }, { "Sargento I" , 300 }, { "Sargento II" , 400 }, { "Sargento Mayor" , 500 }, { "Sargento Mayor III" , 600 }, { "Sargento Mayor II" , 700 }, { "Sargento Mayor I" , 800 }, { "Sargento Elite" , 900 }, { "Sargento Master" , 1000 }, { "Teniente" , 1200 }, { "Teniente I" , 1400 }, { "Capitan" , 1600 }, { "Mayor" , 1800 }, { "Teniente Coronel" , 2000 }, { "Coronel" , 2300 }, { "General II" , 2600 }, { "General I" , 2800 }, { "Mayor General" , 3000 }, { "General en Jefe" , 3400 }, { "Comandante" , 3800 }, { "Experto" , 4200 }, { "Silver IV" , 4700 }, { "Silver III" , 5200 }, { "Silver II" , 5700 }, { "Silver I" , 6200 }, { "Silver Elite" , 6800 }, { "Silver Elite Master" , 7400 }, { "Gold Nova I" , 8100 }, { "Gold Nova II" , 8800 }, { "Gold Nova III" , 9500 }, { "Gold Nova Master" , 10300 }, { "Master Guardian I" , 11100 }, { "Master Guardian II" , 12000 }, { "Master Guardian Elite" , 13000 }, { "Distinguido Master Guardian" , 15000 }, { "Aguila Legendaria" , 19000 }, { "Aguila Legendaria Master" , 23000 }, { "Master Supremo I" , 28000 }, { "Global Elite" , 34000 }, { "Global Master" , 41000 }, { "Boina Verde" , 50000 }, { "Profesional" , 59000 }, { "Ultimate" , 79000 }, { "Rambo" , 100000 }, { "Robocop" , 140000 }, { "Terminator" , 190000 }, { "Mercenario" , 240000 } } /* ========== [VARIABLES] ========== */ new g_rango [ 33 ], g_frags [ 33 ], g_ammopacks [ 33 ] new g_playername [ 33 ][ 32 ]; new g_vault enum { CAMPO_AMMOS = 0 , CAMPO_RANGO , CAMPO_FRAG , MAX_FIELDS } new g_campos [ MAX_FIELDS ] new bool : Remover [ 33 ] #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) /* Ganancia AmmoPacks */ new cvar_ammopacks_staff new cvar_ammopacks_full new cvar_ammopacks_premium new cvar_ammopacks_vip new cvar_ammopacks_usuario /* ========== [INIT] ========== */ public plugin_init () { register_concmd ( "amx_ammopacks" , "cmd_packs" , ADMIN_RCON , "<jugador> <cantidad>" ); RegisterHam ( Ham_Spawn , "player" , "PlayerSpawn" , 1 ) RegisterHam ( Ham_Killed , "player" , "PlayerKilled" , true ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say /hud" , "remover_hud" ) register_clcmd ( "radio1" , "TiendaItems" ) register_clcmd ( "nightvision" , "Menu_Principal" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ========== [EMPIEZA SECCION MODIFICABLE] ========== */ cvar_ammopacks_staff = register_cvar ( "amx_ammopacks_staff" , "5" , ADMIN_RCON ); cvar_ammopacks_full = register_cvar ( "amx_ammopacks_full" , "4" , ADMIN_RCON ); cvar_ammopacks_premium = register_cvar ( "amx_ammopacks_premium" , "3" , ADMIN_RCON ); cvar_ammopacks_vip = register_cvar ( "amx_ammopacks_vip" , "2" , ADMIN_RCON ); cvar_ammopacks_usuario = register_cvar ( "amx_ammopacks_usuario" , "1" , ADMIN_RCON ); /* ========== [TERMINA SECCION MODIFICABLE] ========== */ g_vault = adv_vault_open ( "data_rangos" , false ) g_campos [ CAMPO_AMMOS ] = adv_vault_register_field ( g_vault , "AMMOS" ) g_campos [ CAMPO_RANGO ] = adv_vault_register_field ( g_vault , "RANGOS" ) g_campos [ CAMPO_FRAG ] = adv_vault_register_field ( g_vault , "FRAGS" ) adv_vault_init ( g_vault ) } /* ========== [PRECACHE]* ==========*/ //public plugin_precache() // precache_generic(Sonido) /* ========== [NATIVES]* ==========*/ public plugin_natives () { register_native ( "rangos_jctf" , "mi_rango" , 1 ) register_native ( "ammopacks_jctf" , "mi_ammopack" , 1 ) register_native ( "jctf_get_tienda" , "TiendaItems" , 1 ) } public PlayerSpawn ( id ) { for(new o = 0 ; o < ITEMS ; o ++) Limite [ id ][ o ] = 0 } public mi_rango ( id ) return Rangos [ g_rango [ id ]][ NOMBRE ] public mi_ammopack ( id ) return g_ammopacks [ id ] /* ========== [REMOVER HUD] ==========*/ public remover_hud ( id ) { if(! Remover [ id ]) { remove_task ( id + TASK_HUD ) chatcolor ( id , "%s Has desactivado el ^4hud de rangos" , Prefijo ) Remover [ id ] = true } else { set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) chatcolor ( id , "%s Has activado el ^4hud de rangos" , Prefijo ) Remover [ id ] = false } } /* ========== [HUD] ==========*/ public Rangos_Hud ( taskid ) { new id = ID_HUD if (! is_user_alive ( id )) { id = pev ( id , pev_iuser2 ) if (! is_user_alive ( id )) return; } if( id != ID_HUD ) { set_hudmessage ( 255 , 255 , 255 , 0.60 , 0.67 , 1 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Nombre: %s | Frags: %d | Rango: %s" , g_playername [ id ], g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 255 , 255 , 255 , - 1.0 , 0.87 , 0 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Rango: %s^nFrags: [%d / %d]" , Rangos [ g_rango [ id ]][ NOMBRE ], g_frags [ id ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ]) } } /* ========== [PUTINSERVER] ========== */ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 ; g_frags [ id ] = 0 ; g_ammopacks [ id ] = 0 ; Cargar ( id ) set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) } /* ========== [DISCONNECT] ========== */ public client_disconnect ( id ) { Guardar ( id ) remove_task ( id + TASK_HUD ) } /* ========== [ROUND END] ========== */ public logevent_round_end () { for(new id = 1 ; id <= get_maxplayers (); id ++) Guardar ( id ); } /* ========== [HAM KILLED] ========== */ public PlayerKilled ( victim , attacker , shouldgib ) { if(! is_user_connected ( attacker ) || ! is_user_connected ( victim ) || victim == attacker ) return HAM_IGNORED if( is_user_admin ( attacker )) { if( get_user_flags ( attacker ) & ADMIN_LEVEL_A ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_staff ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_B ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_full ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_C ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_premium ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_D ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_vip ) } else g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_usuario ) return HAM_IGNORED } /* ========== [DEATHMSG] ========== */ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ AumentarRango ( attacker ) } } /* ========== [UPDATE RANGO] ========== */ AumentarRango ( id ) { new Aumento = false while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ]) { Aumento = true g_rango [ id ]++ } if( Aumento ) { chatcolor ( id , "%s ¡Felicidades has ascendido al rango: ^4%s^1!" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) //client_cmd(id, "mp3 play ^"%s^"", Sonido) Aumento = false } } /* ========== [HOOK SAY & SAY_TEAM] ========== */ public message_saytext ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i ) || is_user_alive ( i ) != is_user_alive ( id )) continue get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } return PLUGIN_HANDLED_MAIN ; } public message_sayteam ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static playerTeamName [ 19 ] switch ( get_user_team ( id )) { case 1 : copy ( playerTeamName , 12 , "TT" ) case 2 : copy ( playerTeamName , 12 , "CT" ) default: copy ( playerTeamName , 11 , "Sin Equipo" ) } static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i )) continue; if ( get_user_team ( i ) == get_user_team ( id )) { if( is_user_admin ( i ) && is_user_alive ( id ) || ! is_user_alive ( i ) && ! is_user_alive ( id )) { get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } } } return PLUGIN_HANDLED_MAIN ; } public changeTeamInfo ( player , team []) { message_begin ( MSG_ONE , get_user_msgid ( "TeamInfo" ), _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , get_user_msgid ( "SayText" ), { 0 , 0 , 0 }, player ) write_byte ( player ) write_string ( message ) message_end () } /* ========== [GUARDADO] ========== */ Guardar ( id ) { adv_vault_set_start ( g_vault ) adv_vault_set_field ( g_vault , g_campos [ CAMPO_AMMOS ], g_ammopacks [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_RANGO ], g_rango [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_FRAG ], g_frags [ id ]) adv_vault_set_end ( g_vault , 0 , g_playername [ id ]) } Cargar ( id ) { if(! adv_vault_get_prepare ( g_vault , _ , g_playername [ id ])) return g_rango [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_RANGO ]) g_frags [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_FRAG ]) g_ammopacks [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_AMMOS ]) } public TiendaItems ( id ) { static sztext [ 70 ] new Menu , len [ 300 ] formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d" , g_ammopacks [ id ]) Menu = menu_create ( len , "TiendaItems_Handler" ) for(new i = 0 ; i < sizeof ( TIENDA_ITEMS ); i ++) { if( Limite [ id ][ i ] == 1 || g_ammopacks [ id ] < TIENDA_ITEMS [ i ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ i ][ COSTO_MONEY ]) format ( sztext , charsmax ( sztext ), "\d%s \d[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); else format ( sztext , charsmax ( sztext ), "\w%s \r[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); menu_additem ( Menu , sztext , _ , _ , menu_makecallback ( "tienda_callback" )); } menu_setprop ( Menu , MPROP_EXITNAME , "Cerrar" ); menu_display ( id , Menu ); return PLUGIN_HANDLED ; } public tienda_callback ( id , Menu , Item ) { if( g_ammopacks [ id ] < TIENDA_ITEMS [ Item ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return ITEM_DISABLED ; return ITEM_ENABLED ; } public TiendaItems_Handler ( id , Menu , Item ) { if( Item == MENU_EXIT || ! is_user_alive ( id )) { menu_destroy ( Menu ); return PLUGIN_HANDLED ; } static cost cost = TIENDA_ITEMS [ Item ][ COSTO_APS ]; if( Limite [ id ][ Item ] == TIENDA_ITEMS [ Item ][ LIMITE_ITEM ]) { chatcolor ( id , "%s Ya has comprado este item especial." , Prefijo ) TiendaItems ( id ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ); menu_destroy ( Menu ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ) { switch( Item ) { case RAILCANNON : drop_weapons ( id , 1 ), give_railcannon ( id ) case THANATOS : drop_weapons ( id , 1 ), get_thanatos ( id ) case BALROG3 : drop_weapons ( id , 1 ), Get_Balrog3 ( id ) case AT4CS : drop_weapons ( id , 1 ), Get_AT4CS ( id ) case BALROG11 : drop_weapons ( id , 1 ), Get_Balrog11 ( id ) case JANUS3 : drop_weapons ( id , 1 ), give_janus3 ( id ) case COMPOUNDBOW : drop_weapons ( id , 1 ), Get_CompoundBow ( id ) case M32 : drop_weapons ( id , 1 ), give_m32 ( id ) } Limite [ id ][ Item ]++ g_ammopacks [ id ] -= cost chatcolor ( id , "%s Has comprado el item ^4%s^1." , Prefijo , TIENDA_ITEMS [ Item ][ iNOMBRE ]) cs_set_user_money ( id , cs_get_user_money ( id ) - TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return PLUGIN_HANDLED } public cmd_packs ( iId , level , cid ) { if(! cmd_access ( iId , level , cid , 2 ) ) return PLUGIN_HANDLED ; new target [ 33 ], cantidad [ 10 ], packs , player ; read_argv ( 1 , target , charsmax ( target ) ); read_argv ( 2 , cantidad , charsmax ( cantidad ) ); player = cmd_target ( iId , target , CMDTARGET_ALLOW_SELF ); packs = str_to_num ( cantidad ); if(! player ) return PLUGIN_HANDLED ; new TargetName [ 33 ]; get_user_name ( player , TargetName , charsmax ( TargetName ) ); new AdminName [ 33 ]; get_user_name ( iId , AdminName , charsmax ( AdminName ) ); chatcolor ( 0 , "%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." , Prefijo , AdminName , packs , packs > 1 < packs ? "ammopacks" : "ammopack" , TargetName ); g_ammopacks [ player ] += packs ; return PLUGIN_HANDLED ; } /* ========== [STOCKS] ========== */ // stock de chatcolor stock chatcolor ( 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" ); // Default replace_all ( msg , 190 , "!t" , "^3" ); // Color del Equipo 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 (); } } } } stock ValidMessage ( text [], maxcount ) { static len , i , count len = strlen ( text ) count = 0 if (! len ) return false ; for ( i = 0 ; i < len ; i ++) { if ( text [ i ] != ' ' ) { count ++ if ( count >= maxcount ) return true ; } } return false ; } public Menu_Principal ( iId ) { new menu , len [ 300 ]; formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%" , jctf_get_adrenaline ( iId )); menu = menu_create ( len , "MenuPrincipal_Handler" ); menu_additem ( menu , "\wComprar \rArmas Especiales" , "0" , 0 ); menu_additem ( menu , "\wUsar \rAdrenalina" , "1" , 0 ); menu_additem ( menu , "\wNuestras \rServers" , "2" , 0 ); menu_additem ( menu , "\wDropear \rBandera" , "3" , 0 ); menu_additem ( menu , "\wReiniciar \rScore" , "4" , 0 ); menu_additem ( menu , "\wVer \rTop 15" , "5" ); menu_additem ( menu , "\wVer \rRankstats" , "6" ); menu_additem ( menu , "\wPanel \rAdmin" , "7" , ADMIN_KICK ); menu_setprop ( menu , MPROP_EXITNAME , "Salir" ); menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL ); menu_display ( iId , menu , 0 ); return PLUGIN_HANDLED ; } public MenuPrincipal_Handler ( iId , menu , item ) { if( item == MENU_EXIT ) { menu_destroy ( menu ); return PLUGIN_HANDLED ; } switch( item ) { case 0 : TiendaItems ( iId ); case 1 : client_cmd ( iId , "adrenaline" ); case 2 : client_cmd ( iId , "say servers" ); case 3 : client_cmd ( iId , "say /dropflag" ); case 4 : client_cmd ( iId , "say rs" ); case 5 : client_cmd ( iId , "say top" ); case 6 : client_cmd ( iId , "say /rankstats" ); case 7 : client_cmd ( iId , "amxmodmenu" ); } return PLUGIN_HANDLED ; } stock drop_weapons ( id , dropwhat ) { static weapons [ 32 ], num , i , weaponid ; num = 0 ; get_user_weapons ( id , weapons , num ); const PRIMARY_WEAPONS_BIT_SUM = ( 1 << CSW_SCOUT )|( 1 << CSW_XM1014 )|( 1 << CSW_MAC10 )|( 1 << CSW_MAC10 )|( 1 << CSW_UMP45 )|( 1 << CSW_SG550 )|( 1 << CSW_MAC10 )|( 1 << CSW_FAMAS )|( 1 << CSW_AWP )|( 1 << CSW_MP5NAVY )|( 1 << CSW_M249 )| ( 1 << CSW_M3 )|( 1 << CSW_M4A1 )|( 1 << CSW_TMP )|( 1 << CSW_G3SG1 )|( 1 << CSW_SG552 )|( 1 << CSW_AK47 )|( 1 << CSW_P90 ); const SECONDARY_WEAPONS_BIT_SUM = ( 1 << CSW_P228 )|( 1 << CSW_ELITE )|( 1 << CSW_FIVESEVEN )|( 1 << CSW_USP )|( 1 << CSW_GLOCK18 )|( 1 << CSW_DEAGLE ); for ( i = 0 ; i < num ; i ++) { weaponid = weapons [ i ]; if (( dropwhat == 1 && (( 1 << weaponid ) & PRIMARY_WEAPONS_BIT_SUM )) || ( dropwhat == 2 && (( 1 << weaponid ) & SECONDARY_WEAPONS_BIT_SUM ))) { static wname [ 32 ]; get_weaponname ( weaponid , wname , sizeof wname - 1 ); engclient_cmd ( id , "drop" , wname ); } } }
Mensajes: 208
Temas: 56
Registro en: Nov 2018
Reputación:
1
(27/12/2018, 03:57 PM) SthoNy escribió: Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> #include <hamsandwich> #include <fun> #include <cstrike> new const PLUGIN [] = "Rangos CS:GO" new const AUTHOR [] = "kikizon" /* ========== [CONSTANTES] ========== */ new const Prefijo [] = "^1[^4ProGaming^1]" // Prefijo en say //new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP // Natives // native give_railcannon ( id ); native get_thanatos ( id ); native Get_Balrog3 ( id ); native Get_AT4CS ( id ); native Get_Balrog11 ( id ); native give_janus3 ( id ); native Get_CompoundBow ( id ); native give_m32 ( id ); native ammopacks_jctf ( id ); native jctf_get_adrenaline ( id ); //native get_v3(id); // Fin // enum DETALLES { iNOMBRE [ 55 ], LIMITE_ITEM , COSTO_APS , COSTO_MONEY } enum _ : ITEMS { RAILCANNON , THANATOS , BALROG3 , AT4CS , BALROG11 , JANUS3 , COMPOUNDBOW , M32 }; new const TIENDA_ITEMS [][ DETALLES ] = { { "RailCannon" , 1 , 22 , 1000 }, { "Thanatos 7" , 1 , 26 , 2000 }, { "Balrog 3" , 1 , 25 , 3000 }, { "AT4cs" , 1 , 30 , 4000 }, { "Balrog 11" , 1 , 21 , 5000 }, { "Janus 3" , 1 , 20 , 6000 }, { "CompoundBow" , 1 , 24 , 7000 }, { "M32" , 1 , 35 , 8000 } }; /* Limite */ new Limite [ 33 ][ ITEMS ]; /* ========== [CONST NOMBRES DE RANGOS] ========== */ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Distinguido" , 50 }, { "Cabo I" , 100 }, { "Cabo II" , 200 }, { "Sargento I" , 300 }, { "Sargento II" , 400 }, { "Sargento Mayor" , 500 }, { "Sargento Mayor III" , 600 }, { "Sargento Mayor II" , 700 }, { "Sargento Mayor I" , 800 }, { "Sargento Elite" , 900 }, { "Sargento Master" , 1000 }, { "Teniente" , 1200 }, { "Teniente I" , 1400 }, { "Capitan" , 1600 }, { "Mayor" , 1800 }, { "Teniente Coronel" , 2000 }, { "Coronel" , 2300 }, { "General II" , 2600 }, { "General I" , 2800 }, { "Mayor General" , 3000 }, { "General en Jefe" , 3400 }, { "Comandante" , 3800 }, { "Experto" , 4200 }, { "Silver IV" , 4700 }, { "Silver III" , 5200 }, { "Silver II" , 5700 }, { "Silver I" , 6200 }, { "Silver Elite" , 6800 }, { "Silver Elite Master" , 7400 }, { "Gold Nova I" , 8100 }, { "Gold Nova II" , 8800 }, { "Gold Nova III" , 9500 }, { "Gold Nova Master" , 10300 }, { "Master Guardian I" , 11100 }, { "Master Guardian II" , 12000 }, { "Master Guardian Elite" , 13000 }, { "Distinguido Master Guardian" , 15000 }, { "Aguila Legendaria" , 19000 }, { "Aguila Legendaria Master" , 23000 }, { "Master Supremo I" , 28000 }, { "Global Elite" , 34000 }, { "Global Master" , 41000 }, { "Boina Verde" , 50000 }, { "Profesional" , 59000 }, { "Ultimate" , 79000 }, { "Rambo" , 100000 }, { "Robocop" , 140000 }, { "Terminator" , 190000 }, { "Mercenario" , 240000 } } /* ========== [VARIABLES] ========== */ new g_rango [ 33 ], g_frags [ 33 ], g_ammopacks [ 33 ] new g_playername [ 33 ][ 32 ]; new g_vault enum { CAMPO_AMMOS = 0 , CAMPO_RANGO , CAMPO_FRAG , MAX_FIELDS } new g_campos [ MAX_FIELDS ] new bool : Remover [ 33 ] #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) /* Ganancia AmmoPacks */ new cvar_ammopacks_staff new cvar_ammopacks_full new cvar_ammopacks_premium new cvar_ammopacks_vip new cvar_ammopacks_usuario /* ========== [INIT] ========== */ public plugin_init () { register_concmd ( "amx_ammopacks" , "cmd_packs" , ADMIN_RCON , "<jugador> <cantidad>" ); RegisterHam ( Ham_Spawn , "player" , "PlayerSpawn" , 1 ) RegisterHam ( Ham_Killed , "player" , "PlayerKilled" , true ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say /hud" , "remover_hud" ) register_clcmd ( "radio1" , "TiendaItems" ) register_clcmd ( "nightvision" , "Menu_Principal" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ========== [EMPIEZA SECCION MODIFICABLE] ========== */ cvar_ammopacks_staff = register_cvar ( "amx_ammopacks_staff" , "5" , ADMIN_RCON ); cvar_ammopacks_full = register_cvar ( "amx_ammopacks_full" , "4" , ADMIN_RCON ); cvar_ammopacks_premium = register_cvar ( "amx_ammopacks_premium" , "3" , ADMIN_RCON ); cvar_ammopacks_vip = register_cvar ( "amx_ammopacks_vip" , "2" , ADMIN_RCON ); cvar_ammopacks_usuario = register_cvar ( "amx_ammopacks_usuario" , "1" , ADMIN_RCON ); /* ========== [TERMINA SECCION MODIFICABLE] ========== */ g_vault = adv_vault_open ( "data_rangos" , false ) g_campos [ CAMPO_AMMOS ] = adv_vault_register_field ( g_vault , "AMMOS" ) g_campos [ CAMPO_RANGO ] = adv_vault_register_field ( g_vault , "RANGOS" ) g_campos [ CAMPO_FRAG ] = adv_vault_register_field ( g_vault , "FRAGS" ) adv_vault_init ( g_vault ) } /* ========== [PRECACHE]* ==========*/ //public plugin_precache() // precache_generic(Sonido) /* ========== [NATIVES]* ==========*/ public plugin_natives () { register_native ( "rangos_jctf" , "mi_rango" , 1 ) register_native ( "ammopacks_jctf" , "mi_ammopack" , 1 ) register_native ( "jctf_get_tienda" , "TiendaItems" , 1 ) } public PlayerSpawn ( id ) { for(new o = 0 ; o < ITEMS ; o ++) Limite [ id ][ o ] = 0 } public mi_rango ( id ) return Rangos [ g_rango [ id ]][ NOMBRE ] public mi_ammopack ( id ) return g_ammopacks [ id ] /* ========== [REMOVER HUD] ==========*/ public remover_hud ( id ) { if(! Remover [ id ]) { remove_task ( id + TASK_HUD ) chatcolor ( id , "%s Has desactivado el ^4hud de rangos" , Prefijo ) Remover [ id ] = true } else { set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) chatcolor ( id , "%s Has activado el ^4hud de rangos" , Prefijo ) Remover [ id ] = false } } /* ========== [HUD] ==========*/ public Rangos_Hud ( taskid ) { new id = ID_HUD if (! is_user_alive ( id )) { id = pev ( id , pev_iuser2 ) if (! is_user_alive ( id )) return; } if( id != ID_HUD ) { set_hudmessage ( 255 , 255 , 255 , 0.60 , 0.67 , 1 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Nombre: %s | Frags: %d | Rango: %s" , g_playername [ id ], g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 255 , 255 , 255 , - 1.0 , 0.87 , 0 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Rango: %s^nFrags: [%d / %d]" , Rangos [ g_rango [ id ]][ NOMBRE ], g_frags [ id ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ]) } } /* ========== [PUTINSERVER] ========== */ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 ; g_frags [ id ] = 0 ; g_ammopacks [ id ] = 0 ; Cargar ( id ) set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) } /* ========== [DISCONNECT] ========== */ public client_disconnect ( id ) { Guardar ( id ) remove_task ( id + TASK_HUD ) } /* ========== [ROUND END] ========== */ public logevent_round_end () { for(new id = 1 ; id <= get_maxplayers (); id ++) Guardar ( id ); } /* ========== [HAM KILLED] ========== */ public PlayerKilled ( victim , attacker , shouldgib ) { if(! is_user_connected ( attacker ) || ! is_user_connected ( victim ) || victim == attacker ) return HAM_IGNORED if( is_user_admin ( attacker )) { if( get_user_flags ( attacker ) & ADMIN_LEVEL_A ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_staff ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_B ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_full ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_C ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_premium ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_D ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_vip ) } else g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_usuario ) return HAM_IGNORED } /* ========== [DEATHMSG] ========== */ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ AumentarRango ( attacker ) } } /* ========== [UPDATE RANGO] ========== */ AumentarRango ( id ) { new Aumento = false while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ]) { Aumento = true g_rango [ id ]++ } if( Aumento ) { chatcolor ( id , "%s ¡Felicidades has ascendido al rango: ^4%s^1!" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) //client_cmd(id, "mp3 play ^"%s^"", Sonido) Aumento = false } } /* ========== [HOOK SAY & SAY_TEAM] ========== */ public message_saytext ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i ) || is_user_alive ( i ) != is_user_alive ( id )) continue get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } return PLUGIN_HANDLED_MAIN ; } public message_sayteam ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static playerTeamName [ 19 ] switch ( get_user_team ( id )) { case 1 : copy ( playerTeamName , 12 , "TT" ) case 2 : copy ( playerTeamName , 12 , "CT" ) default: copy ( playerTeamName , 11 , "Sin Equipo" ) } static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i )) continue; if ( get_user_team ( i ) == get_user_team ( id )) { if( is_user_admin ( i ) && is_user_alive ( id ) || ! is_user_alive ( i ) && ! is_user_alive ( id )) { get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } } } return PLUGIN_HANDLED_MAIN ; } public changeTeamInfo ( player , team []) { message_begin ( MSG_ONE , get_user_msgid ( "TeamInfo" ), _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , get_user_msgid ( "SayText" ), { 0 , 0 , 0 }, player ) write_byte ( player ) write_string ( message ) message_end () } /* ========== [GUARDADO] ========== */ Guardar ( id ) { adv_vault_set_start ( g_vault ) adv_vault_set_field ( g_vault , g_campos [ CAMPO_AMMOS ], g_ammopacks [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_RANGO ], g_rango [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_FRAG ], g_frags [ id ]) adv_vault_set_end ( g_vault , 0 , g_playername [ id ]) } Cargar ( id ) { if(! adv_vault_get_prepare ( g_vault , _ , g_playername [ id ])) return g_rango [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_RANGO ]) g_frags [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_FRAG ]) g_ammopacks [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_AMMOS ]) } public TiendaItems ( id ) { static sztext [ 70 ] new Menu , len [ 300 ] formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d" , g_ammopacks [ id ]) Menu = menu_create ( len , "TiendaItems_Handler" ) for(new i = 0 ; i < sizeof ( TIENDA_ITEMS ); i ++) { if( Limite [ id ][ i ] == 1 || g_ammopacks [ id ] < TIENDA_ITEMS [ i ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ i ][ COSTO_MONEY ]) format ( sztext , charsmax ( sztext ), "\d%s \d[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); else format ( sztext , charsmax ( sztext ), "\w%s \r[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); menu_additem ( Menu , sztext , _ , _ , menu_makecallback ( "tienda_callback" )); } menu_setprop ( Menu , MPROP_EXITNAME , "Cerrar" ); menu_display ( id , Menu ); return PLUGIN_HANDLED ; } public tienda_callback ( id , Menu , Item ) { if( g_ammopacks [ id ] < TIENDA_ITEMS [ Item ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return ITEM_DISABLED ; return ITEM_ENABLED ; } public TiendaItems_Handler ( id , Menu , Item ) { if( Item == MENU_EXIT || ! is_user_alive ( id )) { menu_destroy ( Menu ); return PLUGIN_HANDLED ; } static cost cost = TIENDA_ITEMS [ Item ][ COSTO_APS ]; if( Limite [ id ][ Item ] == TIENDA_ITEMS [ Item ][ LIMITE_ITEM ]) { chatcolor ( id , "%s Ya has comprado este item especial." , Prefijo ) TiendaItems ( id ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ); menu_destroy ( Menu ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ) { switch( Item ) { case RAILCANNON : drop_weapons ( id , 1 ), give_railcannon ( id ) case THANATOS : drop_weapons ( id , 1 ), get_thanatos ( id ) case BALROG3 : drop_weapons ( id , 1 ), Get_Balrog3 ( id ) case AT4CS : drop_weapons ( id , 1 ), Get_AT4CS ( id ) case BALROG11 : drop_weapons ( id , 1 ), Get_Balrog11 ( id ) case JANUS3 : drop_weapons ( id , 1 ), give_janus3 ( id ) case COMPOUNDBOW : drop_weapons ( id , 1 ), Get_CompoundBow ( id ) case M32 : drop_weapons ( id , 1 ), give_m32 ( id ) } Limite [ id ][ Item ]++ g_ammopacks [ id ] -= cost chatcolor ( id , "%s Has comprado el item ^4%s^1." , Prefijo , TIENDA_ITEMS [ Item ][ iNOMBRE ]) cs_set_user_money ( id , cs_get_user_money ( id ) - TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return PLUGIN_HANDLED } public cmd_packs ( iId , level , cid ) { if(! cmd_access ( iId , level , cid , 2 ) ) return PLUGIN_HANDLED ; new target [ 33 ], cantidad [ 10 ], packs , player ; read_argv ( 1 , target , charsmax ( target ) ); read_argv ( 2 , cantidad , charsmax ( cantidad ) ); player = cmd_target ( iId , target , CMDTARGET_ALLOW_SELF ); packs = str_to_num ( cantidad ); if(! player ) return PLUGIN_HANDLED ; new TargetName [ 33 ]; get_user_name ( player , TargetName , charsmax ( TargetName ) ); new AdminName [ 33 ]; get_user_name ( iId , AdminName , charsmax ( AdminName ) ); chatcolor ( 0 , "%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." , Prefijo , AdminName , packs , packs > 1 < packs ? "ammopacks" : "ammopack" , TargetName ); g_ammopacks [ player ] += packs ; return PLUGIN_HANDLED ; } /* ========== [STOCKS] ========== */ // stock de chatcolor stock chatcolor ( 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" ); // Default replace_all ( msg , 190 , "!t" , "^3" ); // Color del Equipo 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 (); } } } } stock ValidMessage ( text [], maxcount ) { static len , i , count len = strlen ( text ) count = 0 if (! len ) return false ; for ( i = 0 ; i < len ; i ++) { if ( text [ i ] != ' ' ) { count ++ if ( count >= maxcount ) return true ; } } return false ; } public Menu_Principal ( iId ) { new menu , len [ 300 ]; formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%" , jctf_get_adrenaline ( iId )); menu = menu_create ( len , "MenuPrincipal_Handler" ); menu_additem ( menu , "\wComprar \rArmas Especiales" , "0" , 0 ); menu_additem ( menu , "\wUsar \rAdrenalina" , "1" , 0 ); menu_additem ( menu , "\wNuestras \rServers" , "2" , 0 ); menu_additem ( menu , "\wDropear \rBandera" , "3" , 0 ); menu_additem ( menu , "\wReiniciar \rScore" , "4" , 0 ); menu_additem ( menu , "\wVer \rTop 15" , "5" ); menu_additem ( menu , "\wVer \rRankstats" , "6" ); menu_additem ( menu , "\wPanel \rAdmin" , "7" , ADMIN_KICK ); menu_setprop ( menu , MPROP_EXITNAME , "Salir" ); menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL ); menu_display ( iId , menu , 0 ); return PLUGIN_HANDLED ; } public MenuPrincipal_Handler ( iId , menu , item ) { if( item == MENU_EXIT ) { menu_destroy ( menu ); return PLUGIN_HANDLED ; } switch( item ) { case 0 : TiendaItems ( iId ); case 1 : client_cmd ( iId , "adrenaline" ); case 2 : client_cmd ( iId , "say servers" ); case 3 : client_cmd ( iId , "say /dropflag" ); case 4 : client_cmd ( iId , "say rs" ); case 5 : client_cmd ( iId , "say top" ); case 6 : client_cmd ( iId , "say /rankstats" ); case 7 : client_cmd ( iId , "amxmodmenu" ); } return PLUGIN_HANDLED ; } stock drop_weapons ( id , dropwhat ) { static weapons [ 32 ], num , i , weaponid ; num = 0 ; get_user_weapons ( id , weapons , num ); const PRIMARY_WEAPONS_BIT_SUM = ( 1 << CSW_SCOUT )|( 1 << CSW_XM1014 )|( 1 << CSW_MAC10 )|( 1 << CSW_MAC10 )|( 1 << CSW_UMP45 )|( 1 << CSW_SG550 )|( 1 << CSW_MAC10 )|( 1 << CSW_FAMAS )|( 1 << CSW_AWP )|( 1 << CSW_MP5NAVY )|( 1 << CSW_M249 )| ( 1 << CSW_M3 )|( 1 << CSW_M4A1 )|( 1 << CSW_TMP )|( 1 << CSW_G3SG1 )|( 1 << CSW_SG552 )|( 1 << CSW_AK47 )|( 1 << CSW_P90 ); const SECONDARY_WEAPONS_BIT_SUM = ( 1 << CSW_P228 )|( 1 << CSW_ELITE )|( 1 << CSW_FIVESEVEN )|( 1 << CSW_USP )|( 1 << CSW_GLOCK18 )|( 1 << CSW_DEAGLE ); for ( i = 0 ; i < num ; i ++) { weaponid = weapons [ i ]; if (( dropwhat == 1 && (( 1 << weaponid ) & PRIMARY_WEAPONS_BIT_SUM )) || ( dropwhat == 2 && (( 1 << weaponid ) & SECONDARY_WEAPONS_BIT_SUM ))) { static wname [ 32 ]; get_weaponname ( weaponid , wname , sizeof wname - 1 ); engclient_cmd ( id , "drop" , wname ); } } }
otra cosa como le puedo poner para que cada tipo de admin comienze con que si los staff 50 de aps los full 40 premium 30 y vip 20 algo a si
Aprendiendo scripting || Tratare ayudar en lo que pueda || PD: Soy pobre
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
(27/12/2018, 03:57 PM) SthoNy escribió: Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> #include <hamsandwich> #include <fun> #include <cstrike> new const PLUGIN [] = "Rangos CS:GO" new const AUTHOR [] = "kikizon" /* ========== [CONSTANTES] ========== */ new const Prefijo [] = "^1[^4ProGaming^1]" // Prefijo en say //new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP // Natives // native give_railcannon ( id ); native get_thanatos ( id ); native Get_Balrog3 ( id ); native Get_AT4CS ( id ); native Get_Balrog11 ( id ); native give_janus3 ( id ); native Get_CompoundBow ( id ); native give_m32 ( id ); native ammopacks_jctf ( id ); native jctf_get_adrenaline ( id ); //native get_v3(id); // Fin // enum DETALLES { iNOMBRE [ 55 ], LIMITE_ITEM , COSTO_APS , COSTO_MONEY } enum _ : ITEMS { RAILCANNON , THANATOS , BALROG3 , AT4CS , BALROG11 , JANUS3 , COMPOUNDBOW , M32 }; new const TIENDA_ITEMS [][ DETALLES ] = { { "RailCannon" , 1 , 22 , 1000 }, { "Thanatos 7" , 1 , 26 , 2000 }, { "Balrog 3" , 1 , 25 , 3000 }, { "AT4cs" , 1 , 30 , 4000 }, { "Balrog 11" , 1 , 21 , 5000 }, { "Janus 3" , 1 , 20 , 6000 }, { "CompoundBow" , 1 , 24 , 7000 }, { "M32" , 1 , 35 , 8000 } }; /* Limite */ new Limite [ 33 ][ ITEMS ]; /* ========== [CONST NOMBRES DE RANGOS] ========== */ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Distinguido" , 50 }, { "Cabo I" , 100 }, { "Cabo II" , 200 }, { "Sargento I" , 300 }, { "Sargento II" , 400 }, { "Sargento Mayor" , 500 }, { "Sargento Mayor III" , 600 }, { "Sargento Mayor II" , 700 }, { "Sargento Mayor I" , 800 }, { "Sargento Elite" , 900 }, { "Sargento Master" , 1000 }, { "Teniente" , 1200 }, { "Teniente I" , 1400 }, { "Capitan" , 1600 }, { "Mayor" , 1800 }, { "Teniente Coronel" , 2000 }, { "Coronel" , 2300 }, { "General II" , 2600 }, { "General I" , 2800 }, { "Mayor General" , 3000 }, { "General en Jefe" , 3400 }, { "Comandante" , 3800 }, { "Experto" , 4200 }, { "Silver IV" , 4700 }, { "Silver III" , 5200 }, { "Silver II" , 5700 }, { "Silver I" , 6200 }, { "Silver Elite" , 6800 }, { "Silver Elite Master" , 7400 }, { "Gold Nova I" , 8100 }, { "Gold Nova II" , 8800 }, { "Gold Nova III" , 9500 }, { "Gold Nova Master" , 10300 }, { "Master Guardian I" , 11100 }, { "Master Guardian II" , 12000 }, { "Master Guardian Elite" , 13000 }, { "Distinguido Master Guardian" , 15000 }, { "Aguila Legendaria" , 19000 }, { "Aguila Legendaria Master" , 23000 }, { "Master Supremo I" , 28000 }, { "Global Elite" , 34000 }, { "Global Master" , 41000 }, { "Boina Verde" , 50000 }, { "Profesional" , 59000 }, { "Ultimate" , 79000 }, { "Rambo" , 100000 }, { "Robocop" , 140000 }, { "Terminator" , 190000 }, { "Mercenario" , 240000 } } /* ========== [VARIABLES] ========== */ new g_rango [ 33 ], g_frags [ 33 ], g_ammopacks [ 33 ] new g_playername [ 33 ][ 32 ]; new g_vault enum { CAMPO_AMMOS = 0 , CAMPO_RANGO , CAMPO_FRAG , MAX_FIELDS } new g_campos [ MAX_FIELDS ] new bool : Remover [ 33 ] #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) /* Ganancia AmmoPacks */ new cvar_ammopacks_staff new cvar_ammopacks_full new cvar_ammopacks_premium new cvar_ammopacks_vip new cvar_ammopacks_usuario /* ========== [INIT] ========== */ public plugin_init () { register_concmd ( "amx_ammopacks" , "cmd_packs" , ADMIN_RCON , "<jugador> <cantidad>" ); RegisterHam ( Ham_Spawn , "player" , "PlayerSpawn" , 1 ) RegisterHam ( Ham_Killed , "player" , "PlayerKilled" , true ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say /hud" , "remover_hud" ) register_clcmd ( "radio1" , "TiendaItems" ) register_clcmd ( "nightvision" , "Menu_Principal" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ========== [EMPIEZA SECCION MODIFICABLE] ========== */ cvar_ammopacks_staff = register_cvar ( "amx_ammopacks_staff" , "5" , ADMIN_RCON ); cvar_ammopacks_full = register_cvar ( "amx_ammopacks_full" , "4" , ADMIN_RCON ); cvar_ammopacks_premium = register_cvar ( "amx_ammopacks_premium" , "3" , ADMIN_RCON ); cvar_ammopacks_vip = register_cvar ( "amx_ammopacks_vip" , "2" , ADMIN_RCON ); cvar_ammopacks_usuario = register_cvar ( "amx_ammopacks_usuario" , "1" , ADMIN_RCON ); /* ========== [TERMINA SECCION MODIFICABLE] ========== */ g_vault = adv_vault_open ( "data_rangos" , false ) g_campos [ CAMPO_AMMOS ] = adv_vault_register_field ( g_vault , "AMMOS" ) g_campos [ CAMPO_RANGO ] = adv_vault_register_field ( g_vault , "RANGOS" ) g_campos [ CAMPO_FRAG ] = adv_vault_register_field ( g_vault , "FRAGS" ) adv_vault_init ( g_vault ) } /* ========== [PRECACHE]* ==========*/ //public plugin_precache() // precache_generic(Sonido) /* ========== [NATIVES]* ==========*/ public plugin_natives () { register_native ( "rangos_jctf" , "mi_rango" , 1 ) register_native ( "ammopacks_jctf" , "mi_ammopack" , 1 ) register_native ( "jctf_get_tienda" , "TiendaItems" , 1 ) } public PlayerSpawn ( id ) { for(new o = 0 ; o < ITEMS ; o ++) Limite [ id ][ o ] = 0 } public mi_rango ( id ) return Rangos [ g_rango [ id ]][ NOMBRE ] public mi_ammopack ( id ) return g_ammopacks [ id ] /* ========== [REMOVER HUD] ==========*/ public remover_hud ( id ) { if(! Remover [ id ]) { remove_task ( id + TASK_HUD ) chatcolor ( id , "%s Has desactivado el ^4hud de rangos" , Prefijo ) Remover [ id ] = true } else { set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) chatcolor ( id , "%s Has activado el ^4hud de rangos" , Prefijo ) Remover [ id ] = false } } /* ========== [HUD] ==========*/ public Rangos_Hud ( taskid ) { new id = ID_HUD if (! is_user_alive ( id )) { id = pev ( id , pev_iuser2 ) if (! is_user_alive ( id )) return; } if( id != ID_HUD ) { set_hudmessage ( 255 , 255 , 255 , 0.60 , 0.67 , 1 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Nombre: %s | Frags: %d | Rango: %s" , g_playername [ id ], g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 255 , 255 , 255 , - 1.0 , 0.87 , 0 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Rango: %s^nFrags: [%d / %d]" , Rangos [ g_rango [ id ]][ NOMBRE ], g_frags [ id ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ]) } } /* ========== [PUTINSERVER] ========== */ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 ; g_frags [ id ] = 0 ; g_ammopacks [ id ] = 0 ; Cargar ( id ) set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) } /* ========== [DISCONNECT] ========== */ public client_disconnect ( id ) { Guardar ( id ) remove_task ( id + TASK_HUD ) } /* ========== [ROUND END] ========== */ public logevent_round_end () { for(new id = 1 ; id <= get_maxplayers (); id ++) Guardar ( id ); } /* ========== [HAM KILLED] ========== */ public PlayerKilled ( victim , attacker , shouldgib ) { if(! is_user_connected ( attacker ) || ! is_user_connected ( victim ) || victim == attacker ) return HAM_IGNORED if( is_user_admin ( attacker )) { if( get_user_flags ( attacker ) & ADMIN_LEVEL_A ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_staff ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_B ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_full ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_C ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_premium ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_D ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_vip ) } else g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_usuario ) return HAM_IGNORED } /* ========== [DEATHMSG] ========== */ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ AumentarRango ( attacker ) } } /* ========== [UPDATE RANGO] ========== */ AumentarRango ( id ) { new Aumento = false while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ]) { Aumento = true g_rango [ id ]++ } if( Aumento ) { chatcolor ( id , "%s ¡Felicidades has ascendido al rango: ^4%s^1!" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) //client_cmd(id, "mp3 play ^"%s^"", Sonido) Aumento = false } } /* ========== [HOOK SAY & SAY_TEAM] ========== */ public message_saytext ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i ) || is_user_alive ( i ) != is_user_alive ( id )) continue get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } return PLUGIN_HANDLED_MAIN ; } public message_sayteam ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static playerTeamName [ 19 ] switch ( get_user_team ( id )) { case 1 : copy ( playerTeamName , 12 , "TT" ) case 2 : copy ( playerTeamName , 12 , "CT" ) default: copy ( playerTeamName , 11 , "Sin Equipo" ) } static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i )) continue; if ( get_user_team ( i ) == get_user_team ( id )) { if( is_user_admin ( i ) && is_user_alive ( id ) || ! is_user_alive ( i ) && ! is_user_alive ( id )) { get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } } } return PLUGIN_HANDLED_MAIN ; } public changeTeamInfo ( player , team []) { message_begin ( MSG_ONE , get_user_msgid ( "TeamInfo" ), _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , get_user_msgid ( "SayText" ), { 0 , 0 , 0 }, player ) write_byte ( player ) write_string ( message ) message_end () } /* ========== [GUARDADO] ========== */ Guardar ( id ) { adv_vault_set_start ( g_vault ) adv_vault_set_field ( g_vault , g_campos [ CAMPO_AMMOS ], g_ammopacks [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_RANGO ], g_rango [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_FRAG ], g_frags [ id ]) adv_vault_set_end ( g_vault , 0 , g_playername [ id ]) } Cargar ( id ) { if(! adv_vault_get_prepare ( g_vault , _ , g_playername [ id ])) return g_rango [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_RANGO ]) g_frags [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_FRAG ]) g_ammopacks [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_AMMOS ]) } public TiendaItems ( id ) { static sztext [ 70 ] new Menu , len [ 300 ] formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d" , g_ammopacks [ id ]) Menu = menu_create ( len , "TiendaItems_Handler" ) for(new i = 0 ; i < sizeof ( TIENDA_ITEMS ); i ++) { if( Limite [ id ][ i ] == 1 || g_ammopacks [ id ] < TIENDA_ITEMS [ i ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ i ][ COSTO_MONEY ]) format ( sztext , charsmax ( sztext ), "\d%s \d[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); else format ( sztext , charsmax ( sztext ), "\w%s \r[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); menu_additem ( Menu , sztext , _ , _ , menu_makecallback ( "tienda_callback" )); } menu_setprop ( Menu , MPROP_EXITNAME , "Cerrar" ); menu_display ( id , Menu ); return PLUGIN_HANDLED ; } public tienda_callback ( id , Menu , Item ) { if( g_ammopacks [ id ] < TIENDA_ITEMS [ Item ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return ITEM_DISABLED ; return ITEM_ENABLED ; } public TiendaItems_Handler ( id , Menu , Item ) { if( Item == MENU_EXIT || ! is_user_alive ( id )) { menu_destroy ( Menu ); return PLUGIN_HANDLED ; } static cost cost = TIENDA_ITEMS [ Item ][ COSTO_APS ]; if( Limite [ id ][ Item ] == TIENDA_ITEMS [ Item ][ LIMITE_ITEM ]) { chatcolor ( id , "%s Ya has comprado este item especial." , Prefijo ) TiendaItems ( id ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ); menu_destroy ( Menu ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ) { switch( Item ) { case RAILCANNON : drop_weapons ( id , 1 ), give_railcannon ( id ) case THANATOS : drop_weapons ( id , 1 ), get_thanatos ( id ) case BALROG3 : drop_weapons ( id , 1 ), Get_Balrog3 ( id ) case AT4CS : drop_weapons ( id , 1 ), Get_AT4CS ( id ) case BALROG11 : drop_weapons ( id , 1 ), Get_Balrog11 ( id ) case JANUS3 : drop_weapons ( id , 1 ), give_janus3 ( id ) case COMPOUNDBOW : drop_weapons ( id , 1 ), Get_CompoundBow ( id ) case M32 : drop_weapons ( id , 1 ), give_m32 ( id ) } Limite [ id ][ Item ]++ g_ammopacks [ id ] -= cost chatcolor ( id , "%s Has comprado el item ^4%s^1." , Prefijo , TIENDA_ITEMS [ Item ][ iNOMBRE ]) cs_set_user_money ( id , cs_get_user_money ( id ) - TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return PLUGIN_HANDLED } public cmd_packs ( iId , level , cid ) { if(! cmd_access ( iId , level , cid , 2 ) ) return PLUGIN_HANDLED ; new target [ 33 ], cantidad [ 10 ], packs , player ; read_argv ( 1 , target , charsmax ( target ) ); read_argv ( 2 , cantidad , charsmax ( cantidad ) ); player = cmd_target ( iId , target , CMDTARGET_ALLOW_SELF ); packs = str_to_num ( cantidad ); if(! player ) return PLUGIN_HANDLED ; new TargetName [ 33 ]; get_user_name ( player , TargetName , charsmax ( TargetName ) ); new AdminName [ 33 ]; get_user_name ( iId , AdminName , charsmax ( AdminName ) ); chatcolor ( 0 , "%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." , Prefijo , AdminName , packs , packs > 1 < packs ? "ammopacks" : "ammopack" , TargetName ); g_ammopacks [ player ] += packs ; return PLUGIN_HANDLED ; } /* ========== [STOCKS] ========== */ // stock de chatcolor stock chatcolor ( 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" ); // Default replace_all ( msg , 190 , "!t" , "^3" ); // Color del Equipo 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 (); } } } } stock ValidMessage ( text [], maxcount ) { static len , i , count len = strlen ( text ) count = 0 if (! len ) return false ; for ( i = 0 ; i < len ; i ++) { if ( text [ i ] != ' ' ) { count ++ if ( count >= maxcount ) return true ; } } return false ; } public Menu_Principal ( iId ) { new menu , len [ 300 ]; formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%" , jctf_get_adrenaline ( iId )); menu = menu_create ( len , "MenuPrincipal_Handler" ); menu_additem ( menu , "\wComprar \rArmas Especiales" , "0" , 0 ); menu_additem ( menu , "\wUsar \rAdrenalina" , "1" , 0 ); menu_additem ( menu , "\wNuestras \rServers" , "2" , 0 ); menu_additem ( menu , "\wDropear \rBandera" , "3" , 0 ); menu_additem ( menu , "\wReiniciar \rScore" , "4" , 0 ); menu_additem ( menu , "\wVer \rTop 15" , "5" ); menu_additem ( menu , "\wVer \rRankstats" , "6" ); menu_additem ( menu , "\wPanel \rAdmin" , "7" , ADMIN_KICK ); menu_setprop ( menu , MPROP_EXITNAME , "Salir" ); menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL ); menu_display ( iId , menu , 0 ); return PLUGIN_HANDLED ; } public MenuPrincipal_Handler ( iId , menu , item ) { if( item == MENU_EXIT ) { menu_destroy ( menu ); return PLUGIN_HANDLED ; } switch( item ) { case 0 : TiendaItems ( iId ); case 1 : client_cmd ( iId , "adrenaline" ); case 2 : client_cmd ( iId , "say servers" ); case 3 : client_cmd ( iId , "say /dropflag" ); case 4 : client_cmd ( iId , "say rs" ); case 5 : client_cmd ( iId , "say top" ); case 6 : client_cmd ( iId , "say /rankstats" ); case 7 : client_cmd ( iId , "amxmodmenu" ); } return PLUGIN_HANDLED ; } stock drop_weapons ( id , dropwhat ) { static weapons [ 32 ], num , i , weaponid ; num = 0 ; get_user_weapons ( id , weapons , num ); const PRIMARY_WEAPONS_BIT_SUM = ( 1 << CSW_SCOUT )|( 1 << CSW_XM1014 )|( 1 << CSW_MAC10 )|( 1 << CSW_MAC10 )|( 1 << CSW_UMP45 )|( 1 << CSW_SG550 )|( 1 << CSW_MAC10 )|( 1 << CSW_FAMAS )|( 1 << CSW_AWP )|( 1 << CSW_MP5NAVY )|( 1 << CSW_M249 )| ( 1 << CSW_M3 )|( 1 << CSW_M4A1 )|( 1 << CSW_TMP )|( 1 << CSW_G3SG1 )|( 1 << CSW_SG552 )|( 1 << CSW_AK47 )|( 1 << CSW_P90 ); const SECONDARY_WEAPONS_BIT_SUM = ( 1 << CSW_P228 )|( 1 << CSW_ELITE )|( 1 << CSW_FIVESEVEN )|( 1 << CSW_USP )|( 1 << CSW_GLOCK18 )|( 1 << CSW_DEAGLE ); for ( i = 0 ; i < num ; i ++) { weaponid = weapons [ i ]; if (( dropwhat == 1 && (( 1 << weaponid ) & PRIMARY_WEAPONS_BIT_SUM )) || ( dropwhat == 2 && (( 1 << weaponid ) & SECONDARY_WEAPONS_BIT_SUM ))) { static wname [ 32 ]; get_weaponname ( weaponid , wname , sizeof wname - 1 ); engclient_cmd ( id , "drop" , wname ); } } }
cabe aclarar que le gasta los AP y el dinero; no explico bien si quería que se comprara con AP y dinero o con AP o dinero
Mensajes: 208
Temas: 56
Registro en: Nov 2018
Reputación:
1
27/12/2018, 04:37 PM
(Última modificación: 27/12/2018, 04:50 PM por whOo . Edited 1 time in total.)
(27/12/2018, 04:12 PM) [R]ak escribió: (27/12/2018, 03:57 PM) SthoNy escribió: Código PHP:
/* --- Creditos: Raulitop, por el hook say | Version Con Guardado NFVAULT --- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> #include <hamsandwich> #include <fun> #include <cstrike> new const PLUGIN [] = "Rangos CS:GO" new const AUTHOR [] = "kikizon" /* ========== [CONSTANTES] ========== */ new const Prefijo [] = "^1[^4ProGaming^1]" // Prefijo en say //new const Sonido[] = "sound/america_gaming/rango_up.mp3" // Sonido Rango UP // Natives // native give_railcannon ( id ); native get_thanatos ( id ); native Get_Balrog3 ( id ); native Get_AT4CS ( id ); native Get_Balrog11 ( id ); native give_janus3 ( id ); native Get_CompoundBow ( id ); native give_m32 ( id ); native ammopacks_jctf ( id ); native jctf_get_adrenaline ( id ); //native get_v3(id); // Fin // enum DETALLES { iNOMBRE [ 55 ], LIMITE_ITEM , COSTO_APS , COSTO_MONEY } enum _ : ITEMS { RAILCANNON , THANATOS , BALROG3 , AT4CS , BALROG11 , JANUS3 , COMPOUNDBOW , M32 }; new const TIENDA_ITEMS [][ DETALLES ] = { { "RailCannon" , 1 , 22 , 1000 }, { "Thanatos 7" , 1 , 26 , 2000 }, { "Balrog 3" , 1 , 25 , 3000 }, { "AT4cs" , 1 , 30 , 4000 }, { "Balrog 11" , 1 , 21 , 5000 }, { "Janus 3" , 1 , 20 , 6000 }, { "CompoundBow" , 1 , 24 , 7000 }, { "M32" , 1 , 35 , 8000 } }; /* Limite */ new Limite [ 33 ][ ITEMS ]; /* ========== [CONST NOMBRES DE RANGOS] ========== */ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Distinguido" , 50 }, { "Cabo I" , 100 }, { "Cabo II" , 200 }, { "Sargento I" , 300 }, { "Sargento II" , 400 }, { "Sargento Mayor" , 500 }, { "Sargento Mayor III" , 600 }, { "Sargento Mayor II" , 700 }, { "Sargento Mayor I" , 800 }, { "Sargento Elite" , 900 }, { "Sargento Master" , 1000 }, { "Teniente" , 1200 }, { "Teniente I" , 1400 }, { "Capitan" , 1600 }, { "Mayor" , 1800 }, { "Teniente Coronel" , 2000 }, { "Coronel" , 2300 }, { "General II" , 2600 }, { "General I" , 2800 }, { "Mayor General" , 3000 }, { "General en Jefe" , 3400 }, { "Comandante" , 3800 }, { "Experto" , 4200 }, { "Silver IV" , 4700 }, { "Silver III" , 5200 }, { "Silver II" , 5700 }, { "Silver I" , 6200 }, { "Silver Elite" , 6800 }, { "Silver Elite Master" , 7400 }, { "Gold Nova I" , 8100 }, { "Gold Nova II" , 8800 }, { "Gold Nova III" , 9500 }, { "Gold Nova Master" , 10300 }, { "Master Guardian I" , 11100 }, { "Master Guardian II" , 12000 }, { "Master Guardian Elite" , 13000 }, { "Distinguido Master Guardian" , 15000 }, { "Aguila Legendaria" , 19000 }, { "Aguila Legendaria Master" , 23000 }, { "Master Supremo I" , 28000 }, { "Global Elite" , 34000 }, { "Global Master" , 41000 }, { "Boina Verde" , 50000 }, { "Profesional" , 59000 }, { "Ultimate" , 79000 }, { "Rambo" , 100000 }, { "Robocop" , 140000 }, { "Terminator" , 190000 }, { "Mercenario" , 240000 } } /* ========== [VARIABLES] ========== */ new g_rango [ 33 ], g_frags [ 33 ], g_ammopacks [ 33 ] new g_playername [ 33 ][ 32 ]; new g_vault enum { CAMPO_AMMOS = 0 , CAMPO_RANGO , CAMPO_FRAG , MAX_FIELDS } new g_campos [ MAX_FIELDS ] new bool : Remover [ 33 ] #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) /* Ganancia AmmoPacks */ new cvar_ammopacks_staff new cvar_ammopacks_full new cvar_ammopacks_premium new cvar_ammopacks_vip new cvar_ammopacks_usuario /* ========== [INIT] ========== */ public plugin_init () { register_concmd ( "amx_ammopacks" , "cmd_packs" , ADMIN_RCON , "<jugador> <cantidad>" ); RegisterHam ( Ham_Spawn , "player" , "PlayerSpawn" , 1 ) RegisterHam ( Ham_Killed , "player" , "PlayerKilled" , true ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say /hud" , "remover_hud" ) register_clcmd ( "radio1" , "TiendaItems" ) register_clcmd ( "nightvision" , "Menu_Principal" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ========== [EMPIEZA SECCION MODIFICABLE] ========== */ cvar_ammopacks_staff = register_cvar ( "amx_ammopacks_staff" , "5" , ADMIN_RCON ); cvar_ammopacks_full = register_cvar ( "amx_ammopacks_full" , "4" , ADMIN_RCON ); cvar_ammopacks_premium = register_cvar ( "amx_ammopacks_premium" , "3" , ADMIN_RCON ); cvar_ammopacks_vip = register_cvar ( "amx_ammopacks_vip" , "2" , ADMIN_RCON ); cvar_ammopacks_usuario = register_cvar ( "amx_ammopacks_usuario" , "1" , ADMIN_RCON ); /* ========== [TERMINA SECCION MODIFICABLE] ========== */ g_vault = adv_vault_open ( "data_rangos" , false ) g_campos [ CAMPO_AMMOS ] = adv_vault_register_field ( g_vault , "AMMOS" ) g_campos [ CAMPO_RANGO ] = adv_vault_register_field ( g_vault , "RANGOS" ) g_campos [ CAMPO_FRAG ] = adv_vault_register_field ( g_vault , "FRAGS" ) adv_vault_init ( g_vault ) } /* ========== [PRECACHE]* ==========*/ //public plugin_precache() // precache_generic(Sonido) /* ========== [NATIVES]* ==========*/ public plugin_natives () { register_native ( "rangos_jctf" , "mi_rango" , 1 ) register_native ( "ammopacks_jctf" , "mi_ammopack" , 1 ) register_native ( "jctf_get_tienda" , "TiendaItems" , 1 ) } public PlayerSpawn ( id ) { for(new o = 0 ; o < ITEMS ; o ++) Limite [ id ][ o ] = 0 } public mi_rango ( id ) return Rangos [ g_rango [ id ]][ NOMBRE ] public mi_ammopack ( id ) return g_ammopacks [ id ] /* ========== [REMOVER HUD] ==========*/ public remover_hud ( id ) { if(! Remover [ id ]) { remove_task ( id + TASK_HUD ) chatcolor ( id , "%s Has desactivado el ^4hud de rangos" , Prefijo ) Remover [ id ] = true } else { set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) chatcolor ( id , "%s Has activado el ^4hud de rangos" , Prefijo ) Remover [ id ] = false } } /* ========== [HUD] ==========*/ public Rangos_Hud ( taskid ) { new id = ID_HUD if (! is_user_alive ( id )) { id = pev ( id , pev_iuser2 ) if (! is_user_alive ( id )) return; } if( id != ID_HUD ) { set_hudmessage ( 255 , 255 , 255 , 0.60 , 0.67 , 1 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Nombre: %s | Frags: %d | Rango: %s" , g_playername [ id ], g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 255 , 255 , 255 , - 1.0 , 0.87 , 0 , 0.1 , 1.0 , 1.0 , 1.0 , 1 ) show_hudmessage ( ID_HUD , "Rango: %s^nFrags: [%d / %d]" , Rangos [ g_rango [ id ]][ NOMBRE ], g_frags [ id ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ]) } } /* ========== [PUTINSERVER] ========== */ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 ; g_frags [ id ] = 0 ; g_ammopacks [ id ] = 0 ; Cargar ( id ) set_task ( 1.0 , "Rangos_Hud" , id + TASK_HUD , _ , _ , "b" ) } /* ========== [DISCONNECT] ========== */ public client_disconnect ( id ) { Guardar ( id ) remove_task ( id + TASK_HUD ) } /* ========== [ROUND END] ========== */ public logevent_round_end () { for(new id = 1 ; id <= get_maxplayers (); id ++) Guardar ( id ); } /* ========== [HAM KILLED] ========== */ public PlayerKilled ( victim , attacker , shouldgib ) { if(! is_user_connected ( attacker ) || ! is_user_connected ( victim ) || victim == attacker ) return HAM_IGNORED if( is_user_admin ( attacker )) { if( get_user_flags ( attacker ) & ADMIN_LEVEL_A ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_staff ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_B ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_full ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_C ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_premium ) if( get_user_flags ( attacker ) & ADMIN_LEVEL_D ) g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_vip ) } else g_ammopacks [ attacker ] += get_pcvar_num ( cvar_ammopacks_usuario ) return HAM_IGNORED } /* ========== [DEATHMSG] ========== */ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ AumentarRango ( attacker ) } } /* ========== [UPDATE RANGO] ========== */ AumentarRango ( id ) { new Aumento = false while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ]) { Aumento = true g_rango [ id ]++ } if( Aumento ) { chatcolor ( id , "%s ¡Felicidades has ascendido al rango: ^4%s^1!" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) //client_cmd(id, "mp3 play ^"%s^"", Sonido) Aumento = false } } /* ========== [HOOK SAY & SAY_TEAM] ========== */ public message_saytext ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^4VIP^1][^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* ^1[^4%s^1] ^3%s ^1: %s" , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i ) || is_user_alive ( i ) != is_user_alive ( id )) continue get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } return PLUGIN_HANDLED_MAIN ; } public message_sayteam ( id ) { static said [ 192 ] read_args ( said , charsmax ( said )) remove_quotes ( said ) if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED if (! ValidMessage ( said , 1 )) return PLUGIN_CONTINUE ; static playerTeamName [ 19 ] switch ( get_user_team ( id )) { case 1 : copy ( playerTeamName , 12 , "TT" ) case 2 : copy ( playerTeamName , 12 , "CT" ) default: copy ( playerTeamName , 11 , "Sin Equipo" ) } static color [ 11 ]; get_user_team ( id , color , charsmax ( color )) static name [ 32 ]; get_user_name ( id , name , charsmax ( name )) if( is_user_admin ( id )) { if( get_user_flags ( id ) & ADMIN_LEVEL_A ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4STAFF^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_B ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4ADMIN^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4ADMIN^1][^4%s^1][%s] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_C ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4PREMIUM^1][^4%s^1] ^3%s ^1: ^4%s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } if( get_user_flags ( id ) & ADMIN_LEVEL_D ) { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%s^1][^4VIP^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } } else { if( is_user_alive ( id )) format ( said , charsmax ( said ), "^1[^3%s^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) else format ( said , charsmax ( said ), "^1*DEAD* [^3%^1][^4%s^1] ^3%s ^1: %s" , playerTeamName , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= get_maxplayers (); i ++) { if (! is_user_connected ( i )) continue; if ( get_user_team ( i ) == get_user_team ( id )) { if( is_user_admin ( i ) && is_user_alive ( id ) || ! is_user_alive ( i ) && ! is_user_alive ( id )) { get_user_team ( i , team , charsmax ( team )) changeTeamInfo ( i , color ) writeMessage ( i , said ) changeTeamInfo ( i , team ) } } } return PLUGIN_HANDLED_MAIN ; } public changeTeamInfo ( player , team []) { message_begin ( MSG_ONE , get_user_msgid ( "TeamInfo" ), _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , get_user_msgid ( "SayText" ), { 0 , 0 , 0 }, player ) write_byte ( player ) write_string ( message ) message_end () } /* ========== [GUARDADO] ========== */ Guardar ( id ) { adv_vault_set_start ( g_vault ) adv_vault_set_field ( g_vault , g_campos [ CAMPO_AMMOS ], g_ammopacks [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_RANGO ], g_rango [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_FRAG ], g_frags [ id ]) adv_vault_set_end ( g_vault , 0 , g_playername [ id ]) } Cargar ( id ) { if(! adv_vault_get_prepare ( g_vault , _ , g_playername [ id ])) return g_rango [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_RANGO ]) g_frags [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_FRAG ]) g_ammopacks [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_AMMOS ]) } public TiendaItems ( id ) { static sztext [ 70 ] new Menu , len [ 300 ] formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wTienda de Items \y\dAPs: \r%d" , g_ammopacks [ id ]) Menu = menu_create ( len , "TiendaItems_Handler" ) for(new i = 0 ; i < sizeof ( TIENDA_ITEMS ); i ++) { if( Limite [ id ][ i ] == 1 || g_ammopacks [ id ] < TIENDA_ITEMS [ i ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ i ][ COSTO_MONEY ]) format ( sztext , charsmax ( sztext ), "\d%s \d[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); else format ( sztext , charsmax ( sztext ), "\w%s \r[APs %d] [Dinero %d]" , TIENDA_ITEMS [ i ][ iNOMBRE ], TIENDA_ITEMS [ i ][ COSTO_APS ], TIENDA_ITEMS [ i ][ COSTO_MONEY ]); menu_additem ( Menu , sztext , _ , _ , menu_makecallback ( "tienda_callback" )); } menu_setprop ( Menu , MPROP_EXITNAME , "Cerrar" ); menu_display ( id , Menu ); return PLUGIN_HANDLED ; } public tienda_callback ( id , Menu , Item ) { if( g_ammopacks [ id ] < TIENDA_ITEMS [ Item ][ COSTO_APS ] || cs_get_user_money ( id ) < TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return ITEM_DISABLED ; return ITEM_ENABLED ; } public TiendaItems_Handler ( id , Menu , Item ) { if( Item == MENU_EXIT || ! is_user_alive ( id )) { menu_destroy ( Menu ); return PLUGIN_HANDLED ; } static cost cost = TIENDA_ITEMS [ Item ][ COSTO_APS ]; if( Limite [ id ][ Item ] == TIENDA_ITEMS [ Item ][ LIMITE_ITEM ]) { chatcolor ( id , "%s Ya has comprado este item especial." , Prefijo ) TiendaItems ( id ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ); menu_destroy ( Menu ) return PLUGIN_HANDLED ; } Comprar_Items ( id , Item , cost ) { switch( Item ) { case RAILCANNON : drop_weapons ( id , 1 ), give_railcannon ( id ) case THANATOS : drop_weapons ( id , 1 ), get_thanatos ( id ) case BALROG3 : drop_weapons ( id , 1 ), Get_Balrog3 ( id ) case AT4CS : drop_weapons ( id , 1 ), Get_AT4CS ( id ) case BALROG11 : drop_weapons ( id , 1 ), Get_Balrog11 ( id ) case JANUS3 : drop_weapons ( id , 1 ), give_janus3 ( id ) case COMPOUNDBOW : drop_weapons ( id , 1 ), Get_CompoundBow ( id ) case M32 : drop_weapons ( id , 1 ), give_m32 ( id ) } Limite [ id ][ Item ]++ g_ammopacks [ id ] -= cost chatcolor ( id , "%s Has comprado el item ^4%s^1." , Prefijo , TIENDA_ITEMS [ Item ][ iNOMBRE ]) cs_set_user_money ( id , cs_get_user_money ( id ) - TIENDA_ITEMS [ Item ][ COSTO_MONEY ]) return PLUGIN_HANDLED } public cmd_packs ( iId , level , cid ) { if(! cmd_access ( iId , level , cid , 2 ) ) return PLUGIN_HANDLED ; new target [ 33 ], cantidad [ 10 ], packs , player ; read_argv ( 1 , target , charsmax ( target ) ); read_argv ( 2 , cantidad , charsmax ( cantidad ) ); player = cmd_target ( iId , target , CMDTARGET_ALLOW_SELF ); packs = str_to_num ( cantidad ); if(! player ) return PLUGIN_HANDLED ; new TargetName [ 33 ]; get_user_name ( player , TargetName , charsmax ( TargetName ) ); new AdminName [ 33 ]; get_user_name ( iId , AdminName , charsmax ( AdminName ) ); chatcolor ( 0 , "%s ^1[^4STAFF^1] ^3%s ^1: regaló ^4%d %s ^1al jugador ^3%s^1." , Prefijo , AdminName , packs , packs > 1 < packs ? "ammopacks" : "ammopack" , TargetName ); g_ammopacks [ player ] += packs ; return PLUGIN_HANDLED ; } /* ========== [STOCKS] ========== */ // stock de chatcolor stock chatcolor ( 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" ); // Default replace_all ( msg , 190 , "!t" , "^3" ); // Color del Equipo 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 (); } } } } stock ValidMessage ( text [], maxcount ) { static len , i , count len = strlen ( text ) count = 0 if (! len ) return false ; for ( i = 0 ; i < len ; i ++) { if ( text [ i ] != ' ' ) { count ++ if ( count >= maxcount ) return true ; } } return false ; } public Menu_Principal ( iId ) { new menu , len [ 300 ]; formatex ( len , charsmax ( len ), "\y[\dProGaming\y] \wMenú Principal \y\dAdrenalina: \r%d / 100%" , jctf_get_adrenaline ( iId )); menu = menu_create ( len , "MenuPrincipal_Handler" ); menu_additem ( menu , "\wComprar \rArmas Especiales" , "0" , 0 ); menu_additem ( menu , "\wUsar \rAdrenalina" , "1" , 0 ); menu_additem ( menu , "\wNuestras \rServers" , "2" , 0 ); menu_additem ( menu , "\wDropear \rBandera" , "3" , 0 ); menu_additem ( menu , "\wReiniciar \rScore" , "4" , 0 ); menu_additem ( menu , "\wVer \rTop 15" , "5" ); menu_additem ( menu , "\wVer \rRankstats" , "6" ); menu_additem ( menu , "\wPanel \rAdmin" , "7" , ADMIN_KICK ); menu_setprop ( menu , MPROP_EXITNAME , "Salir" ); menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL ); menu_display ( iId , menu , 0 ); return PLUGIN_HANDLED ; } public MenuPrincipal_Handler ( iId , menu , item ) { if( item == MENU_EXIT ) { menu_destroy ( menu ); return PLUGIN_HANDLED ; } switch( item ) { case 0 : TiendaItems ( iId ); case 1 : client_cmd ( iId , "adrenaline" ); case 2 : client_cmd ( iId , "say servers" ); case 3 : client_cmd ( iId , "say /dropflag" ); case 4 : client_cmd ( iId , "say rs" ); case 5 : client_cmd ( iId , "say top" ); case 6 : client_cmd ( iId , "say /rankstats" ); case 7 : client_cmd ( iId , "amxmodmenu" ); } return PLUGIN_HANDLED ; } stock drop_weapons ( id , dropwhat ) { static weapons [ 32 ], num , i , weaponid ; num = 0 ; get_user_weapons ( id , weapons , num ); const PRIMARY_WEAPONS_BIT_SUM = ( 1 << CSW_SCOUT )|( 1 << CSW_XM1014 )|( 1 << CSW_MAC10 )|( 1 << CSW_MAC10 )|( 1 << CSW_UMP45 )|( 1 << CSW_SG550 )|( 1 << CSW_MAC10 )|( 1 << CSW_FAMAS )|( 1 << CSW_AWP )|( 1 << CSW_MP5NAVY )|( 1 << CSW_M249 )| ( 1 << CSW_M3 )|( 1 << CSW_M4A1 )|( 1 << CSW_TMP )|( 1 << CSW_G3SG1 )|( 1 << CSW_SG552 )|( 1 << CSW_AK47 )|( 1 << CSW_P90 ); const SECONDARY_WEAPONS_BIT_SUM = ( 1 << CSW_P228 )|( 1 << CSW_ELITE )|( 1 << CSW_FIVESEVEN )|( 1 << CSW_USP )|( 1 << CSW_GLOCK18 )|( 1 << CSW_DEAGLE ); for ( i = 0 ; i < num ; i ++) { weaponid = weapons [ i ]; if (( dropwhat == 1 && (( 1 << weaponid ) & PRIMARY_WEAPONS_BIT_SUM )) || ( dropwhat == 2 && (( 1 << weaponid ) & SECONDARY_WEAPONS_BIT_SUM ))) { static wname [ 32 ]; get_weaponname ( weaponid , wname , sizeof wname - 1 ); engclient_cmd ( id , "drop" , wname ); } } }
cabe aclarar que le gasta los AP y el dinero; no explico bien si quería que se comprara con AP y dinero o con AP o dinero
yo quiero que gaste los 2 aps y dinero al comprar el arma y como le puedo poner para que cada tipo de admin comienze que si los staff 50 de aps los full 40 premium 30 y vip 20 algo a si
Aprendiendo scripting || Tratare ayudar en lo que pueda || PD: Soy pobre
Mensajes: 410
Temas: 9
Registro en: Apr 2015
Reputación:
5
(27/12/2018, 04:12 PM) [R]ak escribió: cabe aclarar que le gasta los AP y el dinero; no explico bien si quería que se comprara con AP y dinero o con AP o dinero
por lo que entendí lo pidió de esa forma --------->
(27/12/2018, 03:34 PM) whOo escribió: buenas tengo este sistema de rangos + menu con extra items que se compran con aps pero le quiero agregar que tambien se compren con dinero osea que se compren con aps y dinero no se si me explique bien pero espero que me entiendan
(27/12/2018, 04:08 PM) whOo escribió: otra cosa como le puedo poner para que cada tipo de admin comienze con que si los staff 50 de aps los full 40 premium 30 y vip 20 algo a si
pues, por lo que veo tu guardas los aps y al conectarse le seteas los datos guardados, si le seteas x aps no estarias haciendn nada guardando el valor de la variable g_ammopacks.
pero si lo que quieres hacer es setearle X aps si el admin no tiene datos almacenados te recomendaria que en
Guardar hagas esto
Ejemplo:
Código PHP:
Cargar ( id ) { if(! adv_vault_get_prepare ( g_vault , _ , g_playername [ id ])) // si no hay datos almacenados... { if( get_user_flags ( id ) & ADMIN_BAN ) { //Aqui seteas los aps } return } g_rango [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_RANGO ]) g_frags [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_FRAG ]) g_ammopacks [ id ] = adv_vault_get_field ( g_vault , g_campos [ CAMPO_AMMOS ]) }
Si no es lo que pides, podrias explicarte mejor