Сообщение от
vovandolg
А что он будет за числа возвращать в такой проверке, ID игроков? прежнею цифру 1?
Всё просто же:
PHP код:
return 0 <= playerid < MAX_PLAYERS && IsPlayerConnected(playerid);
Тут возвращается результат условия. Условия возвращают либо истину (1), либо ложь (0).
Так как стоит оператор "&&", учитываются результаты обоих условий, то бишь, например, если представить, что возврат имеет такой вид:
PHP код:
return 0 <= playerid < 10 && IsPlayerConnected(playerid);
То:
- Если в функцию попадёт значение 15 (и такой игрок будет на сервере), условие 0 <= playerid < 10 вернёт 0 (ибо 15 больше 10), но IsPlayerConnected вернёт 1. Но так как в условии имеется оператор "&&", срабатывает компьютерная логика, при которой, если хоть один из аргументов возвращает "ложь" (0/false), то возвращается "ложь".
(для оператора "||" (или) это, например, звучит так: если хоть один из аргументов возвращает "истина" (1/true), то возвращается "истина". То бишь, совершенно противоположная логика. Это, кстати, должны на информатике в школе рассказывать) - Если в функцию попадёт значение 5 (но такого игрока не будет на сервере), условие 0 <= playerid < 10 вернёт 1, но функция IsPlayerConnected вернёт 0, из-за чего результат опять будет равен 0.
- Если же в функцию попадёт значение, например, 3 (и такой игрок будет на сервере), и условие 0 <= playerid < 10, и функция IsPlayerConnected вернут 1, из-за чего результат уже будет равен 1.
В этой строке (return ...) нет ничего сверхсложного. Это, фактически, то же самое, что и:
PHP код:
if((0 <= playerid < MAX_PLAYERS && IsPlayerConnected(playerid)) == true) return 1;
else return 0;
Просто записано в более компактном виде.