Mensajes: 385
Temas: 132
Registro en: May 2018
Reputación:
1
18/05/2018, 04:05 PM
(Última modificación: 18/05/2018, 04:33 PM por Forever123 .)
lo que pasa es que este plugin me hookea el say no me deja poner comandos como /rs /top porq no me los detecta y el problema esta en estos rangos si me pueden ayudar pls
Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <nfvault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "" // 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 [ 30 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Plata I" , 200 }, { "Plata II" , 300 }, { "Plata III" , 500 }, { "Plata IV" , 700 }, { "Plata Elite" , 800 }, { "Plata 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 }, { "Distinguido Master Guardian" , 1900 }, { "Aguila legendaria" , 2000 }, { "Aguila legendaria 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) #define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id) new VaultRango [ 128 ], szRangos [ 180 ], szKey [ 30 ] /* ==================================== *[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 - ÑO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - ÑO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) nfv_file ( "Ranguitos" , VaultRango , charsmax ( VaultRango )) } /* ==================================== *[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 ) { if( XD ) Guardar ( id ); remove_task ( id + TASK_HUD ) } /* ================================== [ROUND END] ===================================*/ public logevent_round_end () { for(new id = 1 ; id <= g_maxplayers ; id ++) { if( XD ) 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 = 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 } } /*===================================== *[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 ) { formatex ( szKey , charsmax ( szKey ), "data_rangos" ) formatex ( szRangos , charsmax ( szRangos ), "%d %d" , g_frags [ id ], g_rango [ id ]) nfv_set_data ( VaultRango , szKey , g_playername [ id ], szRangos ) } Cargar ( id ) { new g_load_c1 [ 25 ], g_load_c2 [ 25 ] formatex ( szKey , charsmax ( szKey ), "data_rangos" ) if(! nfv_get_data ( VaultRango , szKey , g_playername [ id ], szRangos , sizeof ( szRangos ) - 1 )) return; parse ( szRangos , g_load_c1 , charsmax ( g_load_c1 ), g_load_c2 , charsmax ( g_load_c2 )) g_frags [ id ] = str_to_num ( g_load_c1 ) g_rango [ id ] = str_to_num ( g_load_c2 ) } /* =================================== *[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: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
Código PHP:
if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED
Mensajes: 4,247
Temas: 94
Registro en: Mar 2014
Reputación:
58
Código PHP:
/* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3 Version Con Guardado NFVAULT ------------------------------- */ #include <amxmisc> #include <fakemeta> #include <nfvault> new const PLUGIN [] = "Rangos CS:GO" #define VERSION "1.0" new const AUTHOR [] = "kikizon" /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web [] = "" // 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 [ 30 ], FRAGS } new const Rangos [][ DATA ] = { { "Sin Rango" , 100 }, { "Plata I" , 200 }, { "Plata II" , 300 }, { "Plata III" , 500 }, { "Plata IV" , 700 }, { "Plata Elite" , 800 }, { "Plata 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 }, { "Distinguido Master Guardian" , 1900 }, { "Aguila legendaria" , 2000 }, { "Aguila legendaria 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) #define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id) new VaultRango [ 128 ], szRangos [ 180 ], szKey [ 30 ] /* ==================================== *[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 - ÑO :v cvar_hsx2 = register_cvar ( "rangos_hsx2" , "1" ) // 1 - x2 frags de HeadShot | 0 - ÑO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj () g_maxplayers = get_maxplayers () g_msgTeamInfo = get_user_msgid ( "TeamInfo" ) g_msgSayText = get_user_msgid ( "SayText" ) nfv_file ( "Ranguitos" , VaultRango , charsmax ( VaultRango )) } /* ==================================== *[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 ) { if( XD ) Guardar ( id ); remove_task ( id + TASK_HUD ) } /* ================================== [ROUND END] ===================================*/ public logevent_round_end () { for(new id = 1 ; id <= g_maxplayers ; id ++) { if( XD ) 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 = 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 } } /*===================================== *[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_MAIN ; 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_MAIN ; 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 ) { formatex ( szKey , charsmax ( szKey ), "data_rangos" ) formatex ( szRangos , charsmax ( szRangos ), "%d %d" , g_frags [ id ], g_rango [ id ]) nfv_set_data ( VaultRango , szKey , g_playername [ id ], szRangos ) } Cargar ( id ) { new g_load_c1 [ 25 ], g_load_c2 [ 25 ] formatex ( szKey , charsmax ( szKey ), "data_rangos" ) if(! nfv_get_data ( VaultRango , szKey , g_playername [ id ], szRangos , sizeof ( szRangos ) - 1 )) return; parse ( szRangos , g_load_c1 , charsmax ( g_load_c1 ), g_load_c2 , charsmax ( g_load_c2 )) g_frags [ id ] = str_to_num ( g_load_c1 ) g_rango [ id ] = str_to_num ( g_load_c2 ) } /* =================================== *[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 ; }
Allí tienes
Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM) meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando. (08/08/2019, 05:32 PM) meTaLiCroSS escribió: grax x el dato cr4ck
Mis aportes
PLUGINS MAPAS
Menú LANG
[SF] Sistema de Frags
Say System (Admin Prefix)
Mensajes: 385
Temas: 132
Registro en: May 2018
Reputación:
1
(18/05/2018, 04:20 PM) Chema escribió: Código PHP:
if ( said [ 0 ] == '@' || said [ 0 ] == '%' || said [ 0 ] == '.' || said [ 0 ] == '!' || equal ( said , "" )) return PLUGIN_HANDLED
ya muchas gracias
Mensajes: 274
Temas: 9
Registro en: Jan 2018
Reputación:
4
Forever123 usa el guardado adv_vault
kikizon
lo unico que tiene el error que no guarda
se le paso por alto no se porque no lo arreglo pero te vas a la linea 328
te sale esto
adv_vault_set_field(g_vault, g_campos[CAMPO_RANGO], g_frags[id])
lo cambias por
adv_vault_set_field(g_vault, g_campos[CAMPO_FRAG], g_frags[id])
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 ) 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 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 } } /*===================================== *[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 ; }
Mensajes: 385
Temas: 132
Registro en: May 2018
Reputación:
1
18/05/2018, 06:17 PM
(Última modificación: 18/05/2018, 06:17 PM por Forever123 .)
(18/05/2018, 06:15 PM) La Renga Mk escribió: Forever123 usa el guardado adv_vault kikizon
lo unico que tiene el error que no guarda
se le paso por alto no se porque no lo arreglo pero te vas a la linea 328
te sale esto
adv_vault_set_field(g_vault, g_campos[CAMPO_RANGO], g_frags[id])
lo cambias por
adv_vault_set_field(g_vault, g_campos[CAMPO_FRAG], g_frags[id])
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 ) 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 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 } } /*===================================== *[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 ; }
ok grax
(18/05/2018, 06:15 PM) La Renga Mk escribió: Forever123 usa el guardado adv_vault kikizon
lo unico que tiene el error que no guarda
se le paso por alto no se porque no lo arreglo pero te vas a la linea 328
te sale esto
adv_vault_set_field(g_vault, g_campos[CAMPO_RANGO], g_frags[id])
lo cambias por
adv_vault_set_field(g_vault, g_campos[CAMPO_FRAG], g_frags[id])
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 ) 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 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 } } /*===================================== *[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 ; }
ok grax