Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

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

  • Страница 1 из 1
  • 1
Как правильно если игрок жив + в игре+ не бот
Karandachik Дата: Пятница, 01.12.2023, 22:36:16 | Сообщение # 1
Сообщений: 60
Репутация: 3 [ +/- ]
Ребят, немного запуталась в проверках.
Как правильно написать их и выполнить именно согласно результату проверки.
Мне нужно написать игрокам текстовое сообщение в чате, но только тем кто мертв или тем кто в спеке сидит.

Код

if (IsClientInGame(client) && !IsFakeClient(client))
{
if (GetClientTeam(client) == 1 || !IsPlayerAlive(client))
{
тут сообщение;
}
}
 
_wS_ Дата: Суббота, 02.12.2023, 19:42:25 | Сообщение # 2
Нормальные проверки, но можно чуть упростить:

Код
if (IsClientInGame(client) && !IsFakeClient(client) && !IsPlayerAlive(client))
{
    PrintToChat(client, "msg");
}


Это ж всё легко тестируется.
 
7pElllHuK Дата: Пятница, 12.01.2024, 15:49:28 | Сообщение # 3
Сообщений: 1
Репутация: 0 [ +/- ]
if (IsClientInGame(iClient) && !IsFakeClient(iClient) && !IsPlayerAlive(iClient) || IsClientObserver(iClient))
{
PrintToChat(iClient, "Сообщение")
}

IsClientInGame(iClient) - Игрок на сервере
!IsFakeClient(iClient) - Это игрок, а не бот
!IsPlayerAlive(iClient) - Игрок мертв
|| - Логическое ИЛИ
IsClientObserver(iClient) - Игрок в спекторах
 
_wS_ Дата: Пятница, 12.01.2024, 16:52:15 | Сообщение # 4
7pElllHuK, не нужно грешить и учить неправильно.

Код
bool b = 0 && 0 && 0 || 1; // true

// Равносильно:
bool b = (0 && 0 && 0) || 1; // true


Будет вызывать ошибку: "Client %d is not in game". В таких случаях, когда есть несколько условий, просто так || не пишут, а в скобки его оборачивают. Наверно, имелось в виду: 0 && 0 && (0 || 1), но это предполагает, что наблюдатель может быть живым, но такое, вроде, невозможно.
 
  • Страница 1 из 1
  • 1
Поиск: