Нам нужно вручную создать новый файл в папке scriptfiles. Создадим файл Nicks.txt. Дальше переходим к написанию скрипта, создаем переменную для хранения имени игрока и дальше открываем файл, как это показано в скрипте ниже:
new plname[24];
File:nFile = fopen(“Nicks.txt”,io_append); //Открывает файл для добавления в него записи
nFile – это как идентификатор файла, название его может быть любое, я выбрал nFile. fopen – открывает файл. io_append – это метод открытия файла, все методы приведены в таблице ниже: io_write Записывает в файл, очищает весь ранее записанный текст io_read Читает файл, файл должен существовать или крах сервера io_append Добавление в файл записи io_readwrite Читает файл или создает новый
Давайте сделаем так, чтобы при подключении игрока, его имя записывалось в файл.
public OnPlayerConnect(playerid)
{
new plname[24];
GetPlayerName(playerid,plname,MAX_PLAYER_NAME); //Получаем имя и записываем в plname
File:nFile = fopen(“Nicks.txt”,io_append); //Открывает файл для добавления в него записи
fwrite(nFile, plname); //Записываем имя игрока в файл
fclose(nFile); //Закрываем файл
}
Но у скрипта есть большой недостаток, он записывает имена в строчку, что весьма неудобно.
Давайте сделаем так, чтобы имена игроков были в столбик.
Для этого мы создадим переменную для хранения отформатированной строки (string).
public OnPlayerConnect(playerid)
{
new plname[24], string[24];
GetPlayerName(playerid,plname,MAX_PLAYER_NAME);
format(string,sizeof(string),”%s\r\n”,plname);
File:nFile = fopen(“Nicks.txt”,io_append); //Открывает файл для добавления в него записи
fwrite(nFile, string); //Записываем имя игрока в файл
fclose(nFile); //Закрываем файл
}
\n – начинает новую строку \r – убеждается, что строка начинается сначала, а не где-нибудь посередине.
После записи в файл, его обязательно нужно закрывать.