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

dod_spechide

by Unknown · 2005-03-31

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

dod_spechide.amxx Compiled Plugin 7 KB Download

Decompiled source reconstructed

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

// Decompiled from dod_spechide.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.nnpublic CmdSpectate(_arg0, _arg1, _arg2)n{n	if (!sub_204(_arg0, _arg1, _arg2, 1))n	{n		return 1;n	}n	if (read_argc() == 1)n	{n		sub_2eec(_arg0);n		return 1;n	}n	new var1 = 0;n	read_argv(1, var1, 31);n	new var2;n	var2 = sub_2ad0(var1);n	if (!var2)n	{n		return 1;n	}n	if (get_user_team(var2, {0}, "%L") != get_user_team(_arg0, {0}, "%L"))n	{n		client_print(_arg0, 2, "You can't spectate someone from opposite team.");n		return 1;n	}n	new var3 = 0;n	new var4 = 0;n	new var5 = 0;n	sub_2960(_arg0, var4 + var4, var3 + var3, var5 + var5);n	new var6 = var5 + 4;n	new var7 = var3 + 4;n	new var8 = var4 + 4;n	sub_2960(var2, var8 + var8, var7 + var7, var6 + var6);n	if (var2 == _arg0)n	{n		client_print(_arg0, 2, 2704);n		client_print(_arg0, 2, "Syntax: amx_spectate <name> - If no name is given, you will stop spectating.");n		return 1;n	}n	new var9 = 0;n	new var10 = var3 + 4;n	format(var9, 127, "(ADMIN) %s: began a hidden spectate on %s", var3 + var3, var10 + var10);n	sub_2d54(var9);n	new var11 = var5 + 4;n	new var12 = var4 + 4;n	new var13 = var3 + 4;n	log_amx("Cmd: "%s<%d><%s><%s>" began hidden spectate on "%s<%d><%s><%s>"", var3 + var3, get_user_userid(_arg0), var4 + var4, var5 + var5, var13 + var13, get_user_userid(var2), var12 + var12, var11 + var11);n	new var14 = 0;n	pev(_arg0, 118, var14);n	if (276[_arg0] == 0)n	{n		pev(_arg0, 41, 1992[_arg0]);n		804[_arg0] = pev(_arg0, 89);n		pev(_arg0, 43, 936[_arg0]);n		1068[_arg0] = var14;n		1068[_arg0][1] = var14 + 4/* ERROR unknown load Binary */;n		1068[_arg0][2] = var14 + 8/* ERROR unknown load Binary */;n		1596[_arg0] = pev(_arg0, 73);n		540[_arg0] = pev(_arg0, 70);n		672[_arg0] = pev(_arg0, 69);n		408[_arg0] = pev(_arg0, 89);n		pev(_arg0, 41, 1728[_arg0]);n		1860[_arg0] = pev(_arg0, 80);n	}n	set_pev(_arg0, 73, pev(_arg0, 73) | 128);n	set_pev(_arg0, 89, 5);n	set_pev(_arg0, 43, 0);n	set_pev(_arg0, "USAGE", 4);n	set_pev(_arg0, 101, var2);n	set_pev(_arg0, 69, 0);n	set_pev(_arg0, 70, 0);n	set_pev(_arg0, 80, 0);n	276[_arg0] = 1;n	return 1;n}nnpublic client_PreThink(_arg0)n{n	if (276[_arg0])n	{n		if (pev(_arg0, 81) & 1)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 1);n		}n		if (pev(_arg0, 81) & 2048)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 2048);n		}n		if (pev(_arg0, 81) & 2)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 2);n		}n		if (pev(_arg0, 81) & 4)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 4);n		}n		if (pev(_arg0, 81) & 8)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 8);n		}n		if (pev(_arg0, 81) & 16)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 16);n		}n		if (pev(_arg0, 81) & 32)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 32);n		}n		if (pev(_arg0, 81) & 64)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 64);n		}n		if (pev(_arg0, 81) & 128)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 2048);n		}n		if (pev(_arg0, 81) & 256)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 256);n		}n		if (pev(_arg0, 81) & 512)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 512);n		}n		if (pev(_arg0, 81) & 1024)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 1024);n		}n		if (pev(_arg0, 81) & 4096)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 4096);n		}n		if (pev(_arg0, 81) & 8192)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 8192);n		}n		if (pev(_arg0, 81) & 16384)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 16384);n		}n		if (pev(_arg0, 81) & 32768)n		{n			set_pev(_arg0, 81, pev(_arg0, 81) - 32768);n		}n	}n	return 0;n}nnpublic client_connect(_arg0)n{n	276[_arg0] = 0;n	return 0;n}nnpublic plugin_init()n{n	register_plugin("Admin Spectate", "0.1", "AMXX DoD Community");n	register_concmd("amx_spectate", "CmdSpectate", 8, "<name> - Do not provide a name to stop spectating");n	return 0;n}nnpublic plugin_modules()n{n	require_module("ENGINE");n	require_module("FAKEMETA");n	return 0;n}nnsub_204(_arg0, _arg1, _arg2, _arg3)n{n	new var2 = 0;n	new var1;n	if (is_dedicated_server())n	{n		var1 = 0;n	}n	elsen	{n		var1 = 1;n	}n	if (var1 == _arg0)n	{n		var2 = 1;n	}n	elsen	{n		if (_arg1 == 16777216)n		{n			if (sub_124(_arg0))n			{n				var2 = 1;n			}n		}n		if (_arg1 & get_user_flags(_arg0, "%L"))n		{n			var2 = 1;n		}n		if (_arg1 == 0)n		{n			var2 = 1;n		}n	}n	if (var2 == 0)n	{n		console_print(_arg0, "%L", _arg0, "NO_ACC_COM");n		return 0;n	}n	if (_arg3 > read_argc())n	{n		new var3 = 0;n		new var4 = 0;n		get_concmd(_arg2, var3, 31, _unused_temp_, var4, 127, _arg1, -1);n		console_print(_arg0, "%L:  %s %s", _arg0, "USAGE", var3, var4);n		return 0;n	}n	return 1;n}nnsub_2eec(_arg0)n{n	if (276[_arg0] == 0)n	{n		client_print(_arg0, 2, "You weren't forced into spectator mode on somebody.");n		client_print(_arg0, 2, "Syntax: amx_spectate <name> - If no name is given, you will stop spectating.");n		return 0;n	}n	set_pev(_arg0, 43, 936[_arg0]);n	set_pev(_arg0, 73, 1596[_arg0]);n	set_pev(_arg0, "USAGE", 0);n	set_pev(_arg0, 101, 0);n	entity_set_origin(_arg0, 1068[_arg0]);n	set_pev(_arg0, 69, 672[_arg0]);n	set_pev(_arg0, 70, 540[_arg0]);n	set_pev(_arg0, 89, 408[_arg0]);n	set_pev(_arg0, 80, 1860[_arg0]);n	set_pev(_arg0, 41, 1992[_arg0]);n	276[_arg0] = 0;n	return 0;n}nnsub_2ad0(_arg0)n{n	new var1;n	var1 = find_player("ahjl", _arg0);n	if (!var1)n	{n		var1 = find_player("bhjl", _arg0);n	}n	if (!var1)n	{n		var1 = find_player("chj", _arg0);n	}n	if (!var1)n	{n		var1 = find_player("dhj", _arg0);n	}n	if (!var1)n	{n		var1 = find_player("khj", _arg0);n	}n	if (!var1)n	{n		return -1;n	}n	return var1;n}nnsub_2960(_arg0, _arg1, _arg2, _arg3)n{n	get_user_authid(_arg0, _arg1, 31);n	get_user_name(_arg0, _arg2, 31);n	get_user_ip(_arg0, _arg3, 15, 1);n	return 0;n}nnsub_2d54(_arg0)n{n	new var1 = 1;n	while (get_maxplayers() >= var1)n	{n		if (is_user_connected(var1))n		{n			if (get_user_flags(var1, "%L") & 8)n			{n				client_print(var1, 3, _arg0);n			}n		}n		var1++;n	}n	return 0;n}nnsub_124(_arg0)n{n	new var1;n	return get_user_flags(_arg0, "%L") > 0 && !get_user_flags(_arg0, "%L") & 33554432;n}nn
DoD Plugins Archive · Repository · Old Forum Threads · Maps · Admin · built 14 Sep 2026 00:34 UTC