New Plugin: ConnectAnnounceNewPlayers
This commit is contained in:
		
							parent
							
								
									9a876ea06b
								
							
						
					
					
						commit
						39e55a630d
					
				
							
								
								
									
										95
									
								
								ConnectAnnounce/scripting/ConnectAnnounceNewPlayers.sp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								ConnectAnnounce/scripting/ConnectAnnounceNewPlayers.sp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,95 @@
 | 
				
			|||||||
 | 
					#pragma semicolon 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sourcemod>
 | 
				
			||||||
 | 
					#include <multicolors>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool NewPlayer[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;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						NewPlayer[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);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user