2019-05-27 02:11:27 +02:00
# pragma semicolon 1
# include <sourcemod>
# include <multicolors>
2019-05-27 12:09:45 +02:00
bool g_bNewPlayer [ MAXPLAYERS + 1 ] = { false , . . . } ;
2019-05-27 02:11:27 +02:00
Database g_hDatabase ;
public Plugin myinfo =
{
name = " ConnectAnnounceNewPlayers " ,
2019-05-27 14:50:32 +02:00
author = " Dogan " ,
2019-05-27 02:11:27 +02:00
description = " Connect Announcer for new Players " ,
version = " 1.0.0 " ,
url = " "
}
public void OnPluginStart ( )
{
Database . Connect ( SQL_OnDatabaseConnect , " unloze_newplayers " ) ;
}
public void OnClientPostAdminCheck ( int client )
{
if ( IsFakeClient ( client ) | | IsClientSourceTV ( client ) )
return ;
char sAuthID [ 32 ] ;
GetClientAuthId ( client , AuthId_Steam2 , sAuthID , sizeof ( sAuthID ) ) ;
char sQuery [ 512 ] ;
Format ( sQuery , sizeof ( sQuery ) , " SELECT * FROM connections WHERE auth='%s' " , sAuthID ) ;
g_hDatabase . Query ( SQL_OnQueryCompleted , sQuery , GetClientSerial ( client ) , DBPrio_Low ) ;
}
public void SQL_OnDatabaseConnect ( Database db , const char [ ] error , any data )
{
if ( ! db | | strlen ( error ) )
{
LogError ( " Database error: %s " , error ) ;
return ;
}
g_hDatabase = db ;
char sQuery [ 512 ] ;
Format ( sQuery , sizeof ( sQuery ) , " CREATE TABLE IF NOT EXISTS connections (`auth` varchar(32)) " ) ;
g_hDatabase . Query ( SQL_OnQueryCompleted , sQuery , _ , DBPrio_Low ) ;
}
public void SQL_OnQueryCompleted ( Database db , DBResultSet results , const char [ ] error , any data )
{
if ( ! db | | strlen ( error ) )
{
LogError ( " Query error: %s " , error ) ;
return ;
}
int client ;
if ( ( client = GetClientFromSerial ( data ) ) = = 0 )
return ;
char sAuthID [ 32 ] ;
GetClientAuthId ( client , AuthId_Steam2 , sAuthID , sizeof ( sAuthID ) ) ;
if ( results . RowCount & & results . FetchRow ( ) )
{
int iFieldNum ;
char sResultAddress [ 32 ] ;
results . FieldNameToNum ( " auth " , iFieldNum ) ;
results . FetchString ( iFieldNum , sResultAddress , sizeof ( sResultAddress ) ) ;
if ( StrEqual ( sAuthID , sResultAddress , true ) )
return ;
}
2019-05-27 12:09:45 +02:00
g_bNewPlayer [ client ] = true ;
2019-05-27 02:11:27 +02:00
NewPlayerMessage ( client ) ;
char sQuery [ 512 ] ;
Format ( sQuery , sizeof ( sQuery ) , " INSERT INTO connections (auth) VALUES ('%s') " , sAuthID ) ;
g_hDatabase . Query ( SQL_OnQueryCompleted , sQuery , _ , DBPrio_Low ) ;
}
public Action NewPlayerMessage ( int client )
{
char sName [ 128 ] ;
GetClientName ( client , sName , sizeof ( sName ) ) ;
2019-05-27 12:09:45 +02:00
CPrintToChatAll ( " {cyan}Player {midnightblue}%s {cyan}has just connected an UNLOZE Server for the first time! Welcome! " , sName ) ;
2019-05-27 02:11:27 +02:00
CPrintToChat ( client , " {cyan}Hi %s. Welcome to the {midnightblue}Unloze Zombie Escape Server{cyan}! We hope you enjoy your stay here and add our server to your favorites. Make sure to check out our website at {midnightblue}www.unloze.com{cyan}. " , sName ) ;
2019-05-27 12:09:45 +02:00
}
public void OnClientDisconnect ( int client )
{
g_bNewPlayer [ client ] = false ;
2019-05-27 02:11:27 +02:00
}