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
2019-05-27 19:17:13 +02:00
ConVar g_cvServerType ;
char g_cServerMessage [ 128 ] ;
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 " ,
2019-05-27 19:17:13 +02:00
version = " 1.1.0 " ,
2019-05-27 02:11:27 +02:00
url = " "
}
public void OnPluginStart ( )
{
Database . Connect ( SQL_OnDatabaseConnect , " unloze_newplayers " ) ;
2019-05-27 19:17:13 +02:00
g_cvServerType = CreateConVar ( " sm_server_type " , " 1 " , " Server related private message for new players: 1 = ze; 2 = mg; 3 = zr; any other value = neutral " ) ;
AutoExecConfig ( true , " plugin.ConnectAnnounceNewPlayers " ) ;
GetConVars ( ) ;
}
public void GetConVars ( )
{
if ( g_cvServerType . IntValue = = 1 )
{
g_cServerMessage = " Zombie Escape " ;
}
else if ( g_cvServerType . IntValue = = 2 )
{
g_cServerMessage = " Minigames " ;
}
else if ( g_cvServerType . IntValue = = 3 )
{
g_cServerMessage = " Zombie Riot " ;
}
else
{
g_cServerMessage = " " ;
}
}
public void ConVarChange ( ConVar convar , char [ ] oldValue , char [ ] newValue )
{
GetConVars ( ) ;
2019-05-27 02:11:27 +02:00
}
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 19:17:13 +02:00
CPrintToChatAll ( " {cyan}Player {midnightblue}%s {cyan}has just connected to an UNLOZE Server for the first time! Welcome! " , sName ) ;
if ( g_cvServerType . IntValue > = 1 & & g_cvServerType . IntValue < = 3 )
{
CPrintToChat ( client , " {cyan}Hi %s. Welcome to the {midnightblue}Unloze %s 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 , g_cServerMessage ) ;
}
else
{
CPrintToChat ( client , " {cyan}Hi %s. Welcome to this {midnightblue}Unloze 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
}