Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

Страница 1 из 11
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Поймать игрока по прицелу
Поймать игрока по прицелу
ppc Дата: Пятница, 15.04.2016, 18:47:16 | Сообщение # 1
Сообщений: 85
Репутация: 0 [ +/- ]
Следующий вопрос: как поймать момент когда прицел наведен на игрока? То есть вообще говоря нужно как то проверить нацелен ли прицел на игрока в данный момент или нет и если да то получить его индекс.


Сообщение отредактировал ppc - Пятница, 15.04.2016, 18:50:54
 
Scarface_slv Дата: Пятница, 15.04.2016, 20:14:40 | Сообщение # 2
Сообщений: 749
Репутация: 61 [ +/- ]
нужен повторяющийся таймер и TR_TraceRayFilter смотри в поиске, примеров куча
 
ppc Дата: Пятница, 15.04.2016, 20:34:02 | Сообщение # 3
Сообщений: 85
Репутация: 0 [ +/- ]
Цитата Scarface_slv ()
нужен повторяющийся таймер и TR_TraceRayFilter смотри в поиске, примеров куча

Нет мне нужно в один определенный момент времени. То есть я должен например какую то функцию запустить и если прицел наведен на игрока в этот момент то получить его индекс

Добавлено (15.04.2016, 20:34:02)
---------------------------------------------
Знаю только как получить позицию прицела а как проверить нацелена она на игрока или нет



Сообщение отредактировал ppc - Пятница, 15.04.2016, 20:30:10
 
BarD Дата: Суббота, 16.04.2016, 07:30:58 | Сообщение # 4
Сообщений: 944
Репутация: 132 [ +/- ]
Код
stock GetClientOnAim(client)
{
decl Float:origin[3], Float:angles[3];
    GetClientEyePosition(client, origin); GetClientEyeAngles(client, angles);
    TR_TraceRayFilter(origin, angles, MASK_SOLID, RayType_Infinite, Filter, client);

    if (!TR_DidHit())
  return -1;

    new ent = TR_GetEntityIndex();
    TR_GetEndPosition(origin);
        if (ent > 0 && ent <= MaxClients) return ent;
        else return -1;
}

public bool:Filter(ent, mask, any:client)
{
    return client != ent;
}


//В коде:
//client - игрок, который смотрит
new target = GetClientOnAim(client);

if (target > 0)
{
//Смотрим на игрока с индексом target
}
 
dases2003 Дата: Суббота, 16.04.2016, 08:55:10 | Сообщение # 5
Сообщений: 108
Репутация: 1 [ +/- ]
Писец товарищи! API в помощь!
new iIndex=GetClientAimTarget(client, bool:only_clients=true);
if(0<iIndex<=MaxClients) {
//Выполняем функцию iIndex - индекс клиента, на которого смотрит клиент под индексом client
}
else {
//Не смотрит на какого-либо клиента
}


Сообщение отредактировал dases2003 - Суббота, 16.04.2016, 08:59:39
 
TorresSs Дата: Среда, 27.04.2016, 10:47:19 | Сообщение # 6
Сообщений: 23
Репутация: 1 [ +/- ]
спс.
 
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Поймать игрока по прицелу
Страница 1 из 11
Поиск: