Mensajes: 52
Temas: 8
Registro en: Sep 2017
15/12/2017, 09:11 PM
(Última modificación: 06/03/2018, 01:48 AM por leean77 .)
sdaasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasd
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
Código PHP:
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 subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ) Aumento = false } } // -----------> AumentarRango ( id ) { new Aumento = false while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ] && g_rango [ id ] < sizeof Rangos ) { Aumento = true g_rango [ id ]++ } if( Aumento ) { chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ) Aumento = false } }
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
Si no estoy mal aun se bugearia así como te lo dio HK
aparte ese bool en el bucle esta mal, por que si subis 10 rangos mandas 10 prints y podes floodear xd
Mensajes: 217
Temas: 1
Registro en: Mar 2017
Reputación:
5
Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "AMXMODX-ES.COM" // Se Muestra en HUD new const Prefijo [] = "!g[RANGOS]!y" // Prefijo en say new const Sonido [] = "rango/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Silver I" , 200 }, { "Silver II" , 300 }, { "Silver III" , 500 }, { "Silver IV" , 700 }, { "Silver Elite" , 800 }, { "Silver Elite Master" , 900 }, { "Gold Nova I" , 1000 }, { "Gold Nova II" , 1200 }, { "Gold Nova III" , 1300 }, { "Gold Nova Master" , 1400 }, { "Master Guardian I" , 1500 }, { "Master Guardian II" , 1700 }, { "Master Guardian Elite" , 1800 }, { "Distinguished Master Guardian" , 1900 }, { "Legendary Eagle" , 2000 }, { "Legendary Eagle Master" , 2100 }, { "Supreme Master First Class" , 2200 }, { "The Global Elite" , 2500 } } /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[VARIABLES]* =====================================*/ new g_rango [ 33 ], g_frags [ 33 ] new SyncHUD , g_maxplayers , g_msgTeamInfo , g_msgSayText , g_playername [ 33 ][ 32 ]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) new g_vault enum { CAMPO_RANGO , CAMPO_FRAG , CAMPO_MAX } new g_campos [ CAMPO_MAX ] /* ==================================== *[Cvars]* =====================================*/ new cvar_Hud , cvar_knifex2 , cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar ( "rangos_hud" , "1" ) // 1 - Mostrar HUD | 0 - No Mostrar cvar_knifex2 = register_cvar ( "rangos_knifex2" , "1" ) // 1 - x2 frags con knife | 0 - NO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - NO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) g_vault = adv_vault_open ( "data_rangos" , false ) 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_sound ( Sonido ) /* =================================== *[HUD]* =====================================*/ public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) if( g_rango [ id ] < sizeof Rangos - 1 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Web ) else ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Web ) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 g_frags [ id ] = 0 Cargar ( id ) if( get_pcvar_num ( cvar_Hud )) set_task ( 1.0 , "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 <= g_maxplayers ; id ++) Guardar ( id ); } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) new hs = read_data ( 3 ) new weaponid = get_user_weapon ( attacker ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ if( get_pcvar_num ( cvar_knifex2 )) { if( weaponid == CSW_KNIFE ) g_frags [ attacker ]++ } if( get_pcvar_num ( cvar_hsx2 )) { if( hs ) g_frags [ attacker ]++ } AumentarRango ( attacker ) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango ( id ) { new Aumento = g_rango [ id ]; while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ] && g_rango [ id ] < sizeof Rangos - 1 ) g_rango [ id ]++ if( Aumento < g_rango [ id ]) { chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ) } } /*===================================== *[SAY]* =====================================*/ 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 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[Muerto]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_KICK ) format ( said , charsmax ( said ), "^x01%s^x04%s ^x03%s ^x04: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } else { format ( said , charsmax ( said ), "^x01%s^04%s ^x03%s ^x01: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue get_user_name ( id , name , charsmax ( name )) if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 playerTeam , playerTeamName [ 19 ] playerTeam = get_user_team ( id ) switch ( playerTeam ) { case 1 : copy ( playerTeamName , 6 , "TE" ) case 2 : copy ( playerTeamName , 8 , "CT" ) default: copy ( playerTeamName , 11 , "SPEC" ) } static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[MUERTO]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_RCON ) format ( said , charsmax ( said ), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } else { format ( said , charsmax ( said ), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue; get_user_name ( id , name , charsmax ( name )) if ( get_user_team ( i ) == playerTeam || is_user_admin ( i )) { if ( is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 , g_msgTeamInfo , _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , g_msgSayText , { 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_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 ]) } /* =================================== *[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 para Saber Si el mensaje es valido 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 ; }
Mensajes: 52
Temas: 8
Registro en: Sep 2017
15/12/2017, 10:42 PM
(Última modificación: 06/03/2018, 01:48 AM por leean77 .)
asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasd
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
(15/12/2017, 10:38 PM) P-chan escribió: Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "AMXMODX-ES.COM" // Se Muestra en HUD new const Prefijo [] = "!g[RANGOS]!y" // Prefijo en say new const Sonido [] = "rango/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Silver I" , 200 }, { "Silver II" , 300 }, { "Silver III" , 500 }, { "Silver IV" , 700 }, { "Silver Elite" , 800 }, { "Silver Elite Master" , 900 }, { "Gold Nova I" , 1000 }, { "Gold Nova II" , 1200 }, { "Gold Nova III" , 1300 }, { "Gold Nova Master" , 1400 }, { "Master Guardian I" , 1500 }, { "Master Guardian II" , 1700 }, { "Master Guardian Elite" , 1800 }, { "Distinguished Master Guardian" , 1900 }, { "Legendary Eagle" , 2000 }, { "Legendary Eagle Master" , 2100 }, { "Supreme Master First Class" , 2200 }, { "The Global Elite" , 2500 }, { "" , 0 } } /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[VARIABLES]* =====================================*/ new g_rango [ 33 ], g_frags [ 33 ] new SyncHUD , g_maxplayers , g_msgTeamInfo , g_msgSayText , g_playername [ 33 ][ 32 ]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) new g_vault enum { CAMPO_RANGO , CAMPO_FRAG , CAMPO_MAX } new g_campos [ CAMPO_MAX ] /* ==================================== *[Cvars]* =====================================*/ new cvar_Hud , cvar_knifex2 , cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar ( "rangos_hud" , "1" ) // 1 - Mostrar HUD | 0 - No Mostrar cvar_knifex2 = register_cvar ( "rangos_knifex2" , "1" ) // 1 - x2 frags con knife | 0 - NO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - NO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) g_vault = adv_vault_open ( "data_rangos" , false ) 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_sound ( Sonido ) /* =================================== *[HUD]* =====================================*/ public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) if( g_rango [ id ] < sizeof Rangos - 1 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Web ) else ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Web ) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 g_frags [ id ] = 0 Cargar ( id ) if( get_pcvar_num ( cvar_Hud )) set_task ( 1.0 , "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 <= g_maxplayers ; id ++) Guardar ( id ); } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) new hs = read_data ( 3 ) new weaponid = get_user_weapon ( attacker ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ if( get_pcvar_num ( cvar_knifex2 )) { if( weaponid == CSW_KNIFE ) g_frags [ attacker ]++ } if( get_pcvar_num ( cvar_hsx2 )) { if( hs ) g_frags [ attacker ]++ } AumentarRango ( attacker ) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango ( id ) { new Aumento = g_rango [ id ]; while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ] && g_rango [ id ] < sizeof Rangos - 1 ) g_rango [ id ]++ if( Aumento < g_rango [ id ]) { chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ) } } /*===================================== *[SAY]* =====================================*/ 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 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[Muerto]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_KICK ) format ( said , charsmax ( said ), "^x01%s^x04%s ^x03%s ^x04: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } else { format ( said , charsmax ( said ), "^x01%s^04%s ^x03%s ^x01: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue get_user_name ( id , name , charsmax ( name )) if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 playerTeam , playerTeamName [ 19 ] playerTeam = get_user_team ( id ) switch ( playerTeam ) { case 1 : copy ( playerTeamName , 6 , "TE" ) case 2 : copy ( playerTeamName , 8 , "CT" ) default: copy ( playerTeamName , 11 , "SPEC" ) } static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[MUERTO]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_RCON ) format ( said , charsmax ( said ), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } else { format ( said , charsmax ( said ), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue; get_user_name ( id , name , charsmax ( name )) if ( get_user_team ( i ) == playerTeam || is_user_admin ( i )) { if ( is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 , g_msgTeamInfo , _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , g_msgSayText , { 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_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 ]) } /* =================================== *[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 para Saber Si el mensaje es valido 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 ; }
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
15/12/2017, 10:56 PM
(Última modificación: 15/12/2017, 11:05 PM por Chamo. .)
(15/12/2017, 10:30 PM) NkkI escribió: Si no estoy mal aun se bugearia así como te lo dio HK
aparte ese bool en el bucle esta mal, por que si subis 10 rangos mandas 10 prints y podes floodear xd
@HK-416 , no es necesario inicializar la variable en false (o 0), ya que de por si al crearse contiene '0' como valor (Hablando específicamente para PAWN/AMXX)
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
15/12/2017, 10:59 PM
(Última modificación: 15/12/2017, 11:00 PM por HK-416 .)
(15/12/2017, 10:56 PM) Chamo. escribió: (15/12/2017, 10:30 PM) NkkI escribió: Si no estoy mal aun se bugearia así como te lo dio HK
aparte ese bool en el bucle esta mal, por que si subis 10 rangos mandas 10 prints y podes floodear xd
No, no se bugearia ya que chequea que el nivel no sobrepase al ultimo index del arreglo. Y respecto al print solo se mostrara 1 vez.
@HK-416 , no es necesario inicializar la variable en false (o 0), ya que de por si al crearse contiene '0' como valor (Hablando específicamente para PAWN/AMXX)
Esta original como el original yo lo unico que puse el g_rango[id] < ...
(15/12/2017, 10:55 PM) NkkI escribió: (15/12/2017, 10:38 PM) P-chan escribió: Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "AMXMODX-ES.COM" // Se Muestra en HUD new const Prefijo [] = "!g[RANGOS]!y" // Prefijo en say new const Sonido [] = "rango/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Silver I" , 200 }, { "Silver II" , 300 }, { "Silver III" , 500 }, { "Silver IV" , 700 }, { "Silver Elite" , 800 }, { "Silver Elite Master" , 900 }, { "Gold Nova I" , 1000 }, { "Gold Nova II" , 1200 }, { "Gold Nova III" , 1300 }, { "Gold Nova Master" , 1400 }, { "Master Guardian I" , 1500 }, { "Master Guardian II" , 1700 }, { "Master Guardian Elite" , 1800 }, { "Distinguished Master Guardian" , 1900 }, { "Legendary Eagle" , 2000 }, { "Legendary Eagle Master" , 2100 }, { "Supreme Master First Class" , 2200 }, { "The Global Elite" , 2500 }, { "" , 0 } } /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[VARIABLES]* =====================================*/ new g_rango [ 33 ], g_frags [ 33 ] new SyncHUD , g_maxplayers , g_msgTeamInfo , g_msgSayText , g_playername [ 33 ][ 32 ]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) new g_vault enum { CAMPO_RANGO , CAMPO_FRAG , CAMPO_MAX } new g_campos [ CAMPO_MAX ] /* ==================================== *[Cvars]* =====================================*/ new cvar_Hud , cvar_knifex2 , cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar ( "rangos_hud" , "1" ) // 1 - Mostrar HUD | 0 - No Mostrar cvar_knifex2 = register_cvar ( "rangos_knifex2" , "1" ) // 1 - x2 frags con knife | 0 - NO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - NO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) g_vault = adv_vault_open ( "data_rangos" , false ) 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_sound ( Sonido ) /* =================================== *[HUD]* =====================================*/ public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) if( g_rango [ id ] < sizeof Rangos - 1 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Web ) else ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Web ) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 g_frags [ id ] = 0 Cargar ( id ) if( get_pcvar_num ( cvar_Hud )) set_task ( 1.0 , "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 <= g_maxplayers ; id ++) Guardar ( id ); } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) new hs = read_data ( 3 ) new weaponid = get_user_weapon ( attacker ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ if( get_pcvar_num ( cvar_knifex2 )) { if( weaponid == CSW_KNIFE ) g_frags [ attacker ]++ } if( get_pcvar_num ( cvar_hsx2 )) { if( hs ) g_frags [ attacker ]++ } AumentarRango ( attacker ) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango ( id ) { new Aumento = g_rango [ id ]; while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ] && g_rango [ id ] < sizeof Rangos - 1 ) g_rango [ id ]++ if( Aumento < g_rango [ id ]) { chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ) } } /*===================================== *[SAY]* =====================================*/ 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 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[Muerto]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_KICK ) format ( said , charsmax ( said ), "^x01%s^x04%s ^x03%s ^x04: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } else { format ( said , charsmax ( said ), "^x01%s^04%s ^x03%s ^x01: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue get_user_name ( id , name , charsmax ( name )) if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 playerTeam , playerTeamName [ 19 ] playerTeam = get_user_team ( id ) switch ( playerTeam ) { case 1 : copy ( playerTeamName , 6 , "TE" ) case 2 : copy ( playerTeamName , 8 , "CT" ) default: copy ( playerTeamName , 11 , "SPEC" ) } static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[MUERTO]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_RCON ) format ( said , charsmax ( said ), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } else { format ( said , charsmax ( said ), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue; get_user_name ( id , name , charsmax ( name )) if ( get_user_team ( i ) == playerTeam || is_user_admin ( i )) { if ( is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 , g_msgTeamInfo , _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , g_msgSayText , { 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_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 ]) } /* =================================== *[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 para Saber Si el mensaje es valido 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 ; }
Me ganaste de mano :c
Código PHP:
public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) if ( g_rango [ id ] < sizeof Rangos - 1 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %s^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Web ) else ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: Alcanzaste El Rango Maximo^nFrags Restantes: 0^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Web ) } }
(15/12/2017, 10:55 PM) NkkI escribió: (15/12/2017, 10:38 PM) P-chan escribió: Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "AMXMODX-ES.COM" // Se Muestra en HUD new const Prefijo [] = "!g[RANGOS]!y" // Prefijo en say new const Sonido [] = "rango/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Silver I" , 200 }, { "Silver II" , 300 }, { "Silver III" , 500 }, { "Silver IV" , 700 }, { "Silver Elite" , 800 }, { "Silver Elite Master" , 900 }, { "Gold Nova I" , 1000 }, { "Gold Nova II" , 1200 }, { "Gold Nova III" , 1300 }, { "Gold Nova Master" , 1400 }, { "Master Guardian I" , 1500 }, { "Master Guardian II" , 1700 }, { "Master Guardian Elite" , 1800 }, { "Distinguished Master Guardian" , 1900 }, { "Legendary Eagle" , 2000 }, { "Legendary Eagle Master" , 2100 }, { "Supreme Master First Class" , 2200 }, { "The Global Elite" , 2500 }, { "" , 0 } } /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[VARIABLES]* =====================================*/ new g_rango [ 33 ], g_frags [ 33 ] new SyncHUD , g_maxplayers , g_msgTeamInfo , g_msgSayText , g_playername [ 33 ][ 32 ]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) new g_vault enum { CAMPO_RANGO , CAMPO_FRAG , CAMPO_MAX } new g_campos [ CAMPO_MAX ] /* ==================================== *[Cvars]* =====================================*/ new cvar_Hud , cvar_knifex2 , cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar ( "rangos_hud" , "1" ) // 1 - Mostrar HUD | 0 - No Mostrar cvar_knifex2 = register_cvar ( "rangos_knifex2" , "1" ) // 1 - x2 frags con knife | 0 - NO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - NO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) g_vault = adv_vault_open ( "data_rangos" , false ) 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_sound ( Sonido ) /* =================================== *[HUD]* =====================================*/ public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) if( g_rango [ id ] < sizeof Rangos - 1 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Web ) else ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Web ) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 g_frags [ id ] = 0 Cargar ( id ) if( get_pcvar_num ( cvar_Hud )) set_task ( 1.0 , "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 <= g_maxplayers ; id ++) Guardar ( id ); } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) new hs = read_data ( 3 ) new weaponid = get_user_weapon ( attacker ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ if( get_pcvar_num ( cvar_knifex2 )) { if( weaponid == CSW_KNIFE ) g_frags [ attacker ]++ } if( get_pcvar_num ( cvar_hsx2 )) { if( hs ) g_frags [ attacker ]++ } AumentarRango ( attacker ) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango ( id ) { new Aumento = g_rango [ id ]; while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ] && g_rango [ id ] < sizeof Rangos - 1 ) g_rango [ id ]++ if( Aumento < g_rango [ id ]) { chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ) } } /*===================================== *[SAY]* =====================================*/ 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 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[Muerto]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_KICK ) format ( said , charsmax ( said ), "^x01%s^x04%s ^x03%s ^x04: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } else { format ( said , charsmax ( said ), "^x01%s^04%s ^x03%s ^x01: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue get_user_name ( id , name , charsmax ( name )) if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 playerTeam , playerTeamName [ 19 ] playerTeam = get_user_team ( id ) switch ( playerTeam ) { case 1 : copy ( playerTeamName , 6 , "TE" ) case 2 : copy ( playerTeamName , 8 , "CT" ) default: copy ( playerTeamName , 11 , "SPEC" ) } static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[MUERTO]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_RCON ) format ( said , charsmax ( said ), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } else { format ( said , charsmax ( said ), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue; get_user_name ( id , name , charsmax ( name )) if ( get_user_team ( i ) == playerTeam || is_user_admin ( i )) { if ( is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 , g_msgTeamInfo , _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , g_msgSayText , { 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_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 ]) } /* =================================== *[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 para Saber Si el mensaje es valido 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 ; }
Me ganaste de mano :c
Código PHP:
public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) if ( g_rango [ id ] < sizeof Rangos - 1 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %s^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Web ) else ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: Alcanzaste El Rango Maximo^nFrags Restantes: 0^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Web ) } }
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
15/12/2017, 11:02 PM
(Última modificación: 15/12/2017, 11:06 PM por Hinami .)
@Chamo;
int Hola[5]; //del 0 al 4
Hola[ 0 ]
Hola[ 1 ]
Hola[ 2 ]
Hola[ 3 ]
Hola[ 4 ]
Hola[ 5 ] // excede el límite..
ese sizeof digamos que devuelve el 5 ese
entonces si soy rango 3.
3 < sizeof.. (en este caso 5 el ejm)
sube de ++rango;
subo al rango 4
pero como en hud muestra mi rango actual + 1
da el 5
ademas a lo de pchan le falto agregar un rango vacio para que muestre todos..
así lo veo yo, ando en el cel y medio se ve xd
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
(15/12/2017, 11:02 PM) NkkI escribió: @Chamo;
int Hola[5]; //del 0 al 4
Hola[ 0 ]
Hola[ 1 ]
Hola[ 2 ]
Hola[ 3 ]
Hola[ 4 ]
Hola[ 5 ] // excede el límite..
ese sizeof digamos que devuelve el 5 ese
entonces si soy rango 3.
3 < sizeof.. (en este caso 5 el ejm)
sube de ++rango;
subo al rango 4
pero como en hud muestra mi rango actual + 1
da el 5
ademas a lo de pchan le falto agregar un rango vacio para que muestre todos..
Me di cuenta despues de postearlo.
estaba leyendo un addon mientras respondía
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
(15/12/2017, 11:06 PM) Chamo. escribió: (15/12/2017, 11:02 PM) NkkI escribió: @Chamo;
int Hola[5]; //del 0 al 4
Hola[ 0 ]
Hola[ 1 ]
Hola[ 2 ]
Hola[ 3 ]
Hola[ 4 ]
Hola[ 5 ] // excede el límite..
ese sizeof digamos que devuelve el 5 ese
entonces si soy rango 3.
3 < sizeof.. (en este caso 5 el ejm)
sube de ++rango;
subo al rango 4
pero como en hud muestra mi rango actual + 1
da el 5
ademas a lo de pchan le falto agregar un rango vacio para que muestre todos..
Me di cuenta despues de postearlo.
estaba leyendo un addon mientras respondía
Mensajes: 52
Temas: 8
Registro en: Sep 2017
15/12/2017, 11:23 PM
(Última modificación: 06/03/2018, 01:49 AM por leean77 .)
asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasd
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
lo hice desde el cel
Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "AMXMODX-ES.COM" // Se Muestra en HUD new const Prefijo [] = "!g[RANGOS]!y" // Prefijo en say new const Sonido [] = "rango/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Silver I" , 200 }, { "Silver II" , 300 }, { "Silver III" , 500 }, { "Silver IV" , 700 }, { "Silver Elite" , 800 }, { "Silver Elite Master" , 900 }, { "Gold Nova I" , 1000 }, { "Gold Nova II" , 1200 }, { "Gold Nova III" , 1300 }, { "Gold Nova Master" , 1400 }, { "Master Guardian I" , 1500 }, { "Master Guardian II" , 1700 }, { "Master Guardian Elite" , 1800 }, { "Distinguished Master Guardian" , 1900 }, { "Legendary Eagle" , 2000 }, { "Legendary Eagle Master" , 2100 }, { "Supreme Master First Class" , 2200 }, { "The Global Elite" , 2500 }, { "" , 0 } } /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[VARIABLES]* =====================================*/ new g_rango [ 33 ], g_frags [ 33 ] new SyncHUD , g_maxplayers , g_msgTeamInfo , g_msgSayText , g_playername [ 33 ][ 32 ]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) new g_vault enum { CAMPO_RANGO , CAMPO_FRAG , CAMPO_MAX } new g_campos [ CAMPO_MAX ] /* ==================================== *[Cvars]* =====================================*/ new cvar_Hud , cvar_knifex2 , cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar ( "rangos_hud" , "1" ) // 1 - Mostrar HUD | 0 - No Mostrar cvar_knifex2 = register_cvar ( "rangos_knifex2" , "1" ) // 1 - x2 frags con knife | 0 - NO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - NO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) g_vault = adv_vault_open ( "data_rangos" , false ) 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_sound ( Sonido ) /* =================================== *[HUD]* =====================================*/ public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Web ) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 g_frags [ id ] = 0 Cargar ( id ) if( get_pcvar_num ( cvar_Hud )) set_task ( 1.0 , "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 <= g_maxplayers ; id ++) Guardar ( id ); } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) new hs = read_data ( 3 ) new weaponid = get_user_weapon ( attacker ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ if( get_pcvar_num ( cvar_knifex2 )) { if( weaponid == CSW_KNIFE ) g_frags [ attacker ]++ } if( get_pcvar_num ( cvar_hsx2 )) { if( hs ) g_frags [ attacker ]++ } AumentarRango ( attacker ) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango ( id ) { new iRango = g_rango [ id ]; while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ] && g_rango [ id ] < sizeof ( Rangos )- 1 ) g_rango [ id ]++ if( g_rango [ id ] > iRango ) { chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) client_cmd ( id , "spk %s" , Sonido ); } } /*===================================== *[SAY]* =====================================*/ 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 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[Muerto]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_KICK ) format ( said , charsmax ( said ), "^x01%s^x04%s ^x03%s ^x04: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } else { format ( said , charsmax ( said ), "^x01%s^04%s ^x03%s ^x01: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue get_user_name ( id , name , charsmax ( name )) if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 playerTeam , playerTeamName [ 19 ] playerTeam = get_user_team ( id ) switch ( playerTeam ) { case 1 : copy ( playerTeamName , 6 , "TE" ) case 2 : copy ( playerTeamName , 8 , "CT" ) default: copy ( playerTeamName , 11 , "SPEC" ) } static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[MUERTO]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_RCON ) format ( said , charsmax ( said ), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } else { format ( said , charsmax ( said ), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue; get_user_name ( id , name , charsmax ( name )) if ( get_user_team ( i ) == playerTeam || is_user_admin ( i )) { if ( is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 , g_msgTeamInfo , _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , g_msgSayText , { 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_RANGO ], g_rango [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_RANGO ], 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 ]) } /* =================================== *[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 para Saber Si el mensaje es valido 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 ; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par } */
proba si compila
Mensajes: 52
Temas: 8
Registro en: Sep 2017
16/12/2017, 12:47 AM
(Última modificación: 06/03/2018, 01:49 AM por leean77 .)
asdddddd
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
16/12/2017, 12:49 AM
(Última modificación: 16/12/2017, 12:51 AM por Hinami .)
Así debe de ser jaja ( aunque no llegar a ese rango ), hay alguien que le puso una condición al hud eso está bien igual ( donde sale rango maximo algo asi xd ), es que en el cel cuesta más jajajja.
deberia de decir
rango EL ultimo
sig rango ""
pero usa el que te dieron asi como te dije xd, en el cel no puedo hacer todo eso xd
Mensajes: 52
Temas: 8
Registro en: Sep 2017
16/12/2017, 01:00 AM
(Última modificación: 06/03/2018, 01:49 AM por leean77 .)
dasasasasasasasas
Mensajes: 1,040
Temas: 89
Registro en: Jun 2015
Reputación:
21
(16/12/2017, 01:00 AM) leean77 escribió: (16/12/2017, 12:49 AM) NkkI escribió: Así debe de ser jaja ( aunque no llegar a ese rango ), hay alguien que le puso una condición al hud eso está bien igual ( donde sale rango maximo algo asi xd ), es que en el cel cuesta más jajajja.
deberia de decir
rango EL ultimo
sig rango ""
pero usa el que te dieron asi como te dije xd, en el cel no puedo hacer todo eso xd
Borre el { "", 0 } y ahora si, no se bugea y anda perfecto, muchas gracias a todos por la ayuda, cualquier problema lo publico acá, por ahora tema SOLUCIONADO!.Llegue tarde :c
Si quieres probar ahi tienes :
Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <adv_vault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "AMXMODX-ES.COM" // Se Muestra en HUD new const Prefijo [] = "!g[RANGOS]!y" // Prefijo en say new const Sonido [] = "rango/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _ : DATA { NOMBRE [ 32 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Silver I" , 200 }, { "Silver II" , 300 }, { "Silver III" , 500 }, { "Silver IV" , 700 }, { "Silver Elite" , 800 }, { "Silver Elite Master" , 900 }, { "Gold Nova I" , 1000 }, { "Gold Nova II" , 1200 }, { "Gold Nova III" , 1300 }, { "Gold Nova Master" , 1400 }, { "Master Guardian I" , 1500 }, { "Master Guardian II" , 1700 }, { "Master Guardian Elite" , 1800 }, { "Distinguished Master Guardian" , 1900 }, { "Legendary Eagle" , 2000 }, { "Legendary Eagle Master" , 2100 }, { "Supreme Master First Class" , 2200 }, { "The Global Elite" , 2500 }, { "" , 0 } } /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[VARIABLES]* =====================================*/ new g_rango [ 33 ], g_frags [ 33 ] new SyncHUD , g_maxplayers , g_msgTeamInfo , g_msgSayText , g_playername [ 33 ][ 32 ]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) new g_vault enum { CAMPO_RANGO , CAMPO_FRAG , CAMPO_MAX } new g_campos [ CAMPO_MAX ] /* ==================================== *[Cvars]* =====================================*/ new cvar_Hud , cvar_knifex2 , cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init () { register_plugin ( PLUGIN , VERSION , AUTHOR ) register_event ( "DeathMsg" , "Event_DeathMsg" , "a" ) register_logevent ( "logevent_round_end" , 2 , "1=Round_End" ) register_clcmd ( "say" , "message_saytext" ) register_clcmd ( "say_team" , "message_sayteam" ) /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar ( "rangos_hud" , "1" ) // 1 - Mostrar HUD | 0 - No Mostrar cvar_knifex2 = register_cvar ( "rangos_knifex2" , "1" ) // 1 - x2 frags con knife | 0 - NO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - NO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) g_vault = adv_vault_open ( "data_rangos" , false ) 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_sound ( Sonido ) /* =================================== *[HUD]* =====================================*/ public 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 , 6.0 , 1.0 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "Frags: %d || Rango: %s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ]) } else { set_hudmessage ( 0 , 255 , 0 , 0.0 , 0.20 , 1 , 6.0 , 1.0 ) if( g_rango [ id ] < sizeof Rangos - 1 ) ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: %s^nFrags Restantes: %d^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Rangos [ g_rango [ id ]+ 1 ][ NOMBRE ], Rangos [ g_rango [ id ]][ FRAGS ] - g_frags [ id ], Web ) else ShowSyncHudMsg ( ID_HUD , SyncHUD , "=======================^nFrags: %d^nRango: %s^n=======================^nSig. Rango: MAX^nFrags Restantes: 0^n=======================^n%s" , g_frags [ id ], Rangos [ g_rango [ id ]][ NOMBRE ], Web ) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver ( id ) { get_user_name ( id , g_playername [ id ], charsmax ( g_playername [ ] ) ); g_rango [ id ] = 0 g_frags [ id ] = 0 Cargar ( id ) if( get_pcvar_num ( cvar_Hud )) set_task ( 1.0 , "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 <= g_maxplayers ; id ++) Guardar ( id ); } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg () { new attacker = read_data ( 1 ) new victim = read_data ( 2 ) new hs = read_data ( 3 ) new weaponid = get_user_weapon ( attacker ) if( victim == attacker ) return; if( is_user_alive ( attacker )) { g_frags [ attacker ]++ if( get_pcvar_num ( cvar_knifex2 )) { if( weaponid == CSW_KNIFE ) g_frags [ attacker ]++ } if( get_pcvar_num ( cvar_hsx2 )) { if( hs ) g_frags [ attacker ]++ } AumentarRango ( attacker ) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango ( id ) { new iRango = g_rango [ id ]; while( g_frags [ id ] >= Rangos [ g_rango [ id ]][ FRAGS ] && g_rango [ id ] < sizeof ( Rangos )- 1 ) g_rango [ id ]++ if( g_rango [ id ] > iRango ) { if( g_rango [ id ] < sizeof Rangos - 1 ) chatcolor ( id , "%s Felicidades subiste al rango: !g[ %s ]" , Prefijo , Rangos [ g_rango [ id ]][ NOMBRE ]) else chatcolor ( id , "%s Felicidades llegaste al maximo rango" ) client_cmd ( id , "spk %s" , Sonido ); } } /*===================================== *[SAY]* =====================================*/ 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 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[Muerto]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_KICK ) format ( said , charsmax ( said ), "^x01%s^x04%s ^x03%s ^x04: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } else { format ( said , charsmax ( said ), "^x01%s^04%s ^x03%s ^x01: %s" , alive , Rangos [ g_rango [ id ]][ NOMBRE ], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue get_user_name ( id , name , charsmax ( name )) if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 playerTeam , playerTeamName [ 19 ] playerTeam = get_user_team ( id ) switch ( playerTeam ) { case 1 : copy ( playerTeamName , 6 , "TE" ) case 2 : copy ( playerTeamName , 8 , "CT" ) default: copy ( playerTeamName , 11 , "SPEC" ) } static color [ 11 ], name [ 32 ], alive [ 11 ] get_user_team ( id , color , charsmax ( color )) get_user_name ( id , name , charsmax ( name )) if ( is_user_alive ( id )) { alive = "" } else { alive = "[MUERTO]" } if ( is_user_admin ( id )) { if ( get_user_flags ( id ) & ADMIN_RCON ) format ( said , charsmax ( said ), "^x01%s [ %s ] ^x04%s ^x03%s ^x04: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } else { format ( said , charsmax ( said ), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s" , alive , playerTeam , Rangos [ g_rango [ id ]], name , said ) } static i , team [ 11 ] for ( i = 1 ; i <= g_maxplayers ; i ++) { if (! is_user_connected ( i )) continue; get_user_name ( id , name , charsmax ( name )) if ( get_user_team ( i ) == playerTeam || is_user_admin ( i )) { if ( is_user_alive ( id ) && is_user_alive ( i ) || ! is_user_alive ( id ) && ! is_user_alive ( i )) { 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 , g_msgTeamInfo , _ , player ) write_byte ( player ) write_string ( team ) message_end () } public writeMessage ( player , message []) { message_begin ( MSG_ONE , g_msgSayText , { 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_RANGO ], g_rango [ id ]) adv_vault_set_field ( g_vault , g_campos [ CAMPO_RANGO ], 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 ]) } /* =================================== *[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 para Saber Si el mensaje es valido 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 ; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par } */
“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.