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_teamselect
by Unknown · 2005-03-02
recovered from the server
From the first post
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

