#pragma semicolon 1 #include #include bool g_bNewPlayer[MAXPLAYERS + 1] = { false, ... }; Database g_hDatabase; public Plugin myinfo = { name = "ConnectAnnounceNewPlayers", author = "Dogan", 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; } g_bNewPlayer[client] = true; 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)); CPrintToChatAll("{cyan}Player {midnightblue}%s {cyan}has just connected an UNLOZE Server for the first time! Welcome!", sName); 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); } public void OnClientDisconnect(int client) { g_bNewPlayer[client] = false; }