[Cerere Plugin] top15 like csgo

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
User avatar
limbaa
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 26 Oct 2015, 11:25
Detinator Steam: Da
Detinator server CS: GOX.BLACKGAMES.RO
SteamID: tenlimba96
Fond eXtream: 0
Discord: GaBy#1976
Has thanked: 4 times
Contact:

06 Nov 2022, 16:57

Plugin Cerut: top15 like csgo
Descriere (adica ce face el mai exact): Salut extreamcs! Am și eu următorul pluginul și vreau sa i se scoată sistemul de înregistrare și logare și tag chatul mulțumesc anticipat.
Ai cautat pluginul?(daca da, precizeaza cum): -
Serverul impune conditii strict HLDS/REHLDS?: -
Necesita mod special?: -
Versiune AMXX Server: -

Code: Select all

/*
    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_name[ 80 ],
    level_req,
    url_rango[ 120 ]
};

new const g_aRangos[ 19 ][ 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_hs, cvar_knife, cvar_kill, cvar_hegreande;
new g_msgHud, g_iHudTeam, g_iMsgSayText, g_iMsgText;

new g_iRango[ 33 ], g_iFrags[ 33 ], g_iTeam[ 33 ], g_iHs[ 33 ], g_iDeaths[ 33 ], g_iKills[ 33 ];
new g_szPlayerName[ 33 ][ 32 ], g_iAdminPrefix[ 33 ][ 32 ], g_szAdminData[ MAXTAGADMS ][ MAX ][ 33 ];

new g_id[ 33 ];
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_iStatus[ 33 ];

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

    RegisterHookChain( RG_CBasePlayer_Killed, "@Killed_OnPlayer", .post = true );
    RegisterHookChain( RG_CBasePlayer_Spawn, "@Spawn_OnPlayer", .post = true );
    RegisterHookChain( RG_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 line[ 144 ], file, i = 0;
    file = fopen( "addons/amxmodx/configs/users.ini", "rt" );
    
    while( !feof( file ) )
    {
        fgets(file, line, charsmax( line ) );
        trim(line);
        
        if( !line[ 0 ] || line[ 0 ] == ';' || line[ 0 ] == '/' )
            continue;
        
        i++;
        parse( line, 
            g_szAdminData[ i ][ STEAM_ID ], charsmax( g_szAdminData[ ][ ] ), 
            g_szAdminData[ i ][ PASSWORD ], charsmax( g_szAdminData[ ][ ] ), 
            g_szAdminData[ i ][ ADMIN_FLAGS ], charsmax( g_szAdminData[ ][ ] ), 
            g_szAdminData[ i ][ ADMIN_TYPE ], charsmax( g_szAdminData[ ][ ] ), 
            g_szAdminData[ i ][ ADMIN_TAG ], charsmax( g_szAdminData[ ][ ] )
        );
        
        if( i >= MAXTAGADMS )
        {
            log_amx( "Usted debe aumentar el limite de tag-administradores." );
            log_amx( "El limite establecido es de %i.", MAXTAGADMS );
            break;
        }
    }
    fclose( file );
}

public client_putinserver( id )
{
    if( is_user_bot( id ) )
        return;

    new szAuthid[ 64 ];
    get_user_name( id, g_szPlayerName[ id ], charsmax( g_szPlayerName[ ] ) );

    g_iStatus[ id ] = NO_LOGUEADO;
    g_iAdminPrefix[ id ][ 0 ] = EOS;

    if( is_user_steam( id ) )
        get_user_authid( id, szAuthid, charsmax( szAuthid ) );
    else
        copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];

    iData[ 0 ] = id;
    iData[ 1 ] = LOGUEAR_USUARIO;

    formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
    
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );

    if( is_user_admin( id ) )
    {
        for(new i = 0; i < MAXTAGADMS; i++)
        {
            if( equali( szAuthid, g_szAdminData[i][STEAM_ID] ) )
            {
                formatex( g_iAdminPrefix[ id ], charsmax( g_iAdminPrefix[ ] ), g_szAdminData[ i ][ ADMIN_TAG ] );
                break;
            }
        }
    }
}

public client_disconnected( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
    {
        guardar_datos( id );

        g_iStatus[ id ] = NO_LOGUEADO;
    }   
    g_iAdminPrefix[ id ][ 0 ] = EOS;
}

public Status_team( id ) 
    g_iTeam[ id ] = read_data( 2 );

public OcultarInfoPlayer( id )
    ClearSyncHud( id, g_iHudTeam );

public Status_team_info( id ) 
{ 
    if( is_valid_player_alive( id ) ) 
    { 
        new target = read_data( 2 );
        if ( g_iTeam[ id ] == 1 ) 
        { 
            if( get_member( target, m_iTeam ) == TEAM_TERRORIST ) set_hudmessage( 255, 0, 10, -1.0, 0.55, 0, 6.0, 12.0 );
            else set_hudmessage(0, 255, 255, -1.0, 0.55, 0, 6.0, 12.0);
            ShowSyncHudMsg(id, g_iHudTeam, "[%s]^n%s", g_aRangos[ g_iRango[ target ] ][ rango_name ], g_szPlayerName[ target ] );
        }
        else 
        { 
            if ( get_member( target, m_iTeam ) == TEAM_TERRORIST ) set_hudmessage(255, 0, 10, -1.0, 0.55, 0, 6.0, 12.0);
            else set_hudmessage(0, 255, 225, -1.0, 0.55, 0, 6.0, 12.0);
            ShowSyncHudMsg(id, g_iHudTeam, "[%s]^n%s", g_aRangos[ g_iRango[ target ] ][ rango_name ], g_szPlayerName[ target ]);
        }
    }
}

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

        guardar_datos( i );
    }
    client_print_color( 0 , print_team_blue, "^x01Sistema de rangos by ^x04%s", g_szAuthor );
}
@Spawn_OnPlayer( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
        guardar_datos( id );
}
@Killed_OnPlayer( victim, attacker, shouldgib )
{
    if( !is_valid_player_alive( attacker ) || victim == attacker || get_member( attacker, m_iTeam ) == get_member( victim, m_iTeam ) )
        return;

    if( get_member( attacker, m_LastHitGroup ) == HITGROUP_HEAD ) 
    {
        setLevel( attacker, cvar_hs );
        //setLevel( victim, -1 * cvar_hs );

        ++g_iHs[ attacker ];
    }
    else
    {
        if( GetCurrentWeapon( attacker ) == WEAPON_HEGRENADE )
        {
            setLevel( attacker, cvar_hegreande );
            //setLevel( victim, -1 * cvar_hegreande );
        }
        else if( GetCurrentWeapon( attacker ) == WEAPON_KNIFE )
        {
            setLevel( attacker, cvar_knife );
            //setLevel( victim, -1 * cvar_knife );
        }
        else
        {
            setLevel( attacker, cvar_kill );
            //setLevel( victim, -1 * cvar_kill );
        }
    }
    ++g_iKills[ attacker ];
    ++g_iDeaths[ victim ];
}

public setLevel( id, value )
{
    if( g_iRango[ id ] >= charsmax( g_aRangos ) || g_iRango[ id ] < 0 )
        return;
    
    new iLevel = g_iRango[ id ];

    g_iFrags[ id ] += value;

    while( g_iFrags[ id ] >= g_aRangos[ g_iRango[ id ] >= 19 ? 19 : g_iRango[ id ] ][ level_req ] && g_iRango[ id ] < 19 )
        ++g_iRango[ id ];
    
    if( iLevel < g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Subiste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );

    while( g_iFrags[ id ] < g_aRangos[ g_iRango[ id ]-1 <= 0 ? 0 : g_iRango[ id ]  ][ level_req ] && g_iRango[ id ] > 0 )
        --g_iRango[ id ];

    iLevel = g_iRango[ id ];

    if( iLevel > g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Bajaste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );
    
    if( g_iFrags[ id ] <= 0)
        g_iFrags[ id ] = 0;

}

@changeName_OnPlayer(id, infobuffer[], szNewName[]) 
{
    if (!is_user_connected(id) )
        return HC_SUPERCEDE;
    
    new szOldName[32];
    get_entvar(id, var_netname, szOldName, charsmax(szOldName));
 
    SetHookChainArg(3, ATYPE_STRING, szOldName);
    set_msg_block( get_entvar(id, var_deadflag) != DEAD_NO ? g_iMsgText : g_iMsgSayText, BLOCK_ONCE );
    return HC_SUPERCEDE;
} 

public checkRank( id )
{
    if(  g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = SQL_RANK;

    formatex( szQuery, charsmax( szQuery ), "SELECT (COUNT(*) + 1) FROM `%s` WHERE `rango` > '%d' OR (`rango` = '%d' AND `frags` > '%d')", szTable, g_iRango[ id ], g_iRango[ id ], g_iFrags[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); 
}

public checkTop( id )
{
    new szTabla[ 200 ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = TOP15;
    formatex( szTabla, charsmax( szTabla ), "SELECT Pj, rango, frags FROM %s ORDER BY rango DESC, frags DESC LIMIT 8", szTable );
    
    SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 );
    
}

public guardar_datos( id ) 
{
    if( g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szIP[34];

    iData[ 0 ] = id;
    iData[ 1 ] = GUARDAR_DATOS;

    get_user_ip( id, szIP, charsmax( szIP ), true );
    
    formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET rango='%d', frags='%d', Pj=^"%s^", hs='%d', kills='%d', deaths='%d', ip=^"%s^" WHERE id='%d'", 
        szTable, g_iRango[ id ], g_iFrags[ id ], g_szPlayerName[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], szIP, g_id[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
}

public DataHandler( failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:flTime ) 
{
    switch( failstate ) 
    {
        case TQUERY_CONNECT_FAILED: 
        {
            log_to_file( "SQL_LOG_TQ.txt", "Error en la conexion al MySQL [%i]: %s", error2, error );
            return;
        }
        case TQUERY_QUERY_FAILED:
        log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al MySQL [%i]: %s", error2, error );
    }
    
    new id = data[ 0 ];
    
    if( !is_user_connected( id ) )
        return;
    
    switch( data[ 1 ] ) 
    {
        case LOGUEAR_USUARIO: 
        {
            if( SQL_NumResults( Query ) )
            {
                g_id[ id ] = SQL_ReadResult( Query, 0 );
                g_iRango[ id ] = SQL_ReadResult( Query, 2 );
                g_iFrags[ id ] = SQL_ReadResult( Query, 3 );
                g_iHs[ id ] = SQL_ReadResult( Query, 5 );
                g_iKills[ id ] = SQL_ReadResult( Query, 6 );
                g_iDeaths[ id ] = SQL_ReadResult( Query, 7 );
                
                set_task( 1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b" );

                g_iStatus[ id ] = LOGUEADO;

                client_print_color( id, print_team_blue, "^x01TU ID DE CUENTA ES ^x04%d.", g_id[ id ]);
                client_print_color( id, print_team_blue, "^x01Bienvenido ^x03%s ^x01tu rango es ^x04%s", g_szPlayerName[ id ], g_aRangos[ g_iRango[ id ] ][ rango_name ] );
            }
            else
            {
                g_iRango[ id ] = 0; 
                g_iFrags[ id ] = 0;
                g_iHs[ id ] = 0;
                g_iKills[ id ] = 0;
                g_iDeaths[ id ] = 0;

                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ], szIP[34];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );
                    
                get_user_ip( id, szIP, charsmax( szIP ), true );
                
                iData[ 0 ] = id;
                iData[ 1 ] = REGISTRAR_USUARIO;
                
                formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (steam_id, rango, frags, hs, kills, deaths, Pj, ip) VALUES (^"%s^", %d, %d, %d, %d, %d, ^"%s^", ^"%s^")", 
                    szTable, szAuthid, g_iRango[ id ], g_iFrags[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], g_szPlayerName[ id ], szIP );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case REGISTRAR_USUARIO: 
        {
            if( failstate < TQUERY_SUCCESS ) 
            {
                console_print( id, "Error al crear un usuario: %s.", error );
            }
            else
            {
                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

                iData[ 0 ] = id;
                iData[ 1 ] = LOGUEAR_USUARIO;

                formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case GUARDAR_DATOS:
        {
            if( failstate < TQUERY_SUCCESS )
            {
                console_print( id, "Error en el guardado de datos." );
            }
            else
            {
                client_print_color( id, print_team_blue, "^x04 Datos guardados en %.0f segundos.", flTime );
            }
        }
        case SQL_RANK:
        {
            if( SQL_NumResults( Query ) )
            {
                static szBuffer[ MAX_MOTD_LENGTH-1 ];
                formatex(szBuffer, charsmax(szBuffer), "http://divstarproject.com/zombie_escape/rank_csgo.php?nick=%s&id=%d&rango=%s&kills=%d&deaths=%d", 
                    g_szPlayerName[ id ], SQL_ReadResult( Query, 0 ), g_aRangos[ g_iRango[ id ] ][ rango_name ], g_iKills[ id ], g_iDeaths[ id ] );
                
                show_motd( id, szBuffer, "RankStats" );
            }
        }
        case TOP15:
        {
            if( SQL_NumResults( Query ) )
            {
                static len, szBuffer[ MAX_MOTD_LENGTH-1 ], i, szName[ 32 ];
                len = 0, i = 0;

                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 ( !ValidMessage( said, 1 ) ) 
        return PLUGIN_CONTINUE;

    static color[ 11 ], prefix[ 91 ];
    get_user_team( id, color, charsmax( color ) );
    
    formatex( prefix, charsmax(prefix), "%s ^x04%s^x01[ ^x04%s^x01 ]^x03 %s", is_valid_player_alive( id ) ? "^x01" : "^x01*MUERTO* ", is_user_admin( id ) ? g_iAdminPrefix[ id ] : "", g_aRangos[ g_iRango[ id ] ][ rango_name ], g_szPlayerName[ id ] );
    
    if( is_user_admin( id ) ) format( said, charsmax( said ), "^x04%s", said );
    format( said, charsmax( said ), "%s^x01 :  %s", prefix, said );
    
    static i, team[11];
    for ( i = 1; i <= MAX_PLAYERS; i++ ) 
    {
        if ( !is_user_connected( i ) ) 
            continue;
            
        get_user_team( i, team, charsmax( team ) );
        changeTeamInfo( i, color );
        writeMessage( i, said );
        changeTeamInfo( i, team );
        
    }
    return PLUGIN_HANDLED_MAIN;
}
public changeTeamInfo( player, team[ ] )
{
    message_begin( MSG_ONE, get_user_msgid("TeamInfo"), _, player );
    write_byte( player );
    write_string( team );
    message_end( );
}

public writeMessage( player, message[ ] )
{
    message_begin( MSG_ONE, g_iMsgSayText, {0, 0, 0}, player );
    write_byte( player );
    write_string( message );
    message_end( );
}

public ShowHUD( taskid )
{
    static id;
    id = ID_SHOWHUD;
    
    if ( !is_valid_player_alive( id ) )
    {
        id = get_entvar( id, var_iuser2 );
        if ( !is_valid_player_alive( id ) ) return;
    }

    set_hudmessage( 255, 0, 0, -1.0, 0.87, 1, 0.0, 2.0 );

    if ( id != ID_SHOWHUD )
        ShowSyncHudMsg(ID_SHOWHUD, g_msgHud, "Observando al jugador: ^n%s^n^nRango: %s^nNivel: %d | Exp: %s", g_szPlayerName[ id ], g_aRangos[ g_iRango[ id ] ][ rango_name ], g_iRango[ id ], xAddPoint( g_iFrags[ id ] ) );
    else
        ShowSyncHudMsg(ID_SHOWHUD, g_msgHud, "Rango: %s^nNivel: %d - Exp: %s", g_aRangos[ g_iRango[ id ] ][ rango_name ], g_iRango[ id ], xAddPoint( g_iFrags[ id ] ) );
    
}

public MySQL_Init( )
{
    g_hTuple = SQL_MakeDbTuple( MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_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_FreeHandle( g_hTuple ); 

stock is_user_admin( id )
{
    new __flags= get_user_flags( id );
    return ( __flags>0 && !( __flags&ADMIN_USER ) );
}

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;
} 
stock xAddPoint(number)
{
    new count, i, str[29], str2[35], len;
    num_to_str(number, str, charsmax(str));
    len = strlen(str);

    for (i = 0; i < len; i++)
    {
        if(i != 0 && ((len - i) %3 == 0))
        {
            add(str2, charsmax(str2), ".", 1);
            count++;
            add(str2[i+count], 1, str[i], 1);
        }
        else add(str2[i+count], 1, str[i], 1);
    }
    
    return str2;
}
WeaponIdType:GetCurrentWeapon( const iId )
{
    new iItem = get_member( iId, m_pActiveItem );
        
    if ( !is_entity( iItem ) )
    {
        return WEAPON_NONE;
    }
    
    new WeaponIdType:iWeapon = get_member( iItem, m_iId );
    
    if ( !( WEAPON_P228 <= iWeapon <= WEAPON_P90 ) )
    {
        return WEAPON_NONE;
    }
    
    return iWeapon;
}
RoyalServer 2
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

07 Nov 2022, 23:53

unde se face înregistrarea și logarea?
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
limbaa
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 26 Oct 2015, 11:25
Detinator Steam: Da
Detinator server CS: GOX.BLACKGAMES.RO
SteamID: tenlimba96
Fond eXtream: 0
Discord: GaBy#1976
Has thanked: 4 times
Contact:

08 Nov 2022, 05:19

L E V I N wrote:
07 Nov 2022, 23:53
unde se face înregistrarea și logarea?
Scuză-mă pe mine am confundat pluginul ca e al 2-lea de tipul asta, la asta vreau sa se scoată tag chatul și mesajul hud
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

09 Nov 2022, 00:21

Code: Select all

/*
    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 tabsize 0

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

#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,
    MAX 
};

enum _:eRangos
{
    rango_name[ 80 ],
    level_req,
    url_rango[ 120 ]
};

new const g_aRangos[ 19 ][ 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; 

new cvar_hs, cvar_knife, cvar_kill, cvar_hegreande;
new g_iMsgSayText, g_iMsgText;

new g_iRango[ 33 ], g_iFrags[ 33 ], g_iHs[ 33 ], g_iDeaths[ 33 ], g_iKills[ 33 ];
new g_szPlayerName[ 33 ][ 32 ], g_szAdminData[ MAXTAGADMS ][ MAX ][ 33 ];

new g_id[ 33 ];
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_iStatus[ 33 ];

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

    RegisterHookChain( RG_CBasePlayer_Killed, "@Killed_OnPlayer", .post = true );
    RegisterHookChain( RG_CBasePlayer_Spawn, "@Spawn_OnPlayer", .post = true );
    RegisterHookChain( RG_CBasePlayer_SetClientUserInfoName, "@changeName_OnPlayer" );

    register_event("HLTV", "startRound_OnPlayer", "a", "1=0", "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" );

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

    MySQL_Init( );
}

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

public client_putinserver( id )
{
    if( is_user_bot( id ) )
        return;

    new szAuthid[ 64 ];
    get_user_name( id, g_szPlayerName[ id ], charsmax( g_szPlayerName[ ] ) );

    g_iStatus[ id ] = NO_LOGUEADO;

    if( is_user_steam( id ) )
        get_user_authid( id, szAuthid, charsmax( szAuthid ) );
    else
        copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];

    iData[ 0 ] = id;
    iData[ 1 ] = LOGUEAR_USUARIO;

    formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
    
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
}

public client_disconnected( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
    {
        guardar_datos( id );

        g_iStatus[ id ] = NO_LOGUEADO;
    }   
}

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

        guardar_datos( i );
    }
    client_print_color( 0 , print_team_blue, "^x01Sistema de rangos by ^x04%s", g_szAuthor );
}
@Spawn_OnPlayer( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
        guardar_datos( id );
}
@Killed_OnPlayer( victim, attacker, shouldgib )
{
    if( !is_valid_player_alive( attacker ) || victim == attacker || get_member( attacker, m_iTeam ) == get_member( victim, m_iTeam ) )
        return;

    if( get_member( attacker, m_LastHitGroup ) == HITGROUP_HEAD ) 
    {
        setLevel( attacker, cvar_hs );
        //setLevel( victim, -1 * cvar_hs );

        ++g_iHs[ attacker ];
    }
    else
    {
        if( GetCurrentWeapon( attacker ) == WEAPON_HEGRENADE )
        {
            setLevel( attacker, cvar_hegreande );
            //setLevel( victim, -1 * cvar_hegreande );
        }
        else if( GetCurrentWeapon( attacker ) == WEAPON_KNIFE )
        {
            setLevel( attacker, cvar_knife );
            //setLevel( victim, -1 * cvar_knife );
        }
        else
        {
            setLevel( attacker, cvar_kill );
            //setLevel( victim, -1 * cvar_kill );
        }
    }
    ++g_iKills[ attacker ];
    ++g_iDeaths[ victim ];
}

public setLevel( id, value )
{
    if( g_iRango[ id ] >= charsmax( g_aRangos ) || g_iRango[ id ] < 0 )
        return;
    
    new iLevel = g_iRango[ id ];

    g_iFrags[ id ] += value;

    while( g_iFrags[ id ] >= g_aRangos[ g_iRango[ id ] >= 19 ? 19 : g_iRango[ id ] ][ level_req ] && g_iRango[ id ] < 19 )
        ++g_iRango[ id ];
    
    if( iLevel < g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Subiste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );

    while( g_iFrags[ id ] < g_aRangos[ g_iRango[ id ]-1 <= 0 ? 0 : g_iRango[ id ]  ][ level_req ] && g_iRango[ id ] > 0 )
        --g_iRango[ id ];

    iLevel = g_iRango[ id ];

    if( iLevel > g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Bajaste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );
    
    if( g_iFrags[ id ] <= 0)
        g_iFrags[ id ] = 0;

}

@changeName_OnPlayer(id, infobuffer[], szNewName[]) 
{
    if (!is_user_connected(id) )
        return HC_SUPERCEDE;
    
    new szOldName[32];
    get_entvar(id, var_netname, szOldName, charsmax(szOldName));
 
    SetHookChainArg(3, ATYPE_STRING, szOldName);
    set_msg_block( get_entvar(id, var_deadflag) != DEAD_NO ? g_iMsgText : g_iMsgSayText, BLOCK_ONCE );
    return HC_SUPERCEDE;
} 

public checkRank( id )
{
    if(  g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = SQL_RANK;

    formatex( szQuery, charsmax( szQuery ), "SELECT (COUNT(*) + 1) FROM `%s` WHERE `rango` > '%d' OR (`rango` = '%d' AND `frags` > '%d')", szTable, g_iRango[ id ], g_iRango[ id ], g_iFrags[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); 
}

public checkTop( id )
{
    new szTabla[ 200 ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = TOP15;
    formatex( szTabla, charsmax( szTabla ), "SELECT Pj, rango, frags FROM %s ORDER BY rango DESC, frags DESC LIMIT 8", szTable );
    
    SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 );
    
}

public guardar_datos( id ) 
{
    if( g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szIP[34];

    iData[ 0 ] = id;
    iData[ 1 ] = GUARDAR_DATOS;

    get_user_ip( id, szIP, charsmax( szIP ), true );
    
    formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET rango='%d', frags='%d', Pj=^"%s^", hs='%d', kills='%d', deaths='%d', ip=^"%s^" WHERE id='%d'", 
        szTable, g_iRango[ id ], g_iFrags[ id ], g_szPlayerName[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], szIP, g_id[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
}

public DataHandler( failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:flTime ) 
{
    switch( failstate ) 
    {
        case TQUERY_CONNECT_FAILED: 
        {
            log_to_file( "SQL_LOG_TQ.txt", "Error en la conexion al MySQL [%i]: %s", error2, error );
            return;
        }
        case TQUERY_QUERY_FAILED:
        log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al MySQL [%i]: %s", error2, error );
    }
    
    new id = data[ 0 ];
    
    if( !is_user_connected( id ) )
        return;
    
    switch( data[ 1 ] ) 
    {
        case LOGUEAR_USUARIO: 
        {
            if( SQL_NumResults( Query ) )
            {
                g_id[ id ] = SQL_ReadResult( Query, 0 );
                g_iRango[ id ] = SQL_ReadResult( Query, 2 );
                g_iFrags[ id ] = SQL_ReadResult( Query, 3 );
                g_iHs[ id ] = SQL_ReadResult( Query, 5 );
                g_iKills[ id ] = SQL_ReadResult( Query, 6 );
                g_iDeaths[ id ] = SQL_ReadResult( Query, 7 );

                g_iStatus[ id ] = LOGUEADO;

                client_print_color( id, print_team_blue, "^x01TU ID DE CUENTA ES ^x04%d.", g_id[ id ]);
                client_print_color( id, print_team_blue, "^x01Bienvenido ^x03%s ^x01tu rango es ^x04%s", g_szPlayerName[ id ], g_aRangos[ g_iRango[ id ] ][ rango_name ] );
            }
            else
            {
                g_iRango[ id ] = g_iFrags[ id ] = g_iHs[ id ] = g_iKills[ id ] = g_iDeaths[ id ] = 0;

                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ], szIP[34];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );
                    
                get_user_ip( id, szIP, charsmax( szIP ), true );
                
                iData[ 0 ] = id;
                iData[ 1 ] = REGISTRAR_USUARIO;
                
                formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (steam_id, rango, frags, hs, kills, deaths, Pj, ip) VALUES (^"%s^", %d, %d, %d, %d, %d, ^"%s^", ^"%s^")", 
                    szTable, szAuthid, g_iRango[ id ], g_iFrags[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], g_szPlayerName[ id ], szIP );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case REGISTRAR_USUARIO: 
        {
            if( failstate < TQUERY_SUCCESS ) 
            {
                console_print( id, "Error al crear un usuario: %s.", error );
            }
            else
            {
                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

                iData[ 0 ] = id;
                iData[ 1 ] = LOGUEAR_USUARIO;

                formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case GUARDAR_DATOS:
        {
            if( failstate < TQUERY_SUCCESS )
            {
                console_print( id, "Error en el guardado de datos." );
            }
            else
            {
                client_print_color( id, print_team_blue, "^x04 Datos guardados en %.0f segundos.", flTime );
            }
        }
        case SQL_RANK:
        {
            if( SQL_NumResults( Query ) )
            {
                static szBuffer[ MAX_MOTD_LENGTH-1 ];formatex(szBuffer, charsmax(szBuffer), "http://divstarproject.com/zombie_escape/rank_csgo.php?nick=%s&id=%d&rango=%s&kills=%d&deaths=%d",g_szPlayerName[ id ], SQL_ReadResult( Query, 0 ), g_aRangos[ g_iRango[ id ] ][ rango_name ], g_iKills[ id ], g_iDeaths[ id ] );
                show_motd( id, szBuffer, "RankStats" );
            }
        }
        case TOP15:
        {
            if( SQL_NumResults( Query ) )
            {
                static len, szBuffer[ MAX_MOTD_LENGTH-1 ], i, szName[ 32 ];
                len = i = 0;
                len = formatex(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 += formatex( 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 MySQL_Init( )
{
    g_hTuple = SQL_MakeDbTuple( MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATEBASE );
    
    if( !g_hTuple ) 
    {
        log_to_file( "SQL_ERROR.txt", "No se pudo conectar con la base de datos." );
        return pause( "a" );
    }
}

public plugin_end( )
{
	if(g_hTuple!=INVALID_HANDLE)
	{
		SQL_FreeHandle( g_hTuple );
	}
}

stock is_user_admin( id )
{
    static __flags; __flags= get_user_flags( id );
    return ( __flags>0 && !( __flags&ADMIN_USER ) );
}

WeaponIdType:GetCurrentWeapon( const iId )
{
    new iItem = get_member( iId, m_pActiveItem );
        
    if ( !is_entity( iItem ) )
    {
        return WEAPON_NONE;
    }
    
    new WeaponIdType:iWeapon = get_member( iItem, m_iId );
    
    if ( !( WEAPON_P228 <= iWeapon <= WEAPON_P90 ) )
    {
        return WEAPON_NONE;
    }
    
    return iWeapon;
}
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
limbaa
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 26 Oct 2015, 11:25
Detinator Steam: Da
Detinator server CS: GOX.BLACKGAMES.RO
SteamID: tenlimba96
Fond eXtream: 0
Discord: GaBy#1976
Has thanked: 4 times
Contact:

13 Nov 2022, 09:16

Salut, scuze ca raspund asa tarziu dar imi da o eroare la plugin cand il testez

Code: Select all

L 11/13/2022 - 09:13:40: [AMXX] Displaying debug trace (plugin "top15.amxx", version "1.0b")
L 11/13/2022 - 09:13:40: [AMXX] Run time error 10: native error (native "REU_GetAuthtype")
L 11/13/2022 - 09:13:40: [AMXX]    [0] textMwSQ8u.sma::client_putinserver (line 202)
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

13 Nov 2022, 13:11

reapi cu care compilezi nu coincide cu cel dp sv, sau cu reunion
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
limbaa
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 26 Oct 2015, 11:25
Detinator Steam: Da
Detinator server CS: GOX.BLACKGAMES.RO
SteamID: tenlimba96
Fond eXtream: 0
Discord: GaBy#1976
Has thanked: 4 times
Contact:

15 Nov 2022, 06:59

Am făcut update și la reunion și la reapi cu ultimile versiuni, am recompilat pluginul cu versiunea de reapi de pe server dar problema continua
Edit: poate să fie de la avertismentele astea?:

Code: Select all

textry2LMB.sma(491) : warning 209: function "MySQL_Init" should return a value
textry2LMB.sma(495) : warning 213: tag mismatch
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

15 Nov 2022, 16:16

păi acu numa e eroarea aia cu reu deci plg va merge, că s alte erori asta e

Code: Select all

/*
    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 tabsize 0

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

#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,
    MAX 
};

enum _:eRangos
{
    rango_name[ 80 ],
    level_req,
    url_rango[ 120 ]
};

new const g_aRangos[ 19 ][ 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; 

new cvar_hs, cvar_knife, cvar_kill, cvar_hegreande;
new g_iMsgSayText, g_iMsgText;

new g_iRango[ 33 ], g_iFrags[ 33 ], g_iHs[ 33 ], g_iDeaths[ 33 ], g_iKills[ 33 ];
new g_szPlayerName[ 33 ][ 32 ], g_szAdminData[ MAXTAGADMS ][ MAX ][ 33 ];

new g_id[ 33 ];
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_iStatus[ 33 ];

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

    RegisterHookChain( RG_CBasePlayer_Killed, "@Killed_OnPlayer", .post = true );
    RegisterHookChain( RG_CBasePlayer_Spawn, "@Spawn_OnPlayer", .post = true );
    RegisterHookChain( RG_CBasePlayer_SetClientUserInfoName, "@changeName_OnPlayer" );

    register_event("HLTV", "startRound_OnPlayer", "a", "1=0", "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" );

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

    MySQL_Init( );
}

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

public client_putinserver( id )
{
    if( is_user_bot( id ) )
        return;

    new szAuthid[ 64 ];
    get_user_name( id, g_szPlayerName[ id ], charsmax( g_szPlayerName[ ] ) );

    g_iStatus[ id ] = NO_LOGUEADO;

    if( is_user_steam( id ) )
        get_user_authid( id, szAuthid, charsmax( szAuthid ) );
    else
        copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];

    iData[ 0 ] = id;
    iData[ 1 ] = LOGUEAR_USUARIO;

    formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
    
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
}

public client_disconnected( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
    {
        guardar_datos( id );

        g_iStatus[ id ] = NO_LOGUEADO;
    }   
}

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

        guardar_datos( i );
    }
    client_print_color( 0 , print_team_blue, "^x01Sistema de rangos by ^x04%s", g_szAuthor );
}
@Spawn_OnPlayer( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
        guardar_datos( id );
}
@Killed_OnPlayer( victim, attacker, shouldgib )
{
    if( !is_valid_player_alive( attacker ) || victim == attacker || get_member( attacker, m_iTeam ) == get_member( victim, m_iTeam ) )
        return;

    if( get_member( attacker, m_LastHitGroup ) == HITGROUP_HEAD ) 
    {
        setLevel( attacker, cvar_hs );
        //setLevel( victim, -1 * cvar_hs );

        ++g_iHs[ attacker ];
    }
    else
    {
        if( GetCurrentWeapon( attacker ) == WEAPON_HEGRENADE )
        {
            setLevel( attacker, cvar_hegreande );
            //setLevel( victim, -1 * cvar_hegreande );
        }
        else if( GetCurrentWeapon( attacker ) == WEAPON_KNIFE )
        {
            setLevel( attacker, cvar_knife );
            //setLevel( victim, -1 * cvar_knife );
        }
        else
        {
            setLevel( attacker, cvar_kill );
            //setLevel( victim, -1 * cvar_kill );
        }
    }
    ++g_iKills[ attacker ];
    ++g_iDeaths[ victim ];
}

public setLevel( id, value )
{
    if( g_iRango[ id ] >= charsmax( g_aRangos ) || g_iRango[ id ] < 0 )
        return;
    
    new iLevel = g_iRango[ id ];

    g_iFrags[ id ] += value;

    while( g_iFrags[ id ] >= g_aRangos[ g_iRango[ id ] >= 19 ? 19 : g_iRango[ id ] ][ level_req ] && g_iRango[ id ] < 19 )
        ++g_iRango[ id ];
    
    if( iLevel < g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Subiste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );

    while( g_iFrags[ id ] < g_aRangos[ g_iRango[ id ]-1 <= 0 ? 0 : g_iRango[ id ]  ][ level_req ] && g_iRango[ id ] > 0 )
        --g_iRango[ id ];

    iLevel = g_iRango[ id ];

    if( iLevel > g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Bajaste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );
    
    if( g_iFrags[ id ] <= 0)
        g_iFrags[ id ] = 0;

}

@changeName_OnPlayer(id, infobuffer[], szNewName[]) 
{
    if (!is_user_connected(id) )
        return HC_SUPERCEDE;
    
    new szOldName[32];
    get_entvar(id, var_netname, szOldName, charsmax(szOldName));
 
    SetHookChainArg(3, ATYPE_STRING, szOldName);
    set_msg_block( get_entvar(id, var_deadflag) != DEAD_NO ? g_iMsgText : g_iMsgSayText, BLOCK_ONCE );
    return HC_SUPERCEDE;
} 

public checkRank( id )
{
    if(  g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = SQL_RANK;

    formatex( szQuery, charsmax( szQuery ), "SELECT (COUNT(*) + 1) FROM `%s` WHERE `rango` > '%d' OR (`rango` = '%d' AND `frags` > '%d')", szTable, g_iRango[ id ], g_iRango[ id ], g_iFrags[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); 
}

public checkTop( id )
{
    new szTabla[ 200 ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = TOP15;
    formatex( szTabla, charsmax( szTabla ), "SELECT Pj, rango, frags FROM %s ORDER BY rango DESC, frags DESC LIMIT 8", szTable );
    
    SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 );
    
}

public guardar_datos( id ) 
{
    if( g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szIP[34];

    iData[ 0 ] = id;
    iData[ 1 ] = GUARDAR_DATOS;

    get_user_ip( id, szIP, charsmax( szIP ), true );
    
    formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET rango='%d', frags='%d', Pj=^"%s^", hs='%d', kills='%d', deaths='%d', ip=^"%s^" WHERE id='%d'", 
        szTable, g_iRango[ id ], g_iFrags[ id ], g_szPlayerName[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], szIP, g_id[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
}

public DataHandler( failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:flTime ) 
{
    switch( failstate ) 
    {
        case TQUERY_CONNECT_FAILED: 
        {
            log_to_file( "SQL_LOG_TQ.txt", "Error en la conexion al MySQL [%i]: %s", error2, error );
            return;
        }
        case TQUERY_QUERY_FAILED:
        log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al MySQL [%i]: %s", error2, error );
    }
    
    new id = data[ 0 ];
    
    if( !is_user_connected( id ) )
        return;
    
    switch( data[ 1 ] ) 
    {
        case LOGUEAR_USUARIO: 
        {
            if( SQL_NumResults( Query ) )
            {
                g_id[ id ] = SQL_ReadResult( Query, 0 );
                g_iRango[ id ] = SQL_ReadResult( Query, 2 );
                g_iFrags[ id ] = SQL_ReadResult( Query, 3 );
                g_iHs[ id ] = SQL_ReadResult( Query, 5 );
                g_iKills[ id ] = SQL_ReadResult( Query, 6 );
                g_iDeaths[ id ] = SQL_ReadResult( Query, 7 );

                g_iStatus[ id ] = LOGUEADO;

                client_print_color( id, print_team_blue, "^x01TU ID DE CUENTA ES ^x04%d.", g_id[ id ]);
                client_print_color( id, print_team_blue, "^x01Bienvenido ^x03%s ^x01tu rango es ^x04%s", g_szPlayerName[ id ], g_aRangos[ g_iRango[ id ] ][ rango_name ] );
            }
            else
            {
                g_iRango[ id ] = g_iFrags[ id ] = g_iHs[ id ] = g_iKills[ id ] = g_iDeaths[ id ] = 0;

                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ], szIP[34];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );
                    
                get_user_ip( id, szIP, charsmax( szIP ), true );
                
                iData[ 0 ] = id;
                iData[ 1 ] = REGISTRAR_USUARIO;
                
                formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (steam_id, rango, frags, hs, kills, deaths, Pj, ip) VALUES (^"%s^", %d, %d, %d, %d, %d, ^"%s^", ^"%s^")", 
                    szTable, szAuthid, g_iRango[ id ], g_iFrags[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], g_szPlayerName[ id ], szIP );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case REGISTRAR_USUARIO: 
        {
            if( failstate < TQUERY_SUCCESS ) 
            {
                console_print( id, "Error al crear un usuario: %s.", error );
            }
            else
            {
                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

                iData[ 0 ] = id;
                iData[ 1 ] = LOGUEAR_USUARIO;

                formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case GUARDAR_DATOS:
        {
            if( failstate < TQUERY_SUCCESS )
            {
                console_print( id, "Error en el guardado de datos." );
            }
            else
            {
                client_print_color( id, print_team_blue, "^x04 Datos guardados en %.0f segundos.", flTime );
            }
        }
        case SQL_RANK:
        {
            if( SQL_NumResults( Query ) )
            {
                static szBuffer[ MAX_MOTD_LENGTH-1 ];formatex(szBuffer, charsmax(szBuffer), "http://divstarproject.com/zombie_escape/rank_csgo.php?nick=%s&id=%d&rango=%s&kills=%d&deaths=%d",g_szPlayerName[ id ], SQL_ReadResult( Query, 0 ), g_aRangos[ g_iRango[ id ] ][ rango_name ], g_iKills[ id ], g_iDeaths[ id ] );
                show_motd( id, szBuffer, "RankStats" );
            }
        }
        case TOP15:
        {
            if( SQL_NumResults( Query ) )
            {
                static len, szBuffer[ MAX_MOTD_LENGTH-1 ], i, szName[ 32 ];
                len = i = 0;
                len = formatex(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 += formatex( 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 MySQL_Init( )
{
    g_hTuple = SQL_MakeDbTuple( MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATEBASE );
    if( !g_hTuple ) 
    {
        log_to_file( "SQL_ERROR.txt", "No se pudo conectar con la base de datos." );
        pause( "a" );
    }
}

public plugin_end( )
{
	if(g_hTuple!=INVALID_HANDLE)
	{
		SQL_FreeHandle( g_hTuple );
	}
}

stock is_user_admin( id )
{
    static __flags; __flags= get_user_flags( id );
    return ( __flags>0 && !( __flags&ADMIN_USER ) );
}

WeaponIdType:GetCurrentWeapon( const iId )
{
    new iItem = get_member( iId, m_pActiveItem );
        
    if ( !is_entity( iItem ) )
    {
        return WEAPON_NONE;
    }
    
    new WeaponIdType:iWeapon = get_member( iItem, m_iId );
    
    if ( !( WEAPON_P228 <= iWeapon <= WEAPON_P90 ) )
    {
        return WEAPON_NONE;
    }
    
    return iWeapon;
}
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
limbaa
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 26 Oct 2015, 11:25
Detinator Steam: Da
Detinator server CS: GOX.BLACKGAMES.RO
SteamID: tenlimba96
Fond eXtream: 0
Discord: GaBy#1976
Has thanked: 4 times
Contact:

20 Nov 2022, 08:00

L E V I N wrote:
15 Nov 2022, 16:16
păi acu numa e eroarea aia cu reu deci plg va merge, că s alte erori asta e

Code: Select all

/*
    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 tabsize 0

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

#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,
    MAX 
};

enum _:eRangos
{
    rango_name[ 80 ],
    level_req,
    url_rango[ 120 ]
};

new const g_aRangos[ 19 ][ 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; 

new cvar_hs, cvar_knife, cvar_kill, cvar_hegreande;
new g_iMsgSayText, g_iMsgText;

new g_iRango[ 33 ], g_iFrags[ 33 ], g_iHs[ 33 ], g_iDeaths[ 33 ], g_iKills[ 33 ];
new g_szPlayerName[ 33 ][ 32 ], g_szAdminData[ MAXTAGADMS ][ MAX ][ 33 ];

new g_id[ 33 ];
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_iStatus[ 33 ];

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

    RegisterHookChain( RG_CBasePlayer_Killed, "@Killed_OnPlayer", .post = true );
    RegisterHookChain( RG_CBasePlayer_Spawn, "@Spawn_OnPlayer", .post = true );
    RegisterHookChain( RG_CBasePlayer_SetClientUserInfoName, "@changeName_OnPlayer" );

    register_event("HLTV", "startRound_OnPlayer", "a", "1=0", "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" );

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

    MySQL_Init( );
}

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

public client_putinserver( id )
{
    if( is_user_bot( id ) )
        return;

    new szAuthid[ 64 ];
    get_user_name( id, g_szPlayerName[ id ], charsmax( g_szPlayerName[ ] ) );

    g_iStatus[ id ] = NO_LOGUEADO;

    if( is_user_steam( id ) )
        get_user_authid( id, szAuthid, charsmax( szAuthid ) );
    else
        copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];

    iData[ 0 ] = id;
    iData[ 1 ] = LOGUEAR_USUARIO;

    formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
    
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
}

public client_disconnected( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
    {
        guardar_datos( id );

        g_iStatus[ id ] = NO_LOGUEADO;
    }   
}

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

        guardar_datos( i );
    }
    client_print_color( 0 , print_team_blue, "^x01Sistema de rangos by ^x04%s", g_szAuthor );
}
@Spawn_OnPlayer( id )
{
    if( g_iStatus[ id ] == LOGUEADO ) 
        guardar_datos( id );
}
@Killed_OnPlayer( victim, attacker, shouldgib )
{
    if( !is_valid_player_alive( attacker ) || victim == attacker || get_member( attacker, m_iTeam ) == get_member( victim, m_iTeam ) )
        return;

    if( get_member( attacker, m_LastHitGroup ) == HITGROUP_HEAD ) 
    {
        setLevel( attacker, cvar_hs );
        //setLevel( victim, -1 * cvar_hs );

        ++g_iHs[ attacker ];
    }
    else
    {
        if( GetCurrentWeapon( attacker ) == WEAPON_HEGRENADE )
        {
            setLevel( attacker, cvar_hegreande );
            //setLevel( victim, -1 * cvar_hegreande );
        }
        else if( GetCurrentWeapon( attacker ) == WEAPON_KNIFE )
        {
            setLevel( attacker, cvar_knife );
            //setLevel( victim, -1 * cvar_knife );
        }
        else
        {
            setLevel( attacker, cvar_kill );
            //setLevel( victim, -1 * cvar_kill );
        }
    }
    ++g_iKills[ attacker ];
    ++g_iDeaths[ victim ];
}

public setLevel( id, value )
{
    if( g_iRango[ id ] >= charsmax( g_aRangos ) || g_iRango[ id ] < 0 )
        return;
    
    new iLevel = g_iRango[ id ];

    g_iFrags[ id ] += value;

    while( g_iFrags[ id ] >= g_aRangos[ g_iRango[ id ] >= 19 ? 19 : g_iRango[ id ] ][ level_req ] && g_iRango[ id ] < 19 )
        ++g_iRango[ id ];
    
    if( iLevel < g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Subiste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );

    while( g_iFrags[ id ] < g_aRangos[ g_iRango[ id ]-1 <= 0 ? 0 : g_iRango[ id ]  ][ level_req ] && g_iRango[ id ] > 0 )
        --g_iRango[ id ];

    iLevel = g_iRango[ id ];

    if( iLevel > g_iRango[ id ] )
        client_print_color( id, print_team_blue, "^x01Bajaste al rango ^x04%s", g_aRangos[ g_iRango[ id ] ][ rango_name ] );
    
    if( g_iFrags[ id ] <= 0)
        g_iFrags[ id ] = 0;

}

@changeName_OnPlayer(id, infobuffer[], szNewName[]) 
{
    if (!is_user_connected(id) )
        return HC_SUPERCEDE;
    
    new szOldName[32];
    get_entvar(id, var_netname, szOldName, charsmax(szOldName));
 
    SetHookChainArg(3, ATYPE_STRING, szOldName);
    set_msg_block( get_entvar(id, var_deadflag) != DEAD_NO ? g_iMsgText : g_iMsgSayText, BLOCK_ONCE );
    return HC_SUPERCEDE;
} 

public checkRank( id )
{
    if(  g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = SQL_RANK;

    formatex( szQuery, charsmax( szQuery ), "SELECT (COUNT(*) + 1) FROM `%s` WHERE `rango` > '%d' OR (`rango` = '%d' AND `frags` > '%d')", szTable, g_iRango[ id ], g_iRango[ id ], g_iFrags[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); 
}

public checkTop( id )
{
    new szTabla[ 200 ], iData[ 2 ];
    
    iData[ 0 ] = id;
    iData[ 1 ] = TOP15;
    formatex( szTabla, charsmax( szTabla ), "SELECT Pj, rango, frags FROM %s ORDER BY rango DESC, frags DESC LIMIT 8", szTable );
    
    SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 );
    
}

public guardar_datos( id ) 
{
    if( g_iStatus[ id ] != LOGUEADO )
        return;

    new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szIP[34];

    iData[ 0 ] = id;
    iData[ 1 ] = GUARDAR_DATOS;

    get_user_ip( id, szIP, charsmax( szIP ), true );
    
    formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET rango='%d', frags='%d', Pj=^"%s^", hs='%d', kills='%d', deaths='%d', ip=^"%s^" WHERE id='%d'", 
        szTable, g_iRango[ id ], g_iFrags[ id ], g_szPlayerName[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], szIP, g_id[ id ] );
    SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
}

public DataHandler( failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:flTime ) 
{
    switch( failstate ) 
    {
        case TQUERY_CONNECT_FAILED: 
        {
            log_to_file( "SQL_LOG_TQ.txt", "Error en la conexion al MySQL [%i]: %s", error2, error );
            return;
        }
        case TQUERY_QUERY_FAILED:
        log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al MySQL [%i]: %s", error2, error );
    }
    
    new id = data[ 0 ];
    
    if( !is_user_connected( id ) )
        return;
    
    switch( data[ 1 ] ) 
    {
        case LOGUEAR_USUARIO: 
        {
            if( SQL_NumResults( Query ) )
            {
                g_id[ id ] = SQL_ReadResult( Query, 0 );
                g_iRango[ id ] = SQL_ReadResult( Query, 2 );
                g_iFrags[ id ] = SQL_ReadResult( Query, 3 );
                g_iHs[ id ] = SQL_ReadResult( Query, 5 );
                g_iKills[ id ] = SQL_ReadResult( Query, 6 );
                g_iDeaths[ id ] = SQL_ReadResult( Query, 7 );

                g_iStatus[ id ] = LOGUEADO;

                client_print_color( id, print_team_blue, "^x01TU ID DE CUENTA ES ^x04%d.", g_id[ id ]);
                client_print_color( id, print_team_blue, "^x01Bienvenido ^x03%s ^x01tu rango es ^x04%s", g_szPlayerName[ id ], g_aRangos[ g_iRango[ id ] ][ rango_name ] );
            }
            else
            {
                g_iRango[ id ] = g_iFrags[ id ] = g_iHs[ id ] = g_iKills[ id ] = g_iDeaths[ id ] = 0;

                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ], szIP[34];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );
                    
                get_user_ip( id, szIP, charsmax( szIP ), true );
                
                iData[ 0 ] = id;
                iData[ 1 ] = REGISTRAR_USUARIO;
                
                formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (steam_id, rango, frags, hs, kills, deaths, Pj, ip) VALUES (^"%s^", %d, %d, %d, %d, %d, ^"%s^", ^"%s^")", 
                    szTable, szAuthid, g_iRango[ id ], g_iFrags[ id ], g_iHs[ id ], g_iKills[ id ], g_iDeaths[ id ], g_szPlayerName[ id ], szIP );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case REGISTRAR_USUARIO: 
        {
            if( failstate < TQUERY_SUCCESS ) 
            {
                console_print( id, "Error al crear un usuario: %s.", error );
            }
            else
            {
                new szQuery[ MAX_MENU_LENGTH ], iData[ 2 ], szAuthid[ 64 ];

                if( is_user_steam( id ) )
                    get_user_authid( id, szAuthid, charsmax( szAuthid ) );
                else
                    copy( szAuthid, charsmax( szAuthid ), g_szPlayerName[ id ] );

                iData[ 0 ] = id;
                iData[ 1 ] = LOGUEAR_USUARIO;

                formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE steam_id= ^"%s^"", szTable, szAuthid );
                console_print(0, "%s", szQuery);
                SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 );
            }
        }
        case GUARDAR_DATOS:
        {
            if( failstate < TQUERY_SUCCESS )
            {
                console_print( id, "Error en el guardado de datos." );
            }
            else
            {
                client_print_color( id, print_team_blue, "^x04 Datos guardados en %.0f segundos.", flTime );
            }
        }
        case SQL_RANK:
        {
            if( SQL_NumResults( Query ) )
            {
                static szBuffer[ MAX_MOTD_LENGTH-1 ];formatex(szBuffer, charsmax(szBuffer), "http://divstarproject.com/zombie_escape/rank_csgo.php?nick=%s&id=%d&rango=%s&kills=%d&deaths=%d",g_szPlayerName[ id ], SQL_ReadResult( Query, 0 ), g_aRangos[ g_iRango[ id ] ][ rango_name ], g_iKills[ id ], g_iDeaths[ id ] );
                show_motd( id, szBuffer, "RankStats" );
            }
        }
        case TOP15:
        {
            if( SQL_NumResults( Query ) )
            {
                static len, szBuffer[ MAX_MOTD_LENGTH-1 ], i, szName[ 32 ];
                len = i = 0;
                len = formatex(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 += formatex( 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 MySQL_Init( )
{
    g_hTuple = SQL_MakeDbTuple( MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATEBASE );
    if( !g_hTuple ) 
    {
        log_to_file( "SQL_ERROR.txt", "No se pudo conectar con la base de datos." );
        pause( "a" );
    }
}

public plugin_end( )
{
	if(g_hTuple!=INVALID_HANDLE)
	{
		SQL_FreeHandle( g_hTuple );
	}
}

stock is_user_admin( id )
{
    static __flags; __flags= get_user_flags( id );
    return ( __flags>0 && !( __flags&ADMIN_USER ) );
}

WeaponIdType:GetCurrentWeapon( const iId )
{
    new iItem = get_member( iId, m_pActiveItem );
        
    if ( !is_entity( iItem ) )
    {
        return WEAPON_NONE;
    }
    
    new WeaponIdType:iWeapon = get_member( iItem, m_iId );
    
    if ( !( WEAPON_P228 <= iWeapon <= WEAPON_P90 ) )
    {
        return WEAPON_NONE;
    }
    
    return iWeapon;
}
.
Scuze ca raspund dupa atatea zile dar tot nu s-a rezolvat imi apare in consola

Code: Select all

L 11/20/2022 - 07:53:58: [ReAPI] Reunion: isn't available
L 11/20/2022 - 07:53:58: [AMXX] Displaying debug trace (plugin "top15.amxx", version "1.0b")
L 11/20/2022 - 07:53:58: [AMXX] Run time error 10: native error (native "REU_GetAuthtype")
L 11/20/2022 - 07:53:58: [AMXX]    [0] top15.sma::client_putinserver (line 201)
Ignoring custom decal from GaBy
[Logged out] GaBy : /top
si asta mie meta list

Code: Select all

meta list
Currently loaded plugins:
      description           stat pend  file                       vers             src  load  unload
 [ 1] AMX Mod X             RUN   -    amxmodx_mm_i386.so         v1.9.0.5294      ini  Start ANY  
 [ 2] Reunion               RUN   -    reunion_mm_i386.so         v0.1.92d         ini  Start Never
 [ 3] Rechecker             RUN   -    rechecker_mm_i386.so       v2.5             ini  Chlvl ANY  
 [ 4] ReSemiclip            RUN   -    resemiclip_mm_i386.so      v2.3.9           ini  Chlvl ANY  
 [ 5] SafeNameAndChat       RUN   -    SafeNameAndChat.so         v1.1             ini  ANY   ANY  
 [ 6] HitBox Fix            RUN   -    hitbox_fix_mm_i386.so      v1.0.11          ini  Start ANY  
 [ 7] Print Center Fix      RUN   -    printcenterfix_mm_i386.so  v2.0.1           ini  ANY   ANY  
 [ 8] Ultimate Unprecacher  RUN   -    unprecacher_mm_i386.so     vBeta 2.5.3      ini  Chlvl Chlvl
 [ 9] YaPB                  RUN   -    yapb.so                    v4.2.671         ini  Chlvl ANY  
 [10] CSX                   RUN   -    csx_amxx_i386.so           v1.9.0.5294      pl1  ANY   ANY  
 [11] CStrike               RUN   -    cstrike_amxx_i386.so       v1.9.0.5294      pl1  ANY   ANY  
 [12] Fun                   RUN   -    fun_amxx_i386.so           v1.9.0.5294      pl1  ANY   ANY  
 [13] Engine                RUN   -    engine_amxx_i386.so        v1.9.0.5294      pl1  ANY   ANY  
 [14] FakeMeta              RUN   -    fakemeta_amxx_i386.so      v1.9.0.5294      pl1  ANY   ANY  
 [15] GeoIP                 RUN   -    geoip_amxx_i386.so         v1.9.0.5294      pl1  ANY   ANY  
 [16] Ham Sandwich          RUN   -    hamsandwich_amxx_i386.so   v1.9.0.5294      pl1  ANY   ANY  
 [17] Orpheu                RUN   -    orpheu_amxx_i386.so        v2.6.3           pl1  ANY   ANY  
 [18] ReAPI                 RUN   -    reapi_amxx_i386.so         v5.22.0.254-dev  pl1  ANY   Never
 [19] MySQL                 RUN   -    mysql_amxx_i386.so         v1.9.0.5294      pl1  ANY   ANY  
19 plugins, 19 running
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

20 Nov 2022, 20:37

Voi macar cititi erorile?

Code: Select all

L 11/20/2022 - 07:53:58: [ReAPI] Reunion: isn't available
Actualizeaza rehlds-ul
User avatar
limbaa
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 26 Oct 2015, 11:25
Detinator Steam: Da
Detinator server CS: GOX.BLACKGAMES.RO
SteamID: tenlimba96
Fond eXtream: 0
Discord: GaBy#1976
Has thanked: 4 times
Contact:

21 Nov 2022, 06:01

N3v3rM1nd wrote:
20 Nov 2022, 20:37
Voi macar cititi erorile?

Code: Select all

L 11/20/2022 - 07:53:58: [ReAPI] Reunion: isn't available
Actualizeaza rehlds-ul
Asta am crezut și eu că poate fi de la rehlds după ce am actualizat reapi și reunion și l-am actualizat și rehlds și regamedll_cs, iar problema persistă.
Într-o altă ordine de idei eu instalat pe server mai am pluginuri ce folosesc reapi dar nu am probleme cu ele, ăsta este cel buclucaș și chiar as dori să funcționeze, dar cu fiecare post lăsat tind sa cred că defapt pluginul in sine e problema nu dll de pe server.

EDIT: Gata o putem pune că rezolvat că mi-am luat gândul de la pluginul asta 😁😁
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 21 guests