Ошибка заключалась в том, что вы используете оператор sizeof для аргумента функции.
Можно было сделать так:
PHP код:
stock Log(const filename[], const message[128])
{
static const fmt_str[] = "\r\n[%02d/%02d/%02d %02d:%02d:%02d] %s";
new File:filehandle,
string[sizeof fmt_str + (-4 * 6) + (-2 + sizeof message)],
year,
month,
day,
hour,
minute,
second;
if(!(filehandle = fopen(filename, io_append)))
return -1;
getdate(year, month, day);
gettime(hour, minute, second);
format(string, sizeof(string), fmt_str,
year, month, day, hour, minute, second, message);
for(new idx = 0, length = strlen(string); idx < length; idx++)
fputchar(filehandle, string[idx], false);
return fclose(filehandle);
}
Но если вам непринципиален размер строки, т.е. нет никаких ограничений, то можно сделать так:
PHP код:
stock Log(const filename[], const message[], size = sizeof message)
{
static const fmt_str[] = "\r\n[%02d/%02d/%02d %02d:%02d:%02d] %s";
new File:filehandle,
string[sizeof fmt_str + (-4 * 6) + (-2 + size)],
year,
month,
day,
hour,
minute,
second;
if(!(filehandle = fopen(filename, io_append)))
return -1;
getdate(year, month, day);
gettime(hour, minute, second);
format(string, sizeof(string), fmt_str,
year, month, day, hour, minute, second, message);
for(new idx = 0, length = strlen(string); idx < length; idx++)
fputchar(filehandle, string[idx], false);
return fclose(filehandle);
}