stock fm_is_ent_visible(ent)

iPlague

♿️
Сообщения
230
Реакции
130
Помог
2 раз(а)
Добрый день, есть ли аналог fm_is_ent_visible(ent) в reapi? Может я искать не умею :(
C#:
stock bool:fm_is_ent_visible(index, entity, ignoremonsters = 0){
    new Float:start[3], Float:dest[3];
    pev(index, pev_origin, start);
    pev(index, pev_view_ofs, dest);
    xs_vec_add(start, dest, start);
    pev(entity, pev_origin, dest);
    engfunc(EngFunc_TraceLine, start, dest, ignoremonsters, index, 0);
    new Float:fraction;
    get_tr2(0, TR_flFraction, fraction);
    if (fraction == 1.0 || get_tr2(0, TR_pHit) == entity)
        return true;
    return false;
}

И второй вопрос, что делает натив get_viewent(index)
Я правда не понимаю описание. Возвращает индекс энтити которую видит клиент?
C#:
/*
* Gets the return index of the current view entity on a client.
* @param index       Client index
* native get_viewent(const index);
*/
cell AMX_NATIVE_CALL amx_get_viewent(AMX *amx, cell *params)
{
    enum args_e { arg_count, arg_index };
    CHECK_ISPLAYER(arg_index);
    client_t *pClient = clientOfIndex(params[arg_index]);
    if (unlikely(pClient == nullptr || !(pClient->active | pClient->spawned | pClient->connected)))
    {
        AMXX_LogError(amx, AMX_ERR_NATIVE, "%s: player %i is not connected", __FUNCTION__, params[arg_index]);
        return FALSE;
    }
    return indexOfEdictAmx(pClient->pViewEntity);
}

PS пожалуйста, не надо ругать меня за то что занимаюсь "псевдооптимизацией" переводя все функции в reapi, просто пытаюсь разобраться для себя.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу