24.08.2014, 20:32
Вчера обнаружил баг IsPlayerConnected. Если указать число больше 65535, то из-за типа данных оно будет идти по кругу, т.е. 65536 > 0, 65537 > 1 и т.д. (то же самое можно проделать со значениями, которые меньше 0). Функция вернет 1, а в вашем скрипте произойдет обращение к несуществующей ячейке.
pawn Code:
Fix_IsPlayerConnected(playerid) return (0 <= playerid <= 65535) ? (IsPlayerConnected(playerid)) : (0);
#define IsPlayerConnected(%0) Fix_IsPlayerConnected(%0)