Raised This Month: $ Target: $400
 0% 

Solved Print online players


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Airkish
AlliedModders Donor
Join Date: Apr 2016
Location: Lithuania
Old 05-21-2018 , 01:57   Re: Scoreboard to MYSQL
Reply With Quote #3

Here's one I have for a long time, may not be the perfect code but it works. There's /rs because I used resetscore plugin, if u don't then just simply comment that line //.
Tell me if it works and if you need help with PHP/MySQL part.

PHP Code:
#include < amxmodx >
#include < sqlx >
#include < cstrike >
#include < hamsandwich >

/* Database */
new Host[ ] = ""
new User[ ] =  ""
new Pass[ ] =  ""
new Db[ ] =  ""

new MySQL_Query512 ]
new 
Handle:MySQL_Tuple
new Handle:MySQL_Connection
new bool:g_Loaded33 ] = false
new Kills[33], Deaths[33];
new 
Team[33]

new 
g_logfile[64];

new const 
VERSION[ ] = "0.0.1"

public plugin_init( ) {
    
register_plugin"Scoreboard to MySQL"VERSION"Airkish" )
    
register_event("HLTV""RoundStart""a""1=0""2=0");
    
register_clcmd("say /rs""ResetScore")
}

public 
client_putinserverid )
{
    
set_task(5.0"Presql_Load"id)
    
g_Loadedid ] = false
}

public 
Presql_Load(id) {
    if ( 
cs_get_user_team(id) == CS_TEAM_T) {
        
Team[id] = 1;
    }
    else if ( 
cs_get_user_team(id) == CS_TEAM_CT ) {
        
Team[id] = 2;
    }
    else {
        
Team[id] = 3;
    }
    
MySQL_Load(id)
}

public 
client_death(KillerVictimwpnindexhitplaceTK)
{
    if(
Killer == Victim) { 
        
Deaths[Killer]++; 
        
MySQL_Update(Killer);
        return 
PLUGIN_HANDLED;
    }
    
Kills[Killer]++;
    
Deaths[Victim]++;
    
MySQL_Update(Killer)
    
MySQL_Update(Victim)

    return 
PLUGIN_CONTINUE;
}

public 
ResetScore(id) {
    
Kills[id] = 0;
    
Deaths[id] = 0;
    
MySQL_Update(id);
}

public 
RoundStart() {

    new 
iPlayers[32],iNum,Players;
    
get_players(iPlayers,iNum,"ch");
    
    for(new 
iiNumi++) {
        
Players iPlayers[i];
        if(
cs_get_user_team(Players) == CS_TEAM_T) {
            
Team[Players] = 1
            MySQL_Update
(Players)
        }
        else if(
cs_get_user_team(Players) == CS_TEAM_CT) {
            
Team[Players] = 2
            MySQL_Update
(Players)
        }
        else if (
cs_get_user_team(Players) == CS_TEAM_SPECTATOR || cs_get_user_team(Players) == CS_TEAM_UNASSIGNED) {
            
Team[Players] = 3
            MySQL_Update
(Players)
        }
    }
}

public 
client_disconnectedid )
{
    if( 
g_Loadedid ] )
        
MySQL_Deleteid )
}

public 
plugin_precache( )
{
    
get_time("online_players_%Y%m%d.log"g_logfilecharsmax(g_logfile));
    
log_errors("-------------------- == --------------------");

    
MySQL_Tuple SQL_MakeDbTupleHostUserPassDb )
    
#if AMXX_VERSION_NUM >= 183
        
SQL_SetCharset(MySQL_Tuple,"utf8");
    
#endif
    
    
new ErrorCode
    MySQL_Connection 
SQL_ConnectMySQL_TupleErrorCodeMySQL_QuerycharsmaxMySQL_Query ) )
    
    if( 
MySQL_Connection == Empty_Handle )
        
set_fail_stateMySQL_Query )
    
    
SQL_ThreadQueryMySQL_Tuple"SQL_TrashHandler""CREATE TABLE IF NOT EXISTS online_players (username VARCHAR(128) COLLATE utf8_lithuanian_ci NOT NULL, kills INT(11), deaths INT(11), team INT(1) )" )  

    
SQL_ThreadQueryMySQL_Tuple"SQL_TrashHandler""DELETE FROM online_players" )  
}

public 
MySQL_Loadid 
{
    new 
Temp]
    
Temp] = id
    
    formatex
MySQL_QuerycharsmaxMySQL_Query ), "SELECT * FROM `online_players` WHERE `username` = '%s'"get_user_name_ex(id) )
    
SQL_ThreadQueryMySQL_Tuple"Load_PlayerInfo"MySQL_QueryTempsizeofTemp ) )
}
                                                                                
public 
Load_PlayerInfoFailStateHandle:QueryError[ ], ErrcodeData[ ], DataSize 
{
    if( 
FailState == TQUERY_CONNECT_FAILED 
    {
        new 
Players32 ], PlayersNum
        get_players
PlayersPlayersNum"ch" )
        
        for( new 
iPlayersNumi++ )
            
log_errors"Load - Could not connect to SQL database.  [%d] %s"ErrcodeError )
    }
            
    else if( 
FailState == TQUERY_QUERY_FAILED )
    {
        new 
Players32 ], PlayersNum
        get_players
PlayersPlayersNum"ch" )
        
        for( new 
iPlayersNumi++ )
        {
            
log_errors"Load Query failed. [%d] %s"ErrcodeError )
        }
    }
    new 
id Data]
    
    if( !
is_user_connectedid ) )
        return
        
    if( 
SQL_NumResultsQuery ) < 
    {
        
formatexMySQL_QuerycharsmaxMySQL_Query ), "INSERT INTO `online_players` (`username`, `kills`, `deaths`, `team`) VALUES ('%s', '%d', '%d', '%d')"get_user_name_ex(id), Kills[id], Deaths[id], Team[id])
        
SQL_ThreadQueryMySQL_Tuple"SQL_TrashHandler"MySQL_Query )
        
log_errors("%s"MySQL_Query)
        
g_Loadedid ] = true
    
}
}

public 
MySQL_Updateid ) {
    
formatexMySQL_QuerycharsmaxMySQL_Query ), "UPDATE `online_players` SET `kills` = '%d', `deaths` = '%d', `team` = '%d' WHERE `username` = '%s'"Kills[id], Deaths[id], Team[id], get_user_name_ex(id) )
    
SQL_ThreadQuery(MySQL_Tuple"SQL_TrashHandler"MySQL_Query);    
}

public 
MySQL_Delete( const id 
{
    
formatexMySQL_QuerycharsmaxMySQL_Query ), "DELETE from `online_players` WHERE `username` = '%s'"get_user_name_ex(id) )
    
SQL_ThreadQuery(MySQL_Tuple"SQL_TrashHandler"MySQL_Query);
}

public 
SQL_TrashHandlerFailState,Handle:QueryError[ ], Errcode,Data[ ], DataSize )  

    if( 
FailState == TQUERY_CONNECT_FAILED )
        
log_errors"Load - Could not connect to SQL database.  [%d] %s"ErrcodeError 
        
    else if( 
FailState == TQUERY_QUERY_FAILED )
        
log_errors"Load Query failed. [%d] %s"ErrcodeError )
    
    
SQL_FreeHandleQuery )
}

public 
plugin_end( ) 
{   
    
SQL_FreeHandleMySQL_Connection )
}

stock log_errors(const szText[], any:...)
{
    static 
szMessage[256];
    
vformat(szMessage256szText2);
    
    
log_to_file(g_logfileszMessage);
    
    return 
PLUGIN_HANDLED;
}

stock get_user_name_ex(id)
{
    new 
szName[33];
    
get_user_name(idszNamecharsmax(szName));

    
replace_all(szNamecharsmax(szName), "'""\'");
    
replace_all(szNamecharsmax(szName), "^"", "\^"");

    return 
szName;


Last edited by Airkish; 05-21-2018 at 02:01.
Airkish is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:35.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode