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.
dod_weapon
by Unknown · 2005-04-13
recovered from the server
From the first post
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

