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

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

say_tracker.amxx Compiled Plugin 8 KB Download
say_tracker.zip Archive 32 KB Download

Decompiled source reconstructed

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

// Decompiled from say_tracker.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_var23a8;nnew g_var1ea0;nnew g_var1ea4;npublic client_authorized(_arg0)n{n	get_user_authid(_arg0, 1240[_arg0], 31);n	get_user_ip(_arg0, 5596[_arg0], 15, 1);n	return 0;n}nnpublic plugin_cfg()n{n	new var2 = 0;n	sub_120(var2, "");n	new var3 = 0;n	while (var3 < 2)n	{n		format(208[var3], "AMXX DoD Community", "%s/%s", var2, 208[var3]);n		var3++;n	}n	server_cmd("exec %s/sql.cfg", var2);n	server_cmd("exec %s", 208/* ERROR unknown load Constant */ + 208);n	new var4 = 208 + 4;n	if (file_exists(var4 + var4))n	{n		new var5 = 0;n		new var6 = 0;n		var5++;n		new var7 = 208 + 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_concmd(var6, "track", -1, {0});n			}n		}n	}n	set_task(1065353216, "timedSettings", "amxx_configsdir", {0}, "amxx_configsdir", {0}, "amxx_configsdir");n	return 0;n}nnpublic plugin_end()n{n	if (get_cvar_num("amx_say_tracker_type") == 0)n	{n		dbi_close(g_var1ea0);n	}n	return 0;n}nnpublic plugin_init()n{n	register_plugin("Say Tracker", "0.1h", "AMXX DoD Community");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_say_servernum", 9772, "amxx_configsdir", "amxx_configsdir");n	register_cvar("amx_say_tracker_type", 9864, "amxx_configsdir", "amxx_configsdir");n	register_cvar("amx_say_textdir", "chat_db", "amxx_configsdir", "amxx_configsdir");n	return 0;n}nnpublic plugin_modules()n{n	if (get_cvar_num("amx_say_tracker_type") == 0)n	{n		require_module("DBI");n	}n	return 0;n}nnpublic timedSettings()n{n	g_var23a8 = get_cvar_num("amx_say_servernum");n	if (get_cvar_num("amx_say_tracker_type") == 0)n	{n		new var1 = 0;n		get_cvar_string("amx_sql_host", 7848, "");n		get_cvar_string("amx_sql_user", 8104, 31);n		get_cvar_string("amx_sql_pass", 8232, 31);n		get_cvar_string("amx_sql_db", 8360, 31);n		get_cvar_string("amx_sql_say_table", 8488, 31);n		if (!sub_1cd0())n		{n			return 1;n		}n		format(var1, 1023, "CREATE TABLE IF NOT EXISTS %s (server TINYINT NOT NULL,nick VARCHAR(32) NOT NULL,steamid VARCHAR(32) NOT NULL,ip VARCHAR(16) NOT NULL,timestamp datetime NOT NULL default '0000-00-00 00:00:00',chat_method TEXT NOT NULL,alive TINYINT NOT NULL,chat LONGTEXT NOT NULL)", 8488);n		if (!sub_1df8(var1, "timedSettings"))n		{n			return 1;n		}n		dbi_free_result(g_var1ea4);n		dbi_close(g_var1ea0);n	}n	elsen	{n		if (get_cvar_num("amx_say_tracker_type") == 1)n		{n			new var2 = 0;n			new var3 = 0;n			new var4 = 0;n			new var5 = 0;n			get_time("%m_%d_%Y", var4, 31);n			sub_120(var2, "");n			get_mapname(var3, "");n			get_cvar_string("amx_say_textdir", var5, 31);n			format(728, 127, "%s/%s/%s_chat_log.txt", var2, var5, var4);n			format(var3, "AMXX DoD Community", "------------- Mapchange to Map %s -------------", var3);n			write_file(728, var3, -1);n		}n	}n	return 0;n}nnpublic track(_arg0)n{n	new var2 = 0;n	new var3 = 0;n	new var4 = 0;n	new var5 = 0;n	read_argv("amxx_configsdir", var2, 31);n	read_args(var3, 255);n	replace(var3, 255, var2, 10376);n	remove_quotes(var3);n	trim(var3);n	get_user_name(_arg0, var5, 31);n	if (get_cvar_num("amx_say_tracker_type") == 0)n	{n		if (!sub_1cd0())n		{n			return 0;n		}n		format(var4, 1023, "INSERT INTO %s (server,nick,steamid,ip,timestamp,chat_method,alive,chat) VALUES ('%d','%s','%s','%s',NOW(),'%s','%d','%s')", 8488, g_var23a8, var5, 1240[_arg0], 5596[_arg0], var2, is_user_alive(_arg0), var3);n		if (!sub_1df8(var4, "track"))n		{n			return 0;n		}n		dbi_free_result(g_var1ea4);n		dbi_close(g_var1ea0);n	}n	elsen	{n		if (get_cvar_num("amx_say_tracker_type") == 1)n		{n			new var6 = 0;n			new var7 = 0;n			get_time("%m/%d/%Y-%H:%M:%S", var7, 31);n			new var1;n			if (is_user_alive(_arg0))n			{n				var1 = 11256;n			}n			elsen			{n				var1 = 11300;n			}n			format(var6, 255, "<%d> [%s] %s<%s><%s> %s %s %s", g_var23a8, var7, var5, 1240[_arg0], 5596[_arg0], var2, var1, var3);n			write_file(728, var6, -1);n		}n	}n	return 0;n}nnsub_120(_arg0, _arg1)n{n	return get_localinfo("amxx_configsdir", _arg0, _arg1);n}nnsub_1cd0()n{n	g_var1ea0 = dbi_connect(7848, 8104, 8232, 8360, 8616, 127);n	if (g_var1ea0 == 0)n	{n		log_amx("%L", 0, "SQL_BAD_CONNECTION", 8616);n		return 0;n	}n	return 1;n}nnsub_1df8(_arg0, _arg1)n{n	dbi_free_result(g_var1ea4);n	g_var1ea4 = dbi_query(g_var1ea0, _arg0);n	if (g_var1ea4 == -1)n	{n		sub_1fbc(0, _arg0, _arg1);n		dbi_free_result(g_var1ea4);n		dbi_close(g_var1ea0);n		return 0;n	}n	return 1;n}nnsub_1fbc(_arg0, _arg1, _arg2)n{n	dbi_error(g_var1ea0, 8616, 127);n	if (_arg0)n	{n		client_print(_arg0, 2, "%L", -1, "SQL_BAD_QUERY", _arg1, _arg2, 8616);n	}n	elsen	{n		server_print("%L", 0, "SQL_BAD_QUERY", _arg1, _arg2, 8616);n		log_amx("%L", 0, "SQL_BAD_QUERY", _arg1, _arg2, 8616);n	}n	return 1;n}nn
DoD Plugins Archive · Repository · Old Forum Threads · Maps · Admin · built 14 Sep 2026 00:34 UTC