Transfer team, plmenu.amxx orginalus failas
Posted: 2012 Apr 01 19:26
Bandau padaryti taip, kad perkėlus žaidėją į kitą komandą jo nenužudytų ir duotų tos komandos ginklą, taigi nesigauna, galit padėt?
Čia orginalus plmenu.amxx team transfer kodas:
o čia mano perdarytas, padėkit jaigu suprantat ir galit , + karma nepagailėsiu tikrai
Čia orginalus plmenu.amxx team transfer kodas:
Code: Select all
/* Team menu */ public actionTeamMenu(id, key){ switch (key) { case 7: { g_menuOption[id] = (g_menuOption[id] + 1) % (g_cstrike ? 3 : 2); displayTeamMenu(id, g_menuPosition[id]) } case 8: displayTeamMenu(id, ++g_menuPosition[id]) case 9: displayTeamMenu(id, --g_menuPosition[id]) default: { new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key] new authid[32], authid2[32], name[32], name2[32] get_user_name(player, name2, 31) get_user_authid(id, authid, 31) get_user_authid(player, authid2, 31) get_user_name(id, name, 31) log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2, g_menuOption[id] ? "TERRORIST" : "CT") show_activity_key("ADMIN_TRANSF_1", "ADMIN_TRANSF_2", name, name2, g_CSTeamNames[g_menuOption[id] % 3]); if (g_cstrike) { if (is_user_alive(player)) { new deaths = cs_get_user_deaths(player) user_kill(player, 1) cs_set_user_deaths(player, deaths) } // This modulo math just aligns the option to the CsTeams-corresponding number cs_set_user_team(player, (g_menuOption[id] % 3) + 1) cs_reset_user_model(player) } else { new limit_setting = get_cvar_num("mp_limitteams") set_cvar_num("mp_limitteams", 0) engclient_cmd(player, "jointeam", g_CSTeamNumbers[g_menuOption[id] % 2]) engclient_cmd(player, "joinclass", "1") set_cvar_num("mp_limitteams", limit_setting) } displayTeamMenu(id, g_menuPosition[id]) } } return PLUGIN_HANDLED} displayTeamMenu(id, pos){ if (pos < 0) return get_players(g_menuPlayers[id], g_menuPlayersNum[id]) new menuBody[512] new b = 0 new i, iteam new name[32], team[4] new start = pos * 7 if (start >= g_menuPlayersNum[id]) start = pos = g_menuPosition[id] = 0 new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "TEAM_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0))) new end = start + 7 new keys = MENU_KEY_0|MENU_KEY_8 if (end > g_menuPlayersNum[id]) end = g_menuPlayersNum[id] for (new a = start; a < end; ++a) { i = g_menuPlayers[id][a] get_user_name(i, name, 31) if (g_cstrike) { iteam = _:cs_get_user_team(i) if (iteam == 1) { copy(team, 3, "TE") } else if (iteam == 2) { copy(team, 3, "CT") } else if (iteam == 3) { copy(team, 3, "SPE"); iteam = 6; } else { iteam = get_user_team(i, team, 3) } } else { iteam = get_user_team(i, team, 3) } if ((iteam == g_CSTeamiNumbers[g_menuOption[id] % (g_cstrike ? 3 : 2)]) || (access(i, ADMIN_IMMUNITY) && i != id)) { ++b if (g_coloredMenus) len += format(menuBody[len], 511-len, "\d%d. %s\R%s^n\w", b, name, team) else len += format(menuBody[len], 511-len, "#. %s %s^n", name, team) } else { keys |= (1<<b) if (is_user_admin(i)) len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*\y\R%s^n\w" : "%d. %s * %s^n", ++b, name, team) else len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s\y\R%s^n\w" : "%d. %s %s^n", ++b, name, team) } } len += format(menuBody[len], 511-len, "^n8. %L^n", id, "TRANSF_TO", g_CSTeamNames[g_menuOption[id] % (g_cstrike ? 3 : 2)]) if (end != g_menuPlayersNum[id]) { format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT") keys |= MENU_KEY_9 } else format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT") show_menu(id, keys, menuBody, -1, "Team Menu")} public cmdTeamMenu(id, level, cid){ if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED g_menuOption[id] = 0 displayTeamMenu(id, g_menuPosition[id] = 0) return PLUGIN_HANDLED}
Code: Select all
/* Team menu */ public actionTeamMenu(id, key){ switch (key) { case 7: { g_menuOption[id] = (g_menuOption[id] + 1) % (g_cstrike ? 3 : 2); displayTeamMenu(id, g_menuPosition[id]) } case 8: displayTeamMenu(id, ++g_menuPosition[id]) case 9: displayTeamMenu(id, --g_menuPosition[id]) default: { new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key] new authid[32], authid2[32], name[32], name2[32] get_user_name(player, name2, 31) get_user_authid(id, authid, 31) get_user_authid(player, authid2, 31) get_user_name(id, name, 31) log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2, g_menuOption[id] ? "TERRORIST" : "CT") show_activity_key("ADMIN_TRANSF_1", "ADMIN_TRANSF_2", name, name2, g_CSTeamNames[g_menuOption[id] % 3]); if (g_cstrike) { iteam = _:cs_get_user_team(i) if (iteam == 1) { ExecuteHam(Ham_Spawn, player); strip_user_weapons(player); give_item(player, "weapon_knife"); give_item(player, "weapon_glock"); cs_set_user_bpammo(player, CSW_GLOCK, 255); } else if (iteam == 2) { ExecuteHam(Ham_Spawn, player); strip_user_weapons(player); give_item(player, "weapon_knife"); give_item(player, "weapon_usp"); cs_set_user_bpammo(player, CSW_USP, 255); } else if (iteam == 3) { new deaths = cs_get_user_deaths(player) user_kill(player, 1) cs_set_user_deaths(player, deaths) } // This modulo math just aligns the option to the CsTeams-corresponding number cs_set_user_team(player, (g_menuOption[id] % 3) + 1) cs_reset_user_model(player) } else { new limit_setting = get_cvar_num("mp_limitteams") set_cvar_num("mp_limitteams", 0) engclient_cmd(player, "jointeam", g_CSTeamNumbers[g_menuOption[id] % 2]) engclient_cmd(player, "joinclass", "1") set_cvar_num("mp_limitteams", limit_setting) } displayTeamMenu(id, g_menuPosition[id]) } } return PLUGIN_HANDLED} displayTeamMenu(id, pos){ if (pos < 0) return get_players(g_menuPlayers[id], g_menuPlayersNum[id]) new menuBody[512] new b = 0 new i, iteam new name[32], team[4] new start = pos * 7 if (start >= g_menuPlayersNum[id]) start = pos = g_menuPosition[id] = 0 new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "TEAM_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0))) new end = start + 7 new keys = MENU_KEY_0|MENU_KEY_8 if (end > g_menuPlayersNum[id]) end = g_menuPlayersNum[id] for (new a = start; a < end; ++a) { i = g_menuPlayers[id][a] get_user_name(i, name, 31) if (g_cstrike) { iteam = _:cs_get_user_team(i) if (iteam == 1) { copy(team, 3, "TE") } else if (iteam == 2) { copy(team, 3, "CT") } else if (iteam == 3) { copy(team, 3, "SPE"); iteam = 6; } else { iteam = get_user_team(i, team, 3) } } else { iteam = get_user_team(i, team, 3) } if ((iteam == g_CSTeamiNumbers[g_menuOption[id] % (g_cstrike ? 3 : 2)]) || (access(i, ADMIN_IMMUNITY) && i != id)) { ++b if (g_coloredMenus) len += format(menuBody[len], 511-len, "\d%d. %s\R%s^n\w", b, name, team) else len += format(menuBody[len], 511-len, "#. %s %s^n", name, team) } else { keys |= (1<<b) if (is_user_admin(i)) len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*\y\R%s^n\w" : "%d. %s * %s^n", ++b, name, team) else len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s\y\R%s^n\w" : "%d. %s %s^n", ++b, name, team) } } len += format(menuBody[len], 511-len, "^n8. %L^n", id, "TRANSF_TO", g_CSTeamNames[g_menuOption[id] % (g_cstrike ? 3 : 2)]) if (end != g_menuPlayersNum[id]) { format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT") keys |= MENU_KEY_9 } else format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT") show_menu(id, keys, menuBody, -1, "Team Menu")} public cmdTeamMenu(id, level, cid){ if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED g_menuOption[id] = 0 displayTeamMenu(id, g_menuPosition[id] = 0) return PLUGIN_HANDLED}