Библиотека Dini создана для сохранения данных в файл.
Скачать последнюю версию Dini.inc v. 1.4.1 можно тут
Но для работы с Dini нужно скачать библиотеку DUtils. Скачать последнюю версию DUtils.inc v. 1.7 можно тут
Так же для более удобной работы с dini.inc рекомендую скачать a-dini
Все эти три файла нужно поместить в директорию: */samp-server/pawno/includes
И в своем скрипте добавить две строчки:
#include <Dini>
#include <DUtils>
Основные функции Dini.inc
dini_Exists
Параметры:
(filename[])
filename[] - имя файла для проверки
Если файл не существует, то команда возвращается
Пример:
dini_Exists("logs.txt");
--------------------------------------------------------------------------------------------------
dini_Remove
Эта команда удаляет файл с определенным именем
Параметры:
(filename[])
filename[] - имя файла, которые будет удален
Пример:
dini_Remove("logs.txt");
--------------------------------------------------------------------------------------------------
dini_Create
Эта команда создает файл с определенным названием
Параметры:
(filename[])
filename[] - имя файла, который будет создан
Пример:
dini_Create("logs.txt");
--------------------------------------------------------------------------------------------------
dini_Set
Записывает в определенный файл текст в строчку с определенным названием.
Параметры:
(filename[],key[],value[])
filename[] - имя файла, который будет открыт
key[] - обозначение сохраняемых данных
value[] - сохраняемые данные (текст)
Пример:
dini_Set("logs.txt","Servername","A SA:MP Server");
--------------------------------------------------------------------------------------------------
dini_IntSet
Записывает в определенный файл число в строчку с определенным названием.
Параметры:
(filename[],key[],value)
filename[] - имя файла, который будет открыт
key[] - обозначение сохраняемых данных
value - сохраняемые данные (число)
Пример:
dini_Set("logs.txt","Servermaxplayers",50);
--------------------------------------------------------------------------------------------------
dini_BoolSet
Устанавливает "истина" (true) или "ложь" (false) в файл с определенным именем и в строчку с определенным названием.
Параметры:
(filename[],key[],value)
filename[] - файл, который будет открыт
key[] - обозначение сохраняемых данных
value - Установить для результатов "истина" (true) или "ложь" (false).
Пример:
dini_BoolSet("logs.txt","Serveractive",true);
--------------------------------------------------------------------------------------------------
dini_FloatSet
Записывает в файл переменную величину
Параметры:
(filename[],key[],Float:value)
filename[] - файл, который будет открыт
key[] - обозначение сохраняемых данных
Float:value - переменная величина
Пример:
dini_FloatSet("logs.txt","PlayerposX",50.124);
--------------------------------------------------------------------------------------------------
dini_Isset
Проверяет установлено ли обозначение строки или нет
Параметры:
(filename[],key[])
filename[] - файл, в который будет задействован
key[] - обозначение строки
Пример:
dini_Isset("logs.txt","money");
--------------------------------------------------------------------------------------------------
dini_Get
Берет значение из определенного файла и строки.
Параметры:
(filename[],key[])
filename[] - файл, в который будет задействован
key[] - обозначение строки, из которой мы берем значение
Пример:
dini_Get("spawn.txt","money");
--------------------------------------------------------------------------------------------------
dini_Unset
Удаляет значение из определенного файла и строки.
Параметры:
(filename[],key[])
filename[] - файл, который будет задействован
key[] - обозначение строки, в которой вы удаляем значение
Пример:
dini_Unset("properties.txt","owner");
--------------------------------------------------------------------------------------------------
Float:dini_Float
Берет переменную из определенного файла и определенной строки
Параметры:
(filename[],key[])
filename[] - файл, который будет задействован
key[] - обозначение строки, в которой проверяем переменную
Пример:
dini_Float("logs.txt","height");
--------------------------------------------------------------------------------------------------
dini_Int
Берет число из определенного файла и определенной строки
Параметры:
(filename[],key[])
filename[] - файл, который будет задействован
key[] - обозначение строки, в которой проверяем число
Пример:
dini_Int("logs.txt","maxplayers");
--------------------------------------------------------------------------------------------------
dini_Bool
Берет "истину" (true) или "ложь" (false) из определенного файла и определенной строки
Параметры:
(filename[],key[])
filename[] - файл, который будет задействован
key[] - обозначение строки, в которой проверяем "истина" (true) или "ложь" (false)
Пример:
dini_Bool("acertainfile.txt","maxplayers");
===========================================================
Все эти команды можно использовать в любых функциях.
Вот например:
new PlayerCount; public OnPlayerConnect(playerid) { SendClientMessage(playerid, 0x00FF00AA, "Wellcome!"); PlayerCount++; if (!dini_Exists("OnlinePlayers.txt")) { dini_Create("OnlinePlayers.txt"); return 1; } else { printf("Server: There are %d players", PlayerCount); dini_IntSet("OnlinePlayers.txt","Players",PlayerCount); return 1; } return 0; }
При заходе игрока в консоли сервера будет писаться количество онлайн игроков, и количество онлайн игроков будет записываеть в файл OnlinePlayers.txt Естественно можно добавить запись даты, ников игроков, их ID итд.
Да кстати если будете использовать этот код, то добавьте еще:
public OnPlayerDisconnect(playerid) { PlayerCount--; if (!dini_Exists("OnlinePlayers.txt")) { dini_Create("OnlinePlayers.txt"); return 1; } else { printf("Server: There are %d players", PlayerCount); dini_IntSet("OnlinePlayers.txt","Players",PlayerCount); return 1; } return 0; }
Удачи!