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

dod_weapon

by Unknown · 2005-04-13

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_weapon.amxx Compiled Plugin 7 KB Download

Decompiled source reconstructed

dod_weapon.amxx was published compiled only. This Pawn was recovered from the bytecode with Lysis — 335 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_weapon.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 admin_weapon(_arg0, _arg1, _arg2)n{n	if (!sub_200(_arg0, _arg1, _arg2, 3))n	{n		return 1;n	}n	new var1 = 0;n	new var2 = 0;n	new var3 = 0;n	read_argv(1, var1, 31);n	read_argv(2, var2, 7);n	var3 = str_to_num(var2);n	if (equali(var1, "@all", "%L"))n	{n		new var4 = 0;n		new var5 = 0;n		get_players(var4, var5, 1028, 1036);n		if (var5 == 0)n		{n			console_print(_arg0, "[AMX] There are no clients");n			return 1;n		}n		new var6 = 0;n		while (var6 < var5)n		{n			if (!sub_1c20(var4[var6], var3))n			{n				console_print(_arg0, "[AMX] Gave all players the weapon %d", var3);n			}n			var6++;n		}n		console_print(_arg0, "[AMX] Gave all players the weapon %d", var3);n		if (!get_cvar_num("amx_weaponmsg"))n		{n			return 1;n		}n		set_hudmessage(10, 200, 10, -1082130432, 1050253722, "%L", 1086324736, 1086324736, 1056964608, 1041865114, 1);n		show_hudmessage("%L", "All players have been given a weapon!");n	}n	elsen	{n		if (var1 == 64)n		{n			new var7 = 0;n			new var8 = 0;n			get_players(var7, var8, "ae", var1 + 4);n			if (var8 == 0)n			{n				console_print(_arg0, "[AMX] No clients in such team");n				return 1;n			}n			new var9 = 0;n			while (var9 < var8)n			{n				sub_1c20(var7[var9], var3);n				var9++;n			}n			console_print(_arg0, "[AMX] Gave all %ss the weapon %d", var1 + 4, var3);n			if (get_cvar_num("amx_weaponmsg"))n			{n				if (equali(var1 + 4, "CT", "%L"))n				{n					set_hudmessage(200, 20, "%L", -1082130432, 1050253722, "%L", 1086324736, 1086324736, 1056964608, 1041865114, 1);n				}n				elsen				{n					set_hudmessage("%L", 20, 200, -1082130432, 1050253722, "%L", 1086324736, 1086324736, 1056964608, 1041865114, 1);n				}n				show_hudmessage("%L", "The %ss have been given a weapon!", var1 + 4);n			}n		}n		new var10 = 0;n		new var11;n		var11 = sub_6a4(_arg0, var1, 6);n		if (!var11)n		{n			return 1;n		}n		sub_1c20(var11, var3);n		get_user_name(var11, var10, 31);n		console_print(_arg0, "[AMX] Gave %s the weapon %d", var10, var3);n		if (get_cvar_num("amx_weaponmsg"))n		{n			set_hudmessage(10, 200, 10, -1082130432, 1050253722, "%L", 1086324736, 1086324736, 1056964608, 1041865114, 1);n			show_hudmessage("%L", "%s has been given a weapon!", var10);n		}n	}n	return 1;n}nnpublic plugin_init()n{n	register_plugin("Admin Weapon II", "1.0", "Mattcook&DarkDog");n	register_cvar("amx_weaponmsg", 704, "%L", "%L");n	register_concmd("amx_weapon", "admin_weapon", 8192, "<authid, nick, @team, @all or #userid> <weapon #>");n	return 0;n}nnsub_200(_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_120(_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_1c20(_arg0, _arg1)n{n	switch (_arg1)n	{n		case 1:n		{n			give_item(_arg0, "weapon_kar");n			give_item(_arg0, "ammo_kar");n		}n		case 2:n		{n			give_item(_arg0, "weapon_garand");n			give_item(_arg0, "ammo_garand");n		}n		case 3:n		{n			give_item(_arg0, "weapon_k43");n			give_item(_arg0, "ammo_k43");n		}n		case 4:n		{n			give_item(_arg0, "weapon_m1carbine");n			give_item(_arg0, "ammo_m1carbine");n		}n		case 5:n		{n			give_item(_arg0, "weapon_mp40");n			give_item(_arg0, "ammo_mp40");n		}n		case 6:n		{n			give_item(_arg0, "weapon_thompson");n			give_item(_arg0, "ammo_thompson");n		}n		case 7:n		{n			give_item(_arg0, "weapon_mp44");n			give_item(_arg0, "ammo_mp44");n		}n		case 8:n		{n			give_item(_arg0, "weapon_bar");n			give_item(_arg0, "ammo_bar");n		}n		case 9:n		{n			give_item(_arg0, "weapon_fg42");n			give_item(_arg0, "ammo_fg42");n		}n		case 10:n		{n			give_item(_arg0, "weapon_greasegun");n			give_item(_arg0, "ammo_greasegun");n		}n		case 11:n		{n			give_item(_arg0, "weapon_scopedkar");n			give_item(_arg0, "ammo_scopedkar");n		}n		case 12:n		{n			give_item(_arg0, "weapon_spring");n			give_item(_arg0, "ammo_spring");n		}n		case 13:n		{n			give_item(_arg0, "weapon_mg42");n			give_item(_arg0, "ammo_mg42");n		}n		case 14:n		{n			give_item(_arg0, "weapon_30cal");n			give_item(_arg0, "ammo_30cal");n		}n		case 15:n		{n			give_item(_arg0, "weapon_mg34");n			give_item(_arg0, "ammo_mg34");n		}n		case 16:n		{n			give_item(_arg0, "weapon_pschreck");n			give_item(_arg0, "ammo_pschreck");n		}n		case 17:n		{n			give_item(_arg0, "weapon_bazooka");n			give_item(_arg0, "ammo_bazooka");n		}n		case 18:n		{n			give_item(_arg0, "weapon_enfield");n			give_item(_arg0, "ammo_enfield");n		}n		case 19:n		{n			give_item(_arg0, "weapon_sten");n			give_item(_arg0, "ammo_sten");n		}n		case 20:n		{n			give_item(_arg0, "weapon_bren");n			give_item(_arg0, "ammo_bren");n		}n		case 21:n		{n			give_item(_arg0, "weapon_scopedenfield");n			give_item(_arg0, "ammo_bren");n		}n		default:n		{n			return 0;n		}n	}n	return 1;n}nnsub_6a4(_arg0, _arg1, _arg2)n{n	new var4;n	var4 = find_player("bl", _arg1);n	if (var4)n	{n		if (find_player("blj", _arg1) != var4)n		{n			console_print(_arg0, "%L", _arg0, "MORE_CL_MATCHT");n			return 0;n		}n	}n	elsen	{n		new var1;n		if ((var4 = find_player(224, _arg1)) == 0 && _arg1 == 35 && _arg1 + 4/* ERROR unknown load Binary */)n		{n			var4 = find_player(232, str_to_num(_arg1 + 4));n		}n	}n	if (!var4)n	{n		console_print(_arg0, "%L", _arg0, "CL_NOT_FOUND");n		return 0;n	}n	if (_arg2 & 1)n	{n		new var3;n		if (get_user_flags(var4, "%L") & 1 && _arg2 & 2)n		{n			new var5 = 0;n			get_user_name(var4, var5, 31);n			console_print(_arg0, "%L", _arg0, "CLIENT_IMM", var5);n			return 0;n		}n	}n	if (_arg2 & 4)n	{n		if (!is_user_alive(var4))n		{n			new var6 = 0;n			get_user_name(var4, var6, 31);n			console_print(_arg0, "%L", _arg0, "CANT_PERF_DEAD", var6);n			return 0;n		}n	}n	if (_arg2 & 8)n	{n		if (is_user_bot(var4))n		{n			new var7 = 0;n			get_user_name(var4, var7, 31);n			console_print(_arg0, "%L", _arg0, "CANT_PERF_BOT", var7);n			return 0;n		}n	}n	return var4;n}nnsub_120(_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