#include char g_MessageChatPrefix[16] = "[FSB.Message]"; char g_MessageTableName[32] = "user_messages"; char g_SQL_QUERY_ADDMESSAGE[512] = "INSERT INTO %s (account_id, utime, message, server_id) VALUES ('%d', '%d', '%s', '%s')"; Handle g_hMessageDatabase = INVALID_HANDLE; char g_messages_server_id[32] = ""; stock messagesSetServerId(const char[] server_id, int size) { strcopy(g_messages_server_id, size, server_id); PrintToServer("%s server id is setted: %s", g_MessageChatPrefix, g_messages_server_id) } stock MessageSetup(){ RegConsoleCmd("say", SayHook); RegConsoleCmd("say_team", SayHook); } stock void AddMessage(int account_id, const String:message[]) { char Query[512]; char EscMessage[256]; SQL_EscapeString(g_hMessageDatabase, message, EscMessage, sizeof(EscMessage)); Format(Query, sizeof(Query), g_SQL_QUERY_ADDMESSAGE, g_MessageTableName, account_id, GetTime(), EscMessage, g_messages_server_id); SQL_TQuery(g_hMessageDatabase, CallBack_AddMessage, Query, 0); } public CallBack_AddMessage(Handle:owner, Handle:hndl, const String:error[], any:data) { if (hndl == INVALID_HANDLE) { LogError("%s Query failed! %s", g_MessageChatPrefix, error); return; } } public Action SayHook(int cid, int args){ char message[256]; GetCmdArgString(message, sizeof(message)); StripQuotes(message); if (message[1] == '!' || message[0] == '!'){//1 потому что ебаные " при вызове GetCmdArgString return Plugin_Continue; } int account_id = GetSteamAccountID(cid, true); AddMessage(account_id, message); return Plugin_Continue; }