Сообщение от
Daniel_Cortez
В OnPlayerConnect вы открываете файл, а кто его закрывать будет? Потому-то в команде этот файл и не создаётся.
Да и зачем открывать файл в OnPlayerConnect, когда нужно всего лишь проверить его существование? Это можно сделать с помощью
fexist, без всяких там mxINI.
P.S.: Идея с использованием числа вместо пароля (или 0, если введено не число) гениальна.
Я новичок в павно, насчет численности пароля знаю. =D
Я изменил OnPlayerConnect:
PHP код:
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR_RED, "Добро пожаловать на Box Play | Red");
SetPlayerColor(playerid, COLOR_WHITE);
new name[MAX_PLAYER_NAME];
new file[24];
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"players/%s.ini",name);
if(fexist(file)){
SendClientMessage(playerid, COLOR_RED, "Вы уже зарегестрированы. Введите /login [пароль]");
reg[playerid] = 1;
}else{
SendClientMessage(playerid, COLOR_RED, "Зарегестрируйтесь, введя команду /register [пароль]");
reg[playerid] = 0;
}
return 1;
}
Ничего не изменилось.
- - - Добавлено - - -
здесь что то не так с этим:
PHP код:
CMD:register(playerid, params[]) // регистрация
{
if(reg[playerid] == 0){
new acc [128];
new password[64];
new name[MAX_PLAYER_NAME];
sscanf(params,"d",password);
GetPlayerName(playerid, name, sizeof(name));
format(acc,sizeof(acc),"players/%s.ini",name);
new iniFile = ini_createFile(acc);
if(iniFile < 0) ini_openFile(acc);
{
ini_setString(iniFile, "Password", password);
ini_closeFile(iniFile);
}
reg[playerid] = 2;
OnPlayerSpawn(playerid);
SendClientMessage(playerid, COLOR_RED, "hi");
}else{
return 1;
}
return 1;
}