Запрет автовыбора команды

zloykif

Участник
Сообщения
156
Реакции
21
Подходящего плагина я не нашел, по этому хочу переделать какой нибудь похожий.
Вот к примеру, можно из этого убрать лишнее и добавить нужное. А нужно мне, что бы при нажатии на автовыбор игрока кидало в спеки, как бы это сделать? Как определить что была нажата кнопка автовыбора?
0 == unassigned, 1 == Spectator, 2 == T and 3 == CT

C-подобный:
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#pragma semicolon 1
#define PLUGIN_VERSION "2.0"
new Float:RecentChange[MAXPLAYERS+1];
new Handle:auto_team = INVALID_HANDLE;
public Plugin:myinfo =
{
	name = "Auto Assign",
	author = "Mitchell, translator 23neon23",
	description = "Makes it so you cant choose your team.",
	version = PLUGIN_VERSION,
	url = "http://prem-serv.ru/"
}
public OnPluginStart( )
{
	CreateConVar("sm_auto_assign", PLUGIN_VERSION, "Autoassign", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
	auto_team =	CreateConVar( "sm_autoassign_team", "3", "0 - Disables, 1 - Any Team, 2 - T, 3 - CT" );
	RegConsoleCmd("joingame", JOINgAME);
	RegConsoleCmd("jointeam", JOINgAME);
}
public Action:JOINgAME(client, args)
{
	if(!IsFakeClient(client) && ((GetGameTime() - RecentChange[client]) >= 15.0))
	{
		new cTeam = GetConVarInt(auto_team);
		switch (cTeam)
		{
			case 0:
				return Plugin_Continue;
			case 1:
			{
				if (GetTeamClientCount(CS_TEAM_T) > GetTeamClientCount(CS_TEAM_CT)) {
					CS_SwitchTeam(client, CS_TEAM_CT);
					CS_RespawnPlayer(client);
					RecentChange[client] = GetGameTime();
					return Plugin_Handled;
				}
				if (GetTeamClientCount(CS_TEAM_CT) > GetTeamClientCount(CS_TEAM_T)) {
					CS_SwitchTeam(client, CS_TEAM_T);
					CS_RespawnPlayer(client);
					RecentChange[client] = GetGameTime();
					return Plugin_Handled;
				}
				if (GetTeamClientCount(CS_TEAM_CT) == GetTeamClientCount(CS_TEAM_T)) {
					CS_SwitchTeam(client, GetRandomInt(2, 3));
					CS_RespawnPlayer(client);
					RecentChange[client] = GetGameTime();
					return Plugin_Handled;
				}
			}
			case 2,3:
			{
				CS_SwitchTeam(client, cTeam);
				CS_RespawnPlayer(client);
				RecentChange[client] = GetGameTime();
				return Plugin_Handled;
			}
		}
	}
	else {
		PrintToChat(client, "\x03[\x05Auto-Assign\x03] \x01Вы должны подождать до смены команды.");
		return Plugin_Handled;
	}
	return Plugin_Continue;
}
public OnClientPutInServer(client)
{
	RecentChange[client] = GetGameTime();
}
 

zloykif

Участник
Сообщения
156
Реакции
21
Да, сам по себе плагин работает как надо вроде бы, но если параллельно с ним использовать deathrun плагин от тушканчика (на ес питоне который) то автовыбор работает как обычно (кидает за КТ и предлагает выбрать скин) ни звука ни сообщения в чат... Печалька, а от дезрана этого исходников нет вроде бы.
ПС: а нет, модуль рестрикта команды у дезрана открыт, пойду править ^^ еще раз спасибо
upd: там был прехук выбора команды в дезране, убрал его и всё ок

Добавлено через 11 часов 59 минут
Всё хорошо, разве что для удобства можно добавить что-бы после отказа, диалог выбора команды открывался автоматически %)
 
Последнее редактирование:
Сверху Снизу