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

dod_teamselect

by Unknown · 2005-03-02

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_teamselect.amxx Compiled Plugin 11 KB Download
dod_teamselect.txt Docs 869 B Download

Decompiled source reconstructed

dod_teamselect.amxx was published compiled only. This Pawn was recovered from the bytecode with Lysis — 513 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_teamselect.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_var224;nnew g_var22c;nnew g_var228;npublic client_disconnect(_arg0)n{n	284[_arg0] = 0;n	416[_arg0] = 0;n	if (g_var224 == 1)n	{n		new var1 = 0;n		new var2 = 0;n		get_user_authid(_arg0, var1, 31);n		get_vaultdata("public_war_starter", var2, 31);n		if (equal(var1, var2, "%L"))n		{n			client_cmd(_arg0, "dod_pwar");n		}n	}n	return 0;n}nnpublic client_putinserver(_arg0)n{n	if (g_var224 == 1)n	{n		new var1 = 0;n		var1 = _arg0;n		set_task(1084227584, "onjointeamselect", _arg0 + 160, var1, 1, {0}, "%L");n	}n	return 0;n}nnpublic cmd_jointeam(_arg0)n{n	new var1;n	if (get_cvar_num("dod_teamselect") && get_cvar_num("dod_teamselect_lock") && 284[_arg0])n	{n		new var3 = 0;n		read_argv(1, var3, 31);n		new var4;n		var4 = str_to_num(var3);n		new var2;n		if (var4 != 416[_arg0] && var4 != 3)n		{n			sub_3788(_arg0, 416[_arg0]);n			return 1;n		}n	}n	return 0;n}nnpublic freeclass(_arg0, _arg1, _arg2)n{n	if (get_cvar_num("dod_teamselect"))n	{n		if (!sub_204(_arg0, _arg1, _arg2, 2))n		{n			return 1;n		}n		new var2 = 0;n		new var3 = 0;n		read_argv("%L", var2, 31);n		new var4;n		var4 = sub_3d68(var3, _unused_temp_);n		if (!var4)n		{n			client_print(_arg0, 2, "%L", -1, "PLAYER_NOT_FOUND", var3);n			return 1;n		}n		new var1;n		if (get_user_flags(var4, "%L") & 524288 && get_cvar_num("dod_teamselect_immune"))n		{n			client_print(_arg0, 2, "%L", -1, "DOD_TEAMSWITCH_IMMUNE", var3, var2);n			return 1;n		}n		new var5;n		var5 = get_user_team(var4, {0}, "%L");n		if (var5 == 1)n		{n			dod_set_user_class(var4, 1);n		}n		elsen		{n			if (var5 == 2)n			{n				dod_set_user_class(var4, 10);n			}n			return 1;n		}n		sub_40d0(_arg0, "freeclass", var4);n	}n	elsen	{n		client_print(_arg0, 2, "%L", -1, "DOD_TEAMSWITCH_OFF");n	}n	return 1;n}nnpublic onjointeamselect(_arg0)n{n	if (get_cvar_num("dod_teamselect"))n	{n		new var1;n		var1 = _arg0;n		if (is_user_connected(var1))n		{n			416[var1] = g_var22c;n			284[var1] = 1;n			client_cmd(var1, "jointeam %d", g_var22c);n		}n		elsen		{n			set_task(1065353216, "onjointeamselect", var1 + 160, _arg0, 1, {0}, "%L");n		}n	}n	return 0;n}nnpublic plugin_init()n{n	register_plugin("DoD Team Select", "0.3a", "AMXX DoD Community");n	register_clcmd("dod_teamswitch", "set_cvars", "onjointeamselect", "< 1 | 0 > - Will turn the plugin on or off");n	register_clcmd("dod_teamswitch_immunity", "set_cvars", "onjointeamselect", "< 1 | 0 > - Will turn the plugins immunity feature on or off");n	register_clcmd("dod_teamswitch_lock", "set_cvars", "onjointeamselect", "< 1 | 0 > - Will turn the plugins locking feature on or off");n	register_clcmd("dod_axis", "teamswitch", 4, "< nick | part of nick | steamid | id > - Will move player to Axis Team");n	register_clcmd("dod_allies", "teamswitch", 4, "< nick | part of nick | steamid | id > - Will move player to Allies Team");n	register_clcmd("dod_spec", "teamswitch", 4, "< nick | part of nick | steamid | id > - Will move player to Spectator");n	register_clcmd("dod_freeclass", "freeclass", 4, "< nick | part of nick | steamid | id > - Will free up a class such as sniper");n	register_clcmd("dod_pwar", "publicwar", 4, "Will start up a public war");n	register_srvcmd("dod_teamswitch", "set_cvars", -1, {0});n	register_srvcmd("dod_teamswitch_immunity", "set_cvars", -1, {0});n	register_srvcmd("dod_teamswitch_lock", "set_cvars", -1, {0});n	register_clcmd("jointeam", "cmd_jointeam", -1, {0});n	register_dictionary("dod_teamselect.txt");n	register_cvar("dod_teamselect", 3856, "%L", "%L");n	register_cvar("dod_teamselect_immune", 3952, "%L", "%L");n	register_cvar("dod_teamselect_lock", 4040, "%L", "%L");n	return 0;n}nnpublic plugin_modules()n{n	require_module("DODX");n	require_module("DODFUN");n	return 0;n}nnpublic publicwar(_arg0, _arg1, _arg2)n{n	if (get_cvar_num("dod_teamselect"))n	{n		if (!sub_204(_arg0, _arg1, _arg2, 1))n		{n			return 1;n		}n		sub_3c60(_arg0, _unused_temp_, _unused_temp_);n		if (g_var224 == 0)n		{n			new var3 = 0;n			format(var3, 7, "%d", _arg0);n			set_vaultdata("public_war_starter", var3);n			format(var3, 7, "%d", get_cvar_num("dod_teamselect_lock"));n			set_vaultdata("public_war_locked_status", var3);n			set_cvar_num("dod_teamselect_lock", 1);n			g_var228 = get_user_team(_arg0, {0}, "%L");n			new var1;n			if (g_var228 == 1)n			{n				var1 = 2;n			}n			elsen			{n				var1 = 1;n			}n			g_var22c = var1;n			new var4 = 0;n			new var5 = 0;n			get_players(var4, var5, 6684, 6692);n			new var6 = 0;n			while (var6 < var5)n			{n				new var2;n				if (get_user_flags(var4[var6], "%L") & 524288 && get_user_team(_arg0, {0}, "%L") != 3)n				{n					client_cmd(var4[var6], "jointeam %d", g_var228);n					show_hudmessage(var4[var6], "%L", -1, "PUBLIC_WAR_STAY_CLAN");n				}n				elsen				{n					client_cmd(var4[var6], "jointeam %d", g_var22c);n					416[var4[var6]] = g_var22c;n					284[var4[var6]] = 1;n					show_hudmessage(var4[var6], "%L", -1, "PUBLIC_WAR_STAY_NONCLAN");n				}n				var6++;n			}n			show_hudmessage("%L", "%L", -1, "PUBLIC_WAR_ON");n			sub_40d0(_arg0, "publicwar-start", 0);n			g_var224 = 1;n		}n		elsen		{n			remove_vaultdata("public_war_starter");n			set_cvar_num("dod_teamselect_lock", get_vaultdata("public_war_locked_status", {0}, "%L"));n			remove_vaultdata("public_war_locked_status");n			show_hudmessage("%L", "%L", -1, "PUBLIC_WAR_OFF");n			new var7 = 0;n			new var8 = 0;n			get_players(var7, var8, 7560, 6692);n			new var9 = 0;n			while (var9 < var8)n			{n				416[var7[var9]] = 0;n				284[var7[var9]] = 0;n				var9++;n			}n			sub_40d0(_arg0, "publicwar-stop", 0);n		}n	}n	elsen	{n		client_print(_arg0, 2, "%L", -1, "DOD_TEAMSWITCH_OFF");n	}n	return 1;n}nnpublic set_cvars(_arg0, _arg1, _arg2)n{n	if (!sub_204(_arg0, _arg1, _arg2, 2))n	{n		return 1;n	}n	new var2 = 0;n	new var3 = 0;n	read_argv("%L", var2, 31);n	read_argv(1, var3, 31);n	new var1;n	if (equal(var3, 4280, "%L") || equal(var3, 4288, "%L"))n	{n		if (equal(var2, "dod_teamswitch", "%L"))n		{n			set_cvar_string("dod_teamselect", var3);n		}n		elsen		{n			if (equal(var2, "dod_teamswitch_immunity", "%L"))n			{n				set_cvar_string("dod_teamselect_immune", var3);n			}n			if (equal(var2, "dod_teamswitch_lock", "%L"))n			{n				set_cvar_string("ddod_teamselect_lock", var3);n			}n		}n	}n	elsen	{n		client_print(_arg0, 2, "%L", -1, "BADVARIABLE");n	}n	return 1;n}nnpublic teamswitch(_arg0, _arg1, _arg2)n{n	if (get_cvar_num("dod_teamselect"))n	{n		if (!sub_204(_arg0, _arg1, _arg2, 2))n		{n			return 1;n		}n		new var6 = 0;n		new var7 = 0;n		read_argv("%L", var6, 31);n		new var8;n		var8 = sub_3d68(var7, _unused_temp_);n		if (!var8)n		{n			client_print(_arg0, 2, "%L", -1, "PLAYER_NOT_FOUND", var7);n			return 1;n		}n		new var1;n		if (get_user_flags(var8, "%L") & 524288 && get_cvar_num("dod_teamselect_immune"))n		{n			client_print(_arg0, 2, "%L", -1, "DOD_TEAMSWITCH_IMMUNE", var7, var6);n			return 1;n		}n		new var9;n		var9 = get_user_team(var8, {0}, "%L");n		new var10;n		var10 = dod_get_map_info("%L");n		new var2;n		if (equal(var6, "dod_axis", "%L") && var9 != 2)n		{n			if (var9 != 3)n			{n				dod_set_user_team(var8, 2, 1);n				dod_set_user_class(var8, 10);n			}n			elsen			{n				client_cmd(var8, "jointeam %d", 2);n			}n			sub_3788(var8, 2);n			if (get_cvar_num("dod_teamselect_lock"))n			{n				416[var8] = 2;n				284[var8] = 1;n			}n		}n		elsen		{n			new var3;n			if (equal(var6, "dod_allies", "%L") && var9 != 1)n			{n				if (var9 != 3)n				{n					dod_set_user_team(var8, 1, 1);n					new var4;n					if (var10 == 0)n					{n						var4 = 1;n					}n					elsen					{n						var4 = 21;n					}n					dod_set_user_class(var8, var4);n				}n				elsen				{n					client_cmd(var8, "jointeam %d", 1);n				}n				sub_3788(var8, 1);n				if (get_cvar_num("dod_teamselect_lock"))n				{n					416[var8] = 1;n					284[var8] = 1;n				}n			}n			new var5;n			if (equal(var6, "dod_spec", "%L") && var9 != 3)n			{n				client_cmd(var8, "jointeam 3");n			}n			client_print(_arg0, 2, "%L", -1, "DOD_TEAMSWITCH_ALREADY");n		}n		sub_40d0(_arg0, "teamswitch", var8);n	}n	elsen	{n		client_print(_arg0, 2, "%L", -1, "DOD_TEAMSWITCH_OFF");n	}n	return 1;n}nnsub_3788(_arg0, _arg1)n{n	new var1;n	if (_arg1 == 1)n	{n		var1 = 7996;n	}n	elsen	{n		var1 = 8024;n	}n	client_print(_arg0, 2, "%L", -1, "DOD_TEAMSWITCH_MESSAGE", var1);n	new var2;n	if (_arg1 == 1)n	{n		var2 = 8148;n	}n	elsen	{n		var2 = 8176;n	}n	client_print(_arg0, 3, "%L", -1, "DOD_TEAMSWITCH_MESSAGE", var2);n	new var3;n	if (_arg1 == 1)n	{n		var3 = 8300;n	}n	elsen	{n		var3 = 8328;n	}n	client_print(_arg0, 4, "%L", -1, "DOD_TEAMSWITCH_MESSAGE", var3);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_3d68(_arg0, _arg1)n{n	read_argv(1, _arg0, 31);n	remove_quotes(_arg0);n	trim(_arg0);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 0;n	}n	sub_3c60(var1, _arg1, _arg0);n	return var1;n}nnsub_40d0(_arg0, _arg1, _arg2)n{n	new var1 = 0;n	new var2 = 0;n	if (_arg0)n	{n		sub_3c60(_arg0, var1 + var1, var2 + var2);n	}n	if (_arg2)n	{n		new var3 = var2 + 4;n		new var4 = var1 + 4;n		sub_3c60(_arg2, var4 + var4, var3 + var3);n		new var5 = var2 + 4;n		new var6 = var1 + 4;n		log_amx("%L", 0, "LOGGING2", var2 + var2, var1 + var1, _arg1, var6 + var6, var5 + var5);n	}n	elsen	{n		log_amx("%L", 0, "LOGGING1", var2 + var2, var1 + var1, _arg1);n	}n	return 0;n}nnsub_3c60(_arg0, _arg1, _arg2)n{n	get_user_authid(_arg0, _arg1, 31);n	get_user_name(_arg0, _arg2, 31);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