Nie ma co się bać o to is_user_connected. Warto w jakiś eventach itd, tam gdzie przez "przypadek" może się wykonać na niepołączonych graczach. Jeśli Cię bardzo boli optymalizacja to możesz stworzyć zmienną i to ją sprawdzać, zamiast natywu.
new gbConnected[33];
public client_connect(id)
gbConnected[id] = true;
public client_disconnect(id)
gbConnected[id] = false;
Ogólnie unikać niepotrzebnie w prethinku sprawdzania tego, a tak to możesz wrzucać gdziekolwiek chcesz. Lepiej wrzucić, niż potem mieć crashe, albo inne dziwne problemy bez powodu.
Co do LoadFileForMe
to &length: "Variable to store the file length. This may return a number larger than the buffer size".
Jest to zmienna referencyjna, czyli do niej zostanie zwrócona długość pliku. Po prostu tworzysz nową zmienną.
new iReturn;
LoadFileForMe(..., ..., ..., iReturn);
Do iReturn zostanie zwrócona owa długość i nic poza tym. Nie ma to żadnego wpływu na działanie funkcji.