Day of Defeat Plugins Community
This site is an archive — everything is readable and downloadable, nothing can be posted. Admin

sql_say_tracker

by Unknown · 2005-02-19

recovered from the server

From the first post

Recovered from the archived server. This was never posted on the forum, so there is no thread behind it and no author post to quote — the attribution below comes from the plugin's own register_plugin() call where it has one.

Files

sql_say_tracker.cfg Config 142 B Download
sql_say_tracker_181.amxx Compiled Plugin 7 KB Download

Decompiled source reconstructed

sql_say_tracker_181.amxx was published compiled only. This Pawn was recovered from the bytecode with Lysis — 147 lines. Strings, cvars and the plugin registration survive; local variable names do not. It is an approximation, not the author's file.

// Decompiled from sql_say_tracker_181.amxx by Lysis.n// This is RECONSTRUCTED source, not the author's original: withoutn// debug symbols the variable names are lost and control flow isn// rebuilt from bytecode. Treat it as a readable approximation.nnnew g_var1c88;npublic client_authorized(_arg0)n{n	get_user_authid(_arg0, 704[_arg0], 31);n	get_user_ip(_arg0, 5060[_arg0], 15, 1);n	return 0;n}nnpublic plugin_cfg()n{n	new var2 = 0;n	sub_124(var2, "");n	new var3 = 0;n	while (var3 < 2)n	{n		format(184[var3], "|BW|.Zor", "%s/%s", var2, 184[var3]);n		var3++;n	}n	server_cmd("exec %s/sql.cfg", var2);n	server_cmd("exec %s", 184/* ERROR unknown load Constant */ + 184);n	new var4 = 184 + 4;n	if (file_exists(var4 + var4))n	{n		new var5 = 0;n		new var6 = 0;n		var5++;n		new var7 = 184 + 4;n		while (read_file(var7 + var7, var5, var6, 31, _unused_temp_))n		{n			new var1;n			if (!equal(var6, "//", 2) && strlen(var6) > 0)n			{n				register_clcmd(var6, "track", -1, {0});n			}n		}n	}n	set_task(1065353216, "timedConnect", "amxx_configsdir", {0}, "amxx_configsdir", {0}, "amxx_configsdir");n	return 0;n}nnpublic plugin_init()n{n	register_plugin("SQL Say Tracker", "0.1b", "|BW|.Zor");n	register_clcmd("say", "track", -1, {0});n	register_clcmd("say_team", "track", -1, {0});n	register_cvar("amx_sql_host", "127.0.0.1", "amxx_configsdir", "amxx_configsdir");n	register_cvar("amx_sql_user", "root", "amxx_configsdir", "amxx_configsdir");n	register_cvar("amx_sql_pass", "root", "amxx_configsdir", "amxx_configsdir");n	register_cvar("amx_sql_db", "blackwatch", "amxx_configsdir", "amxx_configsdir");n	register_cvar("amx_sql_say_table", "amxx_say_tracker", "amxx_configsdir", "amxx_configsdir");n	register_cvar("amx_sql_say_servernum", 7964, "amxx_configsdir", "amxx_configsdir");n	return 0;n}nnpublic plugin_modules()n{n	require_module("DBI");n	return 0;n}nnpublic timedConnect()n{n	sub_13bc();n	new var1 = 0;n	new var2 = 0;n	new var3 = 0;n	get_cvar_string("amx_sql_say_table", var3, 31);n	format(var1, 1023, "CREATE TABLE IF NOT EXISTS %s (server TINYINT NOT NULL,steamid VARCHAR(32) NOT NULL,ip VARCHAR(16) NOT NULL,timestamp VARCHAR(32) NOT NULL,chat_method TEXT NOT NULL,alive TINYINT NOT NULL,chat LONGTEXT NOT NULL)", var3);n	var2 = sub_13bc(var2, var1, 9840);n	return 0;n}nnpublic track(_arg0)n{n	new var1 = 0;n	new var2 = 0;n	new var3 = 0;n	new var4 = 0;n	new var5 = 0;n	new var6 = 0;n	new var7 = 0;n	new var8 = 0;n	read_argv("amxx_configsdir", var1, 31);n	read_args(var2, 255);n	replace(var2, 255, var1, 8204);n	remove_quotes(var2);n	trim(var2);n	format_time(var4, 31, "%m/%d/%Y - %H:%M:%S", -1);n	get_cvar_string("amx_sql_say_table", var8, 31);n	get_cvar_string("amx_sql_say_servernum", var6, 7);n	var7 = str_to_num(var6);n	format(var3, 1023, "INSERT INTO %s (server,steamid,ip,timestamp,chat_method,alive,chat) VALUES ('%d','%s','%s','%s','%s','%d','%s')", var8, var7, 704[_arg0], 5060[_arg0], var4, var1, is_user_alive(_arg0), var2);n	var5 = sub_13bc(var5, var3, 8896);n	return 0;n}nnsub_124(_arg0, _arg1)n{n	return get_localinfo("amxx_configsdir", _arg0, _arg1);n}nnsub_13bc()n{n	new var1 = 0;n	new var2 = 0;n	new var3 = 0;n	new var4 = 0;n	new var5 = 0;n	get_cvar_string("amx_sql_host", var1, "");n	get_cvar_string("amx_sql_user", var2, 31);n	get_cvar_string("amx_sql_pass", var3, 31);n	get_cvar_string("amx_sql_db", var4, 31);n	g_var1c88 = dbi_connect(var1, var2, var3, var4, var5, 127);n	if (g_var1c88 == 0)n	{n		server_print("Error Connecting to DB - '%s'", var5);n		log_amx("Error Connecting to DB - '%s'", var5);n	}n	return 1;n}nnsub_13bc()n{n	new var1 = 0;n	if (g_var1c88 != 1)n	{n		if (!sub_13bc())n		{n			return -1;n		}n	}n	dbi_free_result(_arg0);n	_arg0 = dbi_query(g_var1c88, _arg1);n	if (_arg0 == -1)n	{n		dbi_error(g_var1c88, var1, 127);n		server_print("Error in Function: %s - Error Msg: '%s'", _arg2, var1);n		log_amx("Error in Function: %s - Error Msg: '%s'", _arg2, var1);n	}n	return _arg0;n}nn
DoD Plugins Archive · Repository · Old Forum Threads · Maps · Admin · built 14 Sep 2026 00:34 UTC