PHP код:
#define MAX_SCALE_DIST 100.0 //Максимальная дистанция для проверки, на которую пустится луч
new
Float:pX, Float:pY, Float:pZ,
Float:vX, Float:vY, Float:vZ,
Float:atX, Float:atY, Float:atZ;
GetPlayerCameraPos(playerid, pX, pY, pZ); //Узнаём начальные координаты для луча
GetPlayerCameraFrontVector(playerid, vX, vY, vZ);
//Вычисляем конечные координаты для луча
atX = pX + (vX * MAX_SCALE_DIST);
atY = pY + (vY * MAX_SCALE_DIST);
atZ = pZ + (vZ * MAX_SCALE_DIST);
//Узнаём, нашёл ли луч какую-то коллизию с объектом на своём пути
if(CA_RayCastLine(pX, pY, pZ, vX, vY, vZ, atX, atY, atZ)) //Нашёл
{ //Координаты коллизии (т.е. та точка, в которую смотрит игрок) теперь лежат в atX, atY, atZ
//Твой код
}
else //Луч ни с чем не столкнулся, возможно игрок смотрит в небо или что-то подобное
{
//Твой код
}