Dn1pRo » 30 сен 2010, 12:42
Вот новый код, который переписывает spec_next
[pawn]public Action:Command_SpecNext(client, args)
{
new maxclients = GetMaxClients();
new new_target = 0;
if (GetClientTeam(GetEntPropEnt(client, Prop_Send, "m_hObserverTarget")) == 2)
{
for (new x = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget")+1;x <= maxclients;x++)
{
if (IsClientConnected(x) && IsClientInGame(x) && IsPlayerAlive(x) && GetClientTeam(x) == 3)
{
new_target = x;
break;
}
}
if (new_target == 0)
{
for (new y = 0;y <= GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");y++)
{
if (IsClientConnected(y) && IsClientInGame(y) && IsPlayerAlive(y) && GetClientTeam(y) == 3)
{
new_target = y;
break;
}
}
}
SetEntPropEnt(client, Prop_Send, "m_hObserverTarget", new_target);
SetEntProp(client, Prop_Send, "m_iObserverMode", 0);
}
return Plugin_Continue;
} [/pawn]
Не работает.
Старый код с хуком, который отлавливал нажатие IN_ATTACK и менял таргет:
[pawn]public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_PreThink, OnPreThink);
}
public OnPreThink(client)
{
if (!IsPlayerAlive(client))
{
new iButtons = GetClientButtons(client);
if(iButtons & IN_ATTACK)
{
}
}
} [/pawn]
Вот 2 кода, второй, признаюсь, стер.