Как спрятать 2-х игроков вместе?

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
27
Реакции
1
Привет,
Как я могу заставить людей X и Y не видеть друг друга и видеть друг друга, подключив их к запросу?
Это как сделать игроков невидимыми, но только 2 игрока не смогут видеть друг друга.
Если это можно сделать с помощью Reapi, я был бы признателен, если бы вы могли это показать.
Заранее спасибо.
 
Сообщения
27
Реакции
1
I don't know your language, sorry if I did something wrong.
I want the 2 people I specified not to see each other, how can I do this?
 
Сообщения
1,304
Реакции
2,303
Помог
57 раз(а)
BesTCore, самый неконфликтный вариант, по идее, это FM_AddToFullPack. Если нужно только скрыть модель из видимости.
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
интересно, а если игроку задать для var_owner айди другого игрока и флажок овнер визибилити, будет ли это работать ?
 
Сообщения
1,304
Реакции
2,303
Помог
57 раз(а)
Сообщения
27
Реакции
1
BlackSignature, Is it okay if I do this so that the entire terrorist team does not see the player?

Код:
set_entvar(pPlayer, var_owner, TeamName:TEAM_TERRORIST)
set_entvar(pPlayer, var_effects, get_entvar(pPlayer, var_effects) | EF_OWNER_NO_VISIBILITY)
I want to make it so that multiple players cannot see it. For example; 3 players (x, y, z) cannot see 1 player (Other)

Or should I do it this way?
Код:
set_entvar(pPlayer, var_owner, get_entvar(pPlayer, var_owner) + pOther)
set_entvar(pPlayer, var_effects, get_entvar(pPlayer, var_effects) | EF_OWNER_NO_VISIBILITY)
 
Последнее редактирование:
Сообщения
1,304
Реакции
2,303
Помог
57 раз(а)
BesTCore, нет, так сделать не получится.

Сделайте на FM_AddToFullPack. Для оптимизации можно состояние игрока (команду) кешировать, и возможно выключать хук, когда он не нужен.

Пример
Код:
#include <amxmodx>
#include <fakemeta>

new bool:g_bHide[MAX_PLAYERS + 1]
new g_iTeamChar[MAX_PLAYERS + 1] = { 'U', ... }

public plugin_init() {
    register_forward(FM_AddToFullPack, "OnAddToFullPack_Post", true)
    register_event("TeamInfo", "event_TeamInfo", "a")

    register_clcmd("say /hide", "clcmd_Hide")
}

public clcmd_Hide(pPlayer) {
    g_bHide[pPlayer] = !g_bHide[pPlayer] // toggle teammates hiding
    return PLUGIN_HANDLED
}

public OnAddToFullPack_Post(es, e, ent, host, flags, player, pSet) {
    if(g_bHide[host] && player && g_iTeamChar[host] == g_iTeamChar[ent] && host != ent) {
        set_es(es, ES_Effects, EF_NODRAW)
    }
}

public event_TeamInfo() {
    new pPlayer = read_data(1)
    new szNewTeam[2]; read_data(2, szNewTeam, charsmax(szNewTeam))
    g_iTeamChar[pPlayer] = szNewTeam[0]
}
 

Вложения

  • 812 байт Просмотры: 0
  • Нравится
Реакции: Ayk
Сообщения
27
Реакции
1
BesTCore, нет, так сделать не получится.

Сделайте на FM_AddToFullPack. Для оптимизации можно состояние игрока (команду) кешировать, и возможно выключать хук, когда он не нужен.

Пример
Код:
#include <amxmodx>
#include <fakemeta>

new bool:g_bHide[MAX_PLAYERS + 1]
new g_iTeamChar[MAX_PLAYERS + 1] = { 'U', ... }

public plugin_init() {
    register_forward(FM_AddToFullPack, "OnAddToFullPack_Post", true)
    register_event("TeamInfo", "event_TeamInfo", "a")

    register_clcmd("say /hide", "clcmd_Hide")
}

public clcmd_Hide(pPlayer) {
    g_bHide[pPlayer] = !g_bHide[pPlayer] // toggle teammates hiding
    return PLUGIN_HANDLED
}

public OnAddToFullPack_Post(es, e, ent, host, flags, player, pSet) {
    if(g_bHide[host] && player && g_iTeamChar[host] == g_iTeamChar[ent] && host != ent) {
        set_es(es, ES_Effects, EF_NODRAW)
    }
}

public event_TeamInfo() {
    new pPlayer = read_data(1)
    new szNewTeam[2]; read_data(2, szNewTeam, charsmax(szNewTeam))
    g_iTeamChar[pPlayer] = szNewTeam[0]
}
Does the command "g_iTeamChar[host] != g_iTeamChar[ent]" mean it is valid if the query sets are equal? Do I need to use "g_iTeamChar[host] != g_iTeamChar[ent]" to hide the opposing team's players and not their teammates?
 
Статус
В этой теме нельзя размещать новые ответы.

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

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