Rangos CSGO reAPI
#1
Requerimientos

AMX 1.9.0 o mayor
reGameDLL
reAPI
MySQL

Es un simple rangos CSGO pero con reapi, trae prefijos de admin, top15 & rank, el guardado de los steams es a STEAMID a los IDLAN a su nick.

Código PHP:
/*

    CREATE TABLE csgo_table 
    (
        id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
        steam_id varchar(64) NOT NULL UNIQUE KEY,
        rango int(2) NOT NULL DEFAULT '0',
        frags int(10) NOT NULL DEFAULT '0',
        Pj varchar(64) NOT NULL,
        hs int(10) NOT NULL DEFAULT '0',
        kills int(10) NOT NULL DEFAULT '0',
        deaths int(10) NOT NULL DEFAULT '0',
        ip varchar(64) NOT NULL
    );

*/

#include <amxmodx>
#include <reapi>
#include <sqlx>

#pragma semicolon 1

#define is_valid_player_alive(%0) (1 <= %0 <= MAX_PLAYERS && is_user_alive(%0))

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)

#define MAXTAGADMS 50

public stock g_szPlugin[ ] = "Rangos CS:GO";
public 
stock g_szVersion[ ] = "1.0b";
public 
stock g_szAuthor[ ] = "Hypnotize";//no cambiar el autor
//chingen a su madre ratas con editions a la par del nombre

enum 

    
STEAM_ID
    
PASSWORD
    
ADMIN_FLAGS
    
ADMIN_TYPE
    
ADMIN_TAG
    
MAX 
};

enum _:eRangos
{
    
rango_name80 ],
    
level_req,
    
url_rango120 ]
};

new const 
g_aRangos19 ][ eRangos ] = 
{
    { 
"Unranked"200"https://i.ibb.co/HHzfg5T/0.png" },
    { 
"Silver I"688"https://i.ibb.co/hDWSG8d/1.png" },
    { 
"Silver II"1000"https://i.ibb.co/dgSPLD9/2.png" },
    { 
"Silver III"1500"https://i.ibb.co/Bc6jsjM/3.png" },
    { 
"Silver IV"2000"https://i.ibb.co/3pnjRS7/4.png" },
    { 
"Silver Elite"3500"https://i.ibb.co/GpkgZq0/5.png" },
    { 
"Silver Elite Master"4000"https://i.ibb.co/b6F3PPF/6.png" },
    { 
"Gold Nova I"4300"https://i.ibb.co/JjB8JYH/7.png" },
    { 
"Gold Nova II"5700"https://i.ibb.co/kmrfpqH/8.png" },
    { 
"Gold Nova III"6000"https://i.ibb.co/HVzW4jF/9.png" },
    { 
"Gold Nova Master"7100"https://i.ibb.co/7XMCzyV/10.png" },
    { 
"Master Guardian I"8400"https://i.ibb.co/q7s3Syr/11.png" },
    { 
"Master Guardian II"9900"https://i.ibb.co/hWSbXfh/12.png" },
    { 
"Master Guardian Elite"10100"https://i.ibb.co/P9GNsTk/13.png" },
    { 
"Distinguished Master Guardian"11600"https://i.ibb.co/6Dr0D41/14.png" },
    { 
"Legendary Eagle"12000"https://i.ibb.co/qd5J8Rh/15.png" },
    { 
"Legendary Eagle Master",13300"https://i.ibb.co/fX5nPZx/16.png" },
    { 
"Supreme Master First Class"14600"https://i.ibb.co/xFgd2jg/17.png" },
    { 
"The Global Elite"0"https://i.ibb.co/WVqzsg7/18.png" }
};

const 
m_LastHitGroup 75
const 
TASK_SHOWHUD 55555;

new 
cvar_hscvar_knifecvar_killcvar_hegreande;
new 
g_msgHudg_iHudTeamg_iMsgSayTextg_iMsgText;

new 
g_iRango33 ], g_iFrags33 ], g_iTeam33 ], g_iHs33 ], g_iDeaths33 ], g_iKills33 ];
new 
g_szPlayerName33 ][ 32 ], g_iAdminPrefix33 ][ 32 ], g_szAdminDataMAXTAGADMS ][ MAX ][ 33 ];

new 
g_id33 ];
new 
Handle:g_hTuple;

enum
{
    
REGISTRAR_USUARIO,
    
LOGUEAR_USUARIO,
    
GUARDAR_DATOS,
    
SQL_RANK,
    
TOP15
};

enum
{
    
NO_LOGUEADO 0,
    
LOGUEADO
}

new const 
MYSQL_HOST[] = "localhost";
new const 
MYSQL_USER[] = "db_detodos";
new const 
MYSQL_PASS[] = "tuperramadremamichan";
new const 
MYSQL_DATEBASE[] = "dbdb";

new const 
szTable[ ] = "csgo_table";

new 
g_iStatus33 ];

public 
plugin_init( )
{
    
register_plugin(
        .
plugin_name g_szPlugin
        .
version g_szVersion
        .
author g_szAuthor
    
);

    
RegisterHookChainRG_CBasePlayer_Killed"@Killed_OnPlayer", .post true );
    
RegisterHookChainRG_CBasePlayer_Spawn"@Spawn_OnPlayer", .post true );
    
RegisterHookChainRG_CBasePlayer_SetClientUserInfoName"@changeName_OnPlayer" );
    
register_event("HLTV""startRound_OnPlayer""a""1=0""2=0");
    
    
register_event"StatusValue""Status_team""be""1=1" );
    
register_event"StatusValue""Status_team_info""be""1=2""2!0" );
    
register_event"StatusValue""OcultarInfoPlayer""be""1=1""2=0" );

    
bind_pcvar_num(
        
create_cvar(
            .
name "csgo_kill_normal",
            .
string "2"
        
), cvar_kill
    
);

    
bind_pcvar_num(
        
create_cvar(
            .
name "csgo_kill_knife",
            .
string "4"
        
), cvar_knife
    
);

    
bind_pcvar_num(
        
create_cvar(
            .
name "csgo_kill_hs",
            .
string "3"
        
), cvar_hs
    
);

    
bind_pcvar_num(
        
create_cvar(
            .
name "csgo_kill_knife_hegrenade",
            .
string "5"
        
), cvar_hegreande
    
);

    
register_clcmd"say /rank""checkRank" );
    
register_clcmd"say_team /rank""checkRank" );
    
register_clcmd"say /top""checkTop" );
    
register_clcmd"say_team /top""checkTop" );
    
register_clcmd"say /top15""checkTop" );
    
register_clcmd"say_team /top15""checkTop" );
    
register_clcmd"say""clcmd_say" );
    
register_clcmd"say_team""clcmd_say" );

    
g_iMsgSayText get_user_msgid"SayText" );
    
g_iMsgText get_user_msgid"TextMsg" );

    
g_msgHud CreateHudSyncObj( );
    
g_iHudTeam CreateHudSyncObj( );

    
MySQL_Init( );
}

public 
plugin_cfg( )
{
    new 
line144 ], file0;
    
file fopen"addons/amxmodx/configs/users.ini""rt" );
    
    while( !
feoffile ) )
    {
        
fgets(filelinecharsmaxline ) );
        
trim(line);
        
        if( !
line] || line] == ';' || line] == '/' )
            continue;
        
        
i++;
        
parseline
            
g_szAdminData][ STEAM_ID ], charsmaxg_szAdminData[ ][ ] ), 
            
g_szAdminData][ PASSWORD ], charsmaxg_szAdminData[ ][ ] ), 
            
g_szAdminData][ ADMIN_FLAGS ], charsmaxg_szAdminData[ ][ ] ), 
            
g_szAdminData][ ADMIN_TYPE ], charsmaxg_szAdminData[ ][ ] ), 
            
g_szAdminData][ ADMIN_TAG ], charsmaxg_szAdminData[ ][ ] )
        );
        
        if( 
>= MAXTAGADMS )
        {
            
log_amx"Usted debe aumentar el limite de tag-administradores." );
            
log_amx"El limite establecido es de %i."MAXTAGADMS );
            break;
        }
    }
    
fclosefile );
}

public 
client_putinserverid )
{
    if( 
is_user_botid ) )
        return;

    new 
szAuthid64 ];
    
get_user_nameidg_szPlayerNameid ], charsmaxg_szPlayerName[ ] ) );

    
g_iStatusid ] = NO_LOGUEADO;
    
g_iAdminPrefixid ][ ] = EOS;

    if( 
is_user_steamid ) )
        
get_user_authididszAuthidcharsmaxszAuthid ) );
    else
        
copyszAuthidcharsmaxszAuthid ), g_szPlayerNameid ] );

    new 
szQueryMAX_MENU_LENGTH ], iData];

    
iData] = id;
    
iData] = LOGUEAR_USUARIO;

    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^""szTableszAuthid );
    
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    if( 
is_user_adminid ) )
    {
        for(new 
0MAXTAGADMSi++)
        {
            if( 
equaliszAuthidg_szAdminData[i][STEAM_ID] ) )
            {
                
formatexg_iAdminPrefixid ], charsmaxg_iAdminPrefix[ ] ), g_szAdminData][ ADMIN_TAG ] );
                break;
            }
        }
    }
}

public 
client_disconnectedid )
{
    if( 
g_iStatusid ] == LOGUEADO 
    {
        
guardar_datosid );

        
g_iStatusid ] = NO_LOGUEADO;
    }   
    
g_iAdminPrefixid ][ ] = EOS;
}

public 
Status_teamid 
    
g_iTeamid ] = read_data);

public 
OcultarInfoPlayerid )
    
ClearSyncHudidg_iHudTeam );

public 
Status_team_infoid 

    if( 
is_valid_player_aliveid ) ) 
    { 
        new 
target read_data);
        if ( 
g_iTeamid ] == 
        { 
            if( 
get_membertargetm_iTeam ) == TEAM_TERRORIST set_hudmessage255010, -1.00.5506.012.0 );
            else 
set_hudmessage(0255255, -1.00.5506.012.0);
            
ShowSyncHudMsg(idg_iHudTeam"[%s]^n%s"g_aRangosg_iRangotarget ] ][ rango_name ], g_szPlayerNametarget ] );
        }
        else 
        { 
            if ( 
get_membertargetm_iTeam ) == TEAM_TERRORIST set_hudmessage(255010, -1.00.5506.012.0);
            else 
set_hudmessage(0255225, -1.00.5506.012.0);
            
ShowSyncHudMsg(idg_iHudTeam"[%s]^n%s"g_aRangosg_iRangotarget ] ][ rango_name ], g_szPlayerNametarget ]);
        }
    }
}

public 
startRound_OnPlayer( )
{
    for( new 
1<= MAX_PLAYERS; ++)
    {
        if( 
g_iStatus] != LOGUEADO )
            continue;

        
guardar_datos);
    }
    
client_print_colorprint_team_blue"^x01Sistema de rangos by ^x04%s"g_szAuthor );
}
@
Spawn_OnPlayerid )
{
    if( 
g_iStatusid ] == LOGUEADO 
        
guardar_datosid );
}
@
Killed_OnPlayervictimattackershouldgib )
{
    if( !
is_valid_player_aliveattacker ) || victim == attacker || get_memberattackerm_iTeam ) == get_membervictimm_iTeam ) )
        return;

    if( 
get_memberattackerm_LastHitGroup ) == HITGROUP_HEAD 
    {
        
setLevelattackercvar_hs );
        
//setLevel( victim, -1 * cvar_hs );

        
++g_iHsattacker ];
    }
    else
    {
        if( 
GetCurrentWeaponattacker ) == WEAPON_HEGRENADE )
        {
            
setLevelattackercvar_hegreande );
            
//setLevel( victim, -1 * cvar_hegreande );
        
}
        else if( 
GetCurrentWeaponattacker ) == WEAPON_KNIFE )
        {
            
setLevelattackercvar_knife );
            
//setLevel( victim, -1 * cvar_knife );
        
}
        else
        {
            
setLevelattackercvar_kill );
            
//setLevel( victim, -1 * cvar_kill );
        
}
    }
    ++
g_iKillsattacker ];
    ++
g_iDeathsvictim ];
}

public 
setLevelidvalue )
{
    if( 
g_iRangoid ] >= charsmaxg_aRangos ) || g_iRangoid ] < )
        return;
    
    new 
iLevel g_iRangoid ];

    
g_iFragsid ] += value;

    while( 
g_iFragsid ] >= g_aRangosg_iRangoid ] >= 19 19 g_iRangoid ] ][ level_req ] && g_iRangoid ] < 19 )
        ++
g_iRangoid ];
    
    if( 
iLevel g_iRangoid ] )
        
client_print_coloridprint_team_blue"^x01Subiste al rango ^x04%s"g_aRangosg_iRangoid ] ][ rango_name ] );

    while( 
g_iFragsid ] < g_aRangosg_iRangoid ]-<= g_iRangoid ]  ][ level_req ] && g_iRangoid ] > )
        --
g_iRangoid ];

    
iLevel g_iRangoid ];

    if( 
iLevel g_iRangoid ] )
        
client_print_coloridprint_team_blue"^x01Bajaste al rango ^x04%s"g_aRangosg_iRangoid ] ][ rango_name ] );
    
    if( 
g_iFragsid ] <= 0)
        
g_iFragsid ] = 0;

}

@
changeName_OnPlayer(idinfobuffer[], szNewName[]) 
{
    if (!
is_user_connected(id) )
        return 
HC_SUPERCEDE;
    
    new 
szOldName[32];
    
get_entvar(idvar_netnameszOldNamecharsmax(szOldName));
 
    
SetHookChainArg(3ATYPE_STRINGszOldName);
    
set_msg_blockget_entvar(idvar_deadflag) != DEAD_NO g_iMsgText g_iMsgSayTextBLOCK_ONCE );
    return 
HC_SUPERCEDE;


public 
checkRankid )
{
    if(  
g_iStatusid ] != LOGUEADO )
        return;

    new 
szQueryMAX_MENU_LENGTH ], iData];
    
    
iData] = id;
    
iData] = SQL_RANK;

    
formatexszQuerycharsmaxszQuery ), "SELECT (COUNT(*) + 1) FROM `%s` WHERE `rango` > '%d' OR (`rango` = '%d' AND `frags` > '%d')"szTableg_iRangoid ], g_iRangoid ], g_iFragsid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData); 
}

public 
checkTopid )
{
    new 
szTabla200 ], iData];
    
    
iData] = id;
    
iData] = TOP15;
    
formatexszTablacharsmaxszTabla ), "SELECT Pj, rango, frags FROM %s ORDER BY rango DESC, frags DESC LIMIT 8"szTable );
    
    
SQL_ThreadQuery(g_hTuple"DataHandler"szTablaiData);
    
}

public 
guardar_datosid 
{
    if( 
g_iStatusid ] != LOGUEADO )
        return;

    new 
szQueryMAX_MENU_LENGTH ], iData], szIP[34];

    
iData] = id;
    
iData] = GUARDAR_DATOS;

    
get_user_ipidszIPcharsmaxszIP ), true );
    
    
formatexszQuerycharsmaxszQuery ), "UPDATE %s SET rango='%d', frags='%d', Pj=^"%s^", hs='%d', kills='%d', deaths='%d', ip=^"%s^" WHERE id='%d'"
        
szTableg_iRangoid ], g_iFragsid ], g_szPlayerNameid ], g_iHsid ], g_iKillsid ], g_iDeathsid ], szIPg_idid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
}

public 
DataHandlerfailstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:flTime 
{
    switch( 
failstate 
    {
        case 
TQUERY_CONNECT_FAILED
        {
            
log_to_file"SQL_LOG_TQ.txt""Error en la conexion al MySQL [%i]: %s"error2error );
            return;
        }
        case 
TQUERY_QUERY_FAILED:
        
log_to_file"SQL_LOG_TQ.txt""Error en la consulta al MySQL [%i]: %s"error2error );
    }
    
    new 
id data];
    
    if( !
is_user_connectedid ) )
        return;
    
    switch( 
data] ) 
    {
        case 
LOGUEAR_USUARIO
        {
            if( 
SQL_NumResultsQuery ) )
            {
                
g_idid ] = SQL_ReadResultQuery);
                
g_iRangoid ] = SQL_ReadResultQuery);
                
g_iFragsid ] = SQL_ReadResultQuery);
                
g_iHsid ] = SQL_ReadResultQuery);
                
g_iKillsid ] = SQL_ReadResultQuery);
                
g_iDeathsid ] = SQL_ReadResultQuery);
                
                
set_task1.0"ShowHUD"id+TASK_SHOWHUD__"b" );

                
g_iStatusid ] = LOGUEADO;

                
client_print_coloridprint_team_blue"^x01TU ID DE CUENTA ES ^x04%d."g_idid ]);
                
client_print_coloridprint_team_blue"^x01Bienvenido ^x03%s ^x01tu rango es ^x04%s"g_szPlayerNameid ], g_aRangosg_iRangoid ] ][ rango_name ] );
            }
            else
            {
                
g_iRangoid ] = 0
                
g_iFragsid ] = 0;
                
g_iHsid ] = 0;
                
g_iKillsid ] = 0;
                
g_iDeathsid ] = 0;

                new 
szQueryMAX_MENU_LENGTH ], iData], szAuthid64 ], szIP[34];

                if( 
is_user_steamid ) )
                    
get_user_authididszAuthidcharsmaxszAuthid ) );
                else
                    
copyszAuthidcharsmaxszAuthid ), g_szPlayerNameid ] );
                    
                
get_user_ipidszIPcharsmaxszIP ), true );
                
                
iData] = id;
                
iData] = REGISTRAR_USUARIO;
                
                
formatexszQuerycharsmaxszQuery ), "INSERT INTO %s (steam_id, rango, frags, hs, kills, deaths, Pj, ip) VALUES (^"%s^", %d, %d, %d, %d, %d, ^"%s^", ^"%s^")"
                    
szTableszAuthidg_iRangoid ], g_iFragsid ], g_iHsid ], g_iKillsid ], g_iDeathsid ], g_szPlayerNameid ], szIP );
                
console_print(0"%s"szQuery);
                
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
            }
        }
        case 
REGISTRAR_USUARIO
        {
            if( 
failstate TQUERY_SUCCESS 
            {
                
console_printid"Error al crear un usuario: %s."error );
            }
            else
            {
                new 
szQueryMAX_MENU_LENGTH ], iData], szAuthid64 ];

                if( 
is_user_steamid ) )
                    
get_user_authididszAuthidcharsmaxszAuthid ) );
                else
                    
copyszAuthidcharsmaxszAuthid ), g_szPlayerNameid ] );

                
iData] = id;
                
iData] = LOGUEAR_USUARIO;

                
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^""szTableszAuthid );
                
console_print(0"%s"szQuery);
                
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
            }
        }
        case 
GUARDAR_DATOS:
        {
            if( 
failstate TQUERY_SUCCESS )
            {
                
console_printid"Error en el guardado de datos." );
            }
            else
            {
                
client_print_coloridprint_team_blue"^x04 Datos guardados en %.0f segundos."flTime );
            }
        }
        case 
SQL_RANK:
        {
            if( 
SQL_NumResultsQuery ) )
            {
                static 
szBufferMAX_MOTD_LENGTH-];
                
formatex(szBuffercharsmax(szBuffer), "http://divstarproject.com/zombie_escape/rank_csgo.php?nick=%s&id=%d&rango=%s&kills=%d&deaths=%d"
                    
g_szPlayerNameid ], SQL_ReadResultQuery), g_aRangosg_iRangoid ] ][ rango_name ], g_iKillsid ], g_iDeathsid ] );
                
                
show_motdidszBuffer"RankStats" );
            }
        }
        case 
TOP15:
        {
            if( 
SQL_NumResultsQuery ) )
            {
                static 
lenszBufferMAX_MOTD_LENGTH-], iszName32 ];
                
len 00;

                
len format(szBuffer[len], charsmax(szBuffer) - len"<meta charset=UTF-8>\
            <style>*{margin:0px;}body{color:#fff;background: rgba(2, 0, 0, 0.2) url(https://images7.alphacoders.com/570/570405.png); background-repeat: no-repeat; background-size: cover; background-attachment: fixed;}table{border-collapse:collapse;border: 1px solid #ffff;text-align:center;}</style>\
            <body><table width=100%% border=1><tr bgcolor=#4c4c4c style=^"
color:#fff;^"><th width=5%%>#<th width=50%%>Usuario<th width=15%%>Rango\
            
<th width=15%%>EXP<th width=15%%>Insignea");
                while( SQL_MoreResults( Query ) )
                {
                    SQL_ReadResult( Query, 0, szName, charsmax( szName ) );
                    len += format( szBuffer[len], charsmax(szBuffer) - len, "
<tr><td>%i<td>%s<td>%s<td>%d<td><img src=^"%s^" width=80 hight=30/>",
                        i+1, szName, g_aRangos[ SQL_ReadResult( Query, 1 ) ][ rango_name ], SQL_ReadResult( Query, 2 ), g_aRangos[ SQL_ReadResult( Query, 1 ) ][ url_rango ] );
                    ++i;
                    SQL_NextRow( Query );
                }
                show_motd( id, szBuffer, "
Top 8 Rangos" );
            }
        }
        
    }
}

public clcmd_say( id )
{
    static said[ 191 ];
    read_args( said, charsmax( said ) );
    remove_quotes( said );
    replace_all( said, charsmax( said ), "
%", " " );
    replace_all( said, charsmax( said ), "
#", " " );

    
if ( !ValidMessagesaid) ) 
        return 
PLUGIN_CONTINUE;

    static 
color11 ], prefix91 ];
    
get_user_teamidcolorcharsmaxcolor ) );
    
    
formatexprefixcharsmax(prefix), "%s ^x04%s^x01[ ^x04%s^x01 ]^x03 %s"is_valid_player_aliveid ) ? "^x01" "^x01*MUERTO* "is_user_adminid ) ? g_iAdminPrefixid ] : ""g_aRangosg_iRangoid ] ][ rango_name ], g_szPlayerNameid ] );
    
    if( 
is_user_adminid ) ) formatsaidcharsmaxsaid ), "^x04%s"said );
    
formatsaidcharsmaxsaid ), "%s^x01 :  %s"prefixsaid );
    
    static 
iteam[11];
    for ( 
1<= MAX_PLAYERSi++ ) 
    {
        if ( !
is_user_connected) ) 
            continue;
            
        
get_user_teamiteamcharsmaxteam ) );
        
changeTeamInfoicolor );
        
writeMessageisaid );
        
changeTeamInfoiteam );
        
    }
    return 
PLUGIN_HANDLED_MAIN;
}
public 
changeTeamInfoplayerteam[ ] )
{
    
message_beginMSG_ONEget_user_msgid("TeamInfo"), _player );
    
write_byteplayer );
    
write_stringteam );
    
message_end( );
}

public 
writeMessageplayermessage[ ] )
{
    
message_beginMSG_ONEg_iMsgSayText, {000}, player );
    
write_byteplayer );
    
write_stringmessage );
    
message_end( );
}

public 
ShowHUDtaskid )
{
    static 
id;
    
id ID_SHOWHUD;
    
    if ( !
is_valid_player_aliveid ) )
    {
        
id get_entvaridvar_iuser2 );
        if ( !
is_valid_player_aliveid ) ) return;
    }

    
set_hudmessage25500, -1.00.8710.02.0 );

    if ( 
id != ID_SHOWHUD )
        
ShowSyncHudMsg(ID_SHOWHUDg_msgHud"Observando al jugador: ^n%s^n^nRango: %s^nNivel: %d | Exp: %s"g_szPlayerNameid ], g_aRangosg_iRangoid ] ][ rango_name ], g_iRangoid ], xAddPointg_iFragsid ] ) );
    else
        
ShowSyncHudMsg(ID_SHOWHUDg_msgHud"Rango: %s^nNivel: %d - Exp: %s"g_aRangosg_iRangoid ] ][ rango_name ], g_iRangoid ], xAddPointg_iFragsid ] ) );
    
}

public 
MySQL_Init( )
{
    
g_hTuple SQL_MakeDbTupleMYSQL_HOSTMYSQL_USERMYSQL_PASSMYSQL_DATEBASE );
    
    if( !
g_hTuple 
    {
        
log_to_file"SQL_ERROR.txt""No se pudo conectar con la base de datos." );
        return 
pause"a" );
    }

    return 
PLUGIN_CONTINUE;
}
public 
plugin_end( )
    
SQL_FreeHandleg_hTuple ); 

stock is_user_adminid )
{
    new 
__flagsget_user_flagsid );
    return ( 
__flags>&& !( __flags&ADMIN_USER ) );
}

stock ValidMessage(text[], maxcount
{
    static 
lenicount;
    
len strlen(text);
    
count 0;
    
    if (!
len)
        return 
false;
    
    for (
0leni++) 
    {
        if (
text[i] != ' '
        {
            
count++;
            if (
count >= maxcount)
                return 
true;
        }
    }
    return 
false;

stock xAddPoint(number)
{
    new 
countistr[29], str2[35], len;
    
num_to_str(numberstrcharsmax(str));
    
len strlen(str);

    for (
0leni++)
    {
        if(
!= && ((len i) %== 0))
        {
            
add(str2charsmax(str2), "."1);
            
count++;
            
add(str2[i+count], 1str[i], 1);
        }
        else 
add(str2[i+count], 1str[i], 1);
    }
    
    return 
str2;
}
WeaponIdType:GetCurrentWeapon( const iId )
{
    new 
iItem get_memberiIdm_pActiveItem );
        
    if ( !
is_entityiItem ) )
    {
        return 
WEAPON_NONE;
    }
    
    new 
WeaponIdType:iWeapon get_memberiItemm_iId );
    
    if ( !( 
WEAPON_P228 <= iWeapon <= WEAPON_P90 ) )
    {
        return 
WEAPON_NONE;
    }
    
    return 
iWeapon;



IMAGENES
[Imagen: 20201105121534-1.jpg]
[Imagen: 20201105122443-1.jpg]
https://github.com/Chris4589/rangos_csgo_cs16

Evitan cambiar el autor. ( mensaje dirigido a los tipos con editions a la par del nombre )


Archivos adjuntos
.sma   Descargar AMXX / ctf_rangos.sma (Tamaño: 22.15 KB / Descargas: 85)
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#2
Remove lo de tutor que no se puede publicar aca xd
Responder
#3
Lo probe y hay varios bugs y cosas incompletas, para el que este interesado les detallare cada bug por si los quieren arreglar

1) Al tener un Skin de Arma ''Locked'' o Bloqueada, en el Menu del Arma seleccionada cada arma se muestra asi:

''[Locked]''
''[Locked]''
''[Locked]''
''[Locked]''
etc...

Cuando facilmente podria ser

ArmaConLuces ''[Locked]''
etc...
____

2) Al botar un arma con skin, no puedes volver a tomarla, si no que esta desaparece, pero aveces si deja.

____

3) Al elegir por ejemplo, el Skin numero 2 de Cuchillos, automaticamente pasaras a usar los skins numero 2 de las demas armas, aunque igual probe dando 150k de puntos periodicamente y me da daba un skin de arma, si me doy 150k+, otro skin y asi...

____

4) Al elegir un skin por ejemplo de la M4A1, y quieres usar otro estando disponible, seguiras teniendo el primero que escogiste (creo, pero probe y me paso)

____

Eso es como lo mas notable que vi, el aporte en si esta bueno, solo son esas pequeñeces que alguien mas puede arreglar.

Lo que si, para que son las Divisiones? Ya que me dio 600k de puntos, gane 1 de division y perdi los Skins obtenidos, es como llegar al ultimo rango y perder las skins y empezar de 0 (o talvez mal entendi el plugin)

Buen aporte!
Responder
#4
(02/04/2017, 02:08 AM)metita escribió: Lo probe y hay varios bugs y cosas incompletas, para el que este interesado les detallare cada bug por si los quieren arreglar

1) Al tener un Skin de Arma ''Locked'' o Bloqueada, en el Menu del Arma seleccionada cada arma se muestra asi:

''[Locked]''
''[Locked]''
''[Locked]''
''[Locked]''
etc...

Cuando facilmente podria ser

ArmaConLuces ''[Locked]''
etc...
____

2) Al botar un arma con skin, no puedes volver a tomarla, si no que esta desaparece, pero aveces si deja.

____

3) Al elegir por ejemplo, el Skin numero 2 de Cuchillos, automaticamente pasaras a usar los skins numero 2 de las demas armas, aunque igual probe dando 150k de puntos periodicamente y me da daba un skin de arma, si me doy 150k+, otro skin y asi...

____

4) Al elegir un skin por ejemplo de la M4A1, y quieres usar otro estando disponible, seguiras teniendo el primero que escogiste (creo, pero probe y me paso)

____

Eso es como lo mas notable que vi, el aporte en si esta bueno, solo son esas pequeñeces que alguien mas puede arreglar.

Lo que si, para que son las Divisiones? Ya que me dio 600k de puntos, gane 1 de division y perdi los Skins obtenidos, es como llegar al ultimo rango y perder las skins y empezar de 0 (o talvez mal entendi el plugin)

Buen aporte!

1-
Código PHP:
for(new 0sizeof Modelosi++)
    {
        if(
Modelos[i][CATEGORIA] != g_isCatid ]) continue;
        
        
Item[0] = i;
        
        if(
g_isRango[id] >= Modelos[i][Nivel])
            
        
menu_additem(menuModelos[i][NAMEE], Item);
        else
        
menu_additem(menu"\r[Locked]""");
        
    } 

--->
Código PHP:
for(new 0sizeof Modelosi++)
    {
        if(
Modelos[i][CATEGORIA] != g_isCatid ]) continue;
        
        
Item[0] = i;
        
        if(
g_isRango[id] >= Modelos[i][Nivel])
            
        
menu_additem(menuModelos[i][NAMEE], Item);
        else
        {
            new 
lock_txt[100];
            
formatex(lock_txtcharsmax(lock_txt), "%s \r[Locked]"Modelos[i][NAMEE])
            
menu_additem(menulock_txt"");
        
    } 

2) tendrian que editar la funcion fw_SetModel (me da paja, pero les acorté el camino)

Código PHP:
if (removeweapons 0.0
    { 
        static class[
10] ;
        
pev(entitypev_classname, class, sizeof class - 1) ;
        
        if (
equal(class, "weaponbox")) 
        { 
            
set_pev(entitypev_nextthinkget_gametime() + removeweapons) ;
            return; 
        } 
    } 
Responder
#5
Lindo aporte Crab

PD: Hay cosas por optimizar
PD2: Quita el tutor, que no esta permitido.
Responder
#6
undefined
Responder
#7
@metita; siempre te da el primero por que no sirve el menú, como dije nunca lo termine ya que nunca lo utilice...
que tiene que diga locked? yo así lo quise y no es un 'bug' compañero.

siempre desaparece el arma.. así lo quise igual ya que era con FFA y daba alg muchas armas.

si subes 150k todas las armas se actualizaran con su respectiva skin

no veo que sean bugs..

sobre la división fue lo ultimo que estaba agregando hace tiempo y les iba a dar otras skins pero nunca lo termine.

de todas maneras gracias! pacman

(02/04/2017, 11:29 AM)[MxE]M4T4D0R DJ's escribió: undefined

a chingar a su madre

(02/04/2017, 08:09 AM)zekk- escribió: Lindo aporte Crab

PD: Hay cosas por optimizar
PD2: Quita el tutor, que no esta permitido.

lo sé pero, haber menciona una..
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#8
(02/04/2017, 03:15 PM)NkkI escribió: @metita; siempre te da el primero por que no sirve el menú, como dije nunca lo termine ya que nunca lo utilice...
que tiene que diga locked? yo así lo quise y no es un 'bug' compañero.

siempre desaparece el arma.. así lo quise igual ya que era con FFA y daba alg muchas armas.

si subes 150k todas las armas se actualizaran con su respectiva skin

no veo que sean bugs..

sobre la división fue lo ultimo que estaba agregando hace tiempo y les iba a dar otras skins pero nunca lo termine.

de todas maneras gracias! pacman

(02/04/2017, 11:29 AM)[MxE]M4T4D0R DJ's escribió: undefined

a chingar a su madre

(02/04/2017, 08:09 AM)zekk- escribió: Lindo aporte Crab

PD: Hay cosas por optimizar
PD2: Quita el tutor, que no esta permitido.

lo sé pero, haber menciona una..

Solo detalle los bugs que a mi parecer lo son, no tienes porque arreglarlos ni nada, de hecho esperaba que detallaras si es asi, es lo que querias hacer o no es lo que querias hacer para que otra persona pueda arreglarlo y usarlo a su gusto, sobre el punto 1...

No dije que el Locked estaba mal, solo dije que facilmente podria ser ElNombreDelArma + [Locked].
Responder
#9
Código PHP:
g_isElegida[id] = Item[0]; 
------->
Código PHP:
g_isElegida[id] = Item[item]; 

si no me equivoco
Responder
#10
Buen Aporte

A sumar pots prri > pacman
[Imagen: 738.gif]
(11/05/2017, 02:13 PM)FreDDy escribió:
(11/05/2017, 02:08 PM)Dieguito escribió: Tienes que estar bromeando, todos los zp traen para que pongas tus sonidos (así sea BB, una extensión más del ZP), y si no los trae pues fuiste timado, no te queda otra cosa que revisar el BaseBuilder.ini y buscar donde estén los sonidos, o crearlos tú mismo dentro del BB.

BaseBuilder.ini? Vos estás drogado? El bb 6.5 no trae nada de eso. Te fumaste del bueno.


(08/11/2016, 10:14 PM)FreDDy escribió: Cómo mierda querés aprender si estás a cada 2 segundos pidiendo mierda tras mierda.
Responder
#11
Nice v:

Responder
#12
Cambie el plugin original por uno que hice hace un mes, usa reAPI & MySQL.


espero a alguien le sirva, salu2.
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#13
(05/11/2020, 03:37 PM)Hypnotize escribió: Cambie el plugin original por uno que hice hace un mes, usa reAPI & MySQL.


espero a alguien le sirva, salu2.

bueno aporte lo usare para el ctf que estoy editando pacman
Pawn Básico no critiquen xD  Approved

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)