for _, p in ipairs(players.list{ alive = true, team = "CT" }) do p:chat("живой контр")end-- люди, не боты, с «kot» в никеfor _, p in ipairs(players.list{ bot = false, name = "kot" }) do print(p:name())end
alive и team читают живое CS-состояние и требуют ReGameDLL.
bot, hltv и name работают и на ванильном mp.dll.
Без любого фильтра метод работает везде.
Права и группы (p:can, p:group) живут в core-слое, не в native.
Их удобнее дописать в Lua:
for _, p in ipairs(players.list{ alive = true }) do if p:can("admin.slay") and not p:group("vip") then -- ... endend
Понимает те же методы отправки, что и обычный игрок:
chat, console, center,
hud, dhud, play_sound.play_sound тут — один EMIT_SOUND от первого подключённого игрока, а не
цикл по всем: EMIT_SOUND и так слышен всем, у кого PAS накрывает точку
излучения, повторять его на каждого — значит дать части слушателей услышать
один и тот же клип по два-три раза подряд.
Состояния у него нет: players.broadcast:alive() бросает ошибку
с объяснением. Для чтения и записи состояния перебирай
players.list().