AMXX / REAPI как сделать игрока невидимым для другого игрока

Сообщения
1,104
Реакции
319
Как сделать игрока невидимым только для определенного игрока.

Только через fullpack ? Может кто пример написать?
 
Сообщения
1,104
Реакции
319
Nordic Warrior, первая ссылка там ничего нет по этому поводу вообще, а вторая ссылка там тоже не написано как сделать игрока невидимым для другого)
 
Сообщения
1,104
Реакции
319
Нашел что-то тут BLOG "Моё хобби" или "как я трачу свободное время" , примерно понял но только не понял кто такой host и кто такой ent
4 Июл 2021
Ну вот пример кода FULLPACK который я еще не протестировал

C++:
public AddToFullPack_Pre(es_handle, e, ent, host, hostflags, bool: player, pSet) {
    if(!player || host > MAX_PLAYERS || ent > MAX_PLAYERS || GOD_SEEKER_DISABLE_VISIBILITY[host] != 4 || !GOD_SEEKER_BAD_USERS[ent] )
        return;
    
    set_es(es_handle, ES_RenderAmt, 1);
    set_es(es_handle, ES_RenderFx, kRenderFxNone);
    set_es(es_handle, ES_RenderMode, kRenderTransAlpha);
}
host это игрок который невидимый а ent игрок которому отправляется информация ?


будет работать? :)
 
Сообщения
78
Реакции
65
karaulov,
AddToFullPack Return 1 if the entity state has been filled in for the ent and the entity will be propagated to the client, 0 otherwise state is the server maintained copy of the state info that is transmitted to the client a MOD could alter values copied into state to send the "host" a different look for a particular entity update, etc. e and ent are the entity that is being added to the update, if 1 is returned host is the player's edict of the player whom we are sending the update to player is 1 if the ent/e is a player and 0 otherwise pSet is either the PAS or PVS that we previous set up. We can use it to ask the engine to filter the entity against the PAS or PVS. we could also use the pas/ pvs that we set in SetupVisibility, if we wanted to. Caching the value is valid in that case, but still only for the current frame
источник
А пример можешь посмотреть в плагинах которые реализуют invis меню (когда для повышения фпс можно скрыть всех игроков).
Вот пример из моего плагина
Код:
public FM_client_AddToFullPack_Post(es, e, ent, host, hostflags, player, pSet)
{
    if( player )
    {
        if(gViewInvisible[host])
        {
            set_es(es, ES_RenderMode, kRenderTransTexture)
            set_es(es, ES_RenderAmt, 0)
            set_es(es, ES_Origin, { 999999999.0, 999999999.0, 999999999.0 } )
        }
    }
    else if( gWaterInvisible[host] && gWaterEntity[ent] )
    {
        set_es(es, ES_Effects, get_es( es, ES_Effects ) | EF_NODRAW )
    }
  
    return FMRES_IGNORED
}
 
Сообщения
1,104
Реакции
319
Lopol2010,

первая часть не только делает модель прозрачной а и еще перемещает в кудато далеко далеко?)))

А вторая часть кода просто делает модель невидимой?

ну я уже вроде бы разобрался как это работает) кажись в плагине работает как надо.
 
Сообщения
1,104
Реакции
319
ну в моем случае наоборот надо что бы игрок на месте был) ну ладно спасибо уже нашел вариант решения в другой теме)
 

Garey

ninjaCow
Сообщения
411
Реакции
1,051
Помог
10 раз(а)
karaulov, не посылай в fullpack вообще игрока и всё
Код:
forward_return(FMV_CELL,0)
return FMRES_SUPERCEDE
Хук пре очевидно
 
Сообщения
1,104
Реакции
319
Garey, ну мне надо что бы он был там) в том то и дело, если его не будет то его с читом никто не увидит же )

Код:
register_forward(FM_AddToFullPack, "AddToFullPack_Pre", ._post = true);
...
public AddToFullPack_Pre(es_handle, e, ent, host, hostflags, bool: player, pSet) {
    if(!player || host > MAX_PLAYERS || ent > MAX_PLAYERS || GOD_SEEKER_DISABLE_VISIBILITY[ent] != 4 || !GOD_SEEKER_BAD_USERS[host] )
        return;
   
    set_es(es_handle, ES_RenderAmt, 0);
    set_es(es_handle, ES_RenderFx, kRenderFxNone);
    set_es(es_handle, ES_RenderMode, kRenderTransAlpha);
}
А имеет значение в PRE или в POST редактировать данные?
 

Garey

ninjaCow
Сообщения
411
Реакции
1,051
Помог
10 раз(а)
karaulov, тогда в пост надо если хочешь передать данные после добавления энитити в лист для отправки.
register_forward(FM_AddToFullPack, "AddToFullPack_Pre", ._post = true);
найс нейминг
 
Сообщения
1,104
Реакции
319
Garey, да скопипастил чужой код незаметно но переименовать забыл)
 

Garey

ninjaCow
Сообщения
411
Реакции
1,051
Помог
10 раз(а)
karaulov, проверка на host > MAX_PLAYERS || ent > MAX_PLAYERS - лишняя host всегда будет игроком (мы не посылаем инфу о энтитях - энтитям оО). И если player == true то ent это игрок.
 
Сообщения
1,104
Реакции
319
Garey, ну перестраховался на всякий) ну да чем меньше ненужных проверок тем лучше)
4 Июл 2021
Это я делал костыль для прозрачной модели, ведь у тех кто использует cl_minmodels надо было тоже сделать игрока прозрачным, хотя бы как-то)
 
Сообщения
3,256
Реакции
1,436
Помог
121 раз(а)
karaulov, как cl_minmodels влияет на прозрачность?
 
Сообщения
1,104
Реакции
319
Nordic Warrior, ну я же сделал прозрачную модель как один из видов невидимости в плагине, а у тех кто с cl_minmodels - модель обычная а не прозрачная((( пришлось придумать костыль)
 

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

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