PDA

Просмотр полной версии : [Вопрос] Работа с mxINI



whale
10.01.2017, 00:21
Здравствуйте, уважаемые пользователи и модераторы/администраторы портала.
Очень прошу вашей помощи. Решил написать систему /offmembers (участники организации оффлайн). Мод на mxINI - столкнулся с проблемой.
Была идея создать в scriptfiles папку (к примеру: fracmembers) и в ней создать файлы с числом, которое соответствует ID той или иной фракции. И уже в этот файл записывать NickName + ранг игрока во время приёма во фракцию. Да и немного не улавливаю суть, как это реализовать + опять же, очень геморно будет изменять данные даже при изменении ранга игрока. Есть какие-либо более простые варианты? (Кроме как переводить мод на MySQL).

Была так же идея создать enum:

enum pFrac
{
pName[MAX_PLAYER_NAME],
pRank
}
new Fraction[MAX_PLAYERS][pFrac];
После чего создавать файл с NickName игрока всё в той же директории и хранить в нём числовое значение ранга. Но, опять же, открывать все файлы и получать из них значения?
В общем, думаю, что суть понятна.
P.S В pawn-программировании я довольно слаб, так что действительно очень интересует данный вопрос.
P.S.S Буду очень благодарен за помощь.

DeimoS
10.01.2017, 01:53
Создавай для каждой фракции свой файл и в нём храни информацию о каждом участнике по типу

Ник_Игрока - Ранг | Статус (онлайн/оффлайн)
При входе на сервер смотри в какой фракции находится игрок, открывай её файл и изменяй значение статуса. То же самое при выходе.
При принятии во фракцию записывай новый ник в файл.
При увольнении - удаляй.

Blood
10.01.2017, 11:30
Создавай для каждой фракции свой файл и в нём храни информацию о каждом участнике по типу

Ник_Игрока - Ранг | Статус (онлайн/оффлайн)
При входе на сервер смотри в какой фракции находится игрок, открывай её файл и изменяй значение статуса. То же самое при выходе.
При принятии во фракцию записывай новый ник в файл.
При увольнении - удаляй.

Я когда-то делал так:(Например для фракции SAPD.ini)

Member_1 = Name_Name
Member_2 = Name_Name
Member_3 = None
...
Member_100 = Name_Name

Потом через цикл подберем значение из Member_%i если None, то пропускаем , если нет , то открываем файл с этим никнеймом и берем любые данные из этого файла или если не хотите открывать файл с никнеймом , То через ReturnUser+IsPlayerConnected можно узнать онлайн/оффлайн ли игрок .

$continue$
10.01.2017, 11:31
Вообще в чем профит ещё хранить аккаунты не в БД?
Чтобы потом изобретать овер костылей?

qwezert
10.01.2017, 12:05
Совет Деймоса действительно хорош, но - тебе проще будет переехать на mysql чем вечно заниматся такой ерундой. Уметь конечно работать с файлами нужно, так как это действительно полезно, но не аккаунты игрока хранить там. По mysql есть отличные гайды по которым ты научишься делать то же самое - но в 10 раз быстрее)

DeimoS
10.01.2017, 14:55
Я когда-то делал так:(Например для фракции SAPD.ini)

Member_1 = Name_Name
Member_2 = Name_Name
Member_3 = None
...
Member_100 = Name_Name

Потом через цикл подберем значение из Member_%i если None, то пропускаем , если нет , то открываем файл с этим никнеймом и берем любые данные из этого файла или если не хотите открывать файл с никнеймом , То через ReturnUser+IsPlayerConnected можно узнать онлайн/оффлайн ли игрок .

Такой подход ограничен по числу игроков, что вряд ли можно назвать чем-то хорошим.
У mxINI вся работа с данными идёт по ключу, так что если использовать именно ник в качестве ключа, компактность кода возрастёт в разы, что будет лишь плюсом