Доброго времени суток!
Подскажите, пожалуйста, решение проблемки, для вас должно быть просто.
Итак, обычно действие над всеми игроками выполняют по такой схеме:
Код:
new iPlayers[32], iPlayerNum
get_players(iPlayers, iPlayerNum, "h") // допустим, без HLTV - не важно
for (new i = 0; i < iPlayerNum; i++)
{
...
// Какие-то действия и вот это, к примеру:
user_kill(iPlayers[i])
}
Но почему-то некоторых единичных игроков этот код не убивает, ровно как и не производятся другие прописанные в цикле действия над ними... Эксперементировать с ботами невозможно (на них всё работает), а реальные игроки постоянные рестарты сервера долго терпеть не станут, поэтому для достижения своей цели я решил не тормозить и двигаться дальше. Не задумываясь, на быструю руку подправил код, втупую отказавшись от get_players():
Код:
for (new i = 0; i < 32; i++)
{
...
user_kill(i)
}
Ура! Всё заработало, никакие игроки не пропускались, все сдохли без исключений.
Тут я понял, что скорее всего задал i от 0 до 31 (включительно) неправильно... Ведь если максимум игроков - 32, а 0 - это id самого сервера (или id всех, кто как трактует), то реальные id игроков, должно быть, лежат в диапазоне [1, 32], это верно? Правильно ли будет в моём конкретном случае писать for (new i = 1; i < 33; i++), если хочу всех потенциальных игроков перебрать?
Но больше меня интересует почему же не все игроки поддаются моим командам, если я получаю их id в массив с помощью get_players() и дальше циклом обращаюсь ко всем из этого списка. В том, что выжившие после моей команды игроки были живы и активны в момент вызова, я уверен (своими глазами видел, несколько раз перепроверял

).
Были ли у вас подобные недоразумения со списком id и get_players? В чём может быть проблема?
Наблюдаю явление не впервые, именно поэтому не считаю случайностью. Кроме того, мне удавалось убивать и выполнять другие нужные мне действия на злополучном непослушном игроке, который не хочет умирать вместе со всеми, когда я вручную исполнял на нём этот самый код (но другой командой, получив его id по нику). Именно по этим причинам создаётся впечатление, что get_players() некоторых игроков забывает и не добавляет их id в массив.