23.01.2012, 16:25
Сам делаю мод, но возникла проблема, решить сам не могу:
Игроки при автризации если:
1) Неверно вводят пароль
2) Жмут Esc
3) Жмут Enter
У них на какоето время (2-4 сек) пропадает окошко для ввода пароля, тоесть тишина (респауна и выбора персонажа - не происходит)
потом вылазиет окошко что надо всётаки ввести пароль.
Но когда игрок вводит верный пароль, то у него всё по нулям, кроме пароля.
Обнуление происходит именно после выполнения выше указанных действий.
ID диалогов в порядке вроде.
Плиз помогите!
Авторизация:
Игроки при автризации если:
1) Неверно вводят пароль
2) Жмут Esc
3) Жмут Enter
У них на какоето время (2-4 сек) пропадает окошко для ввода пароля, тоесть тишина (респауна и выбора персонажа - не происходит)
потом вылазиет окошко что надо всётаки ввести пароль.
Но когда игрок вводит верный пароль, то у него всё по нулям, кроме пароля.
Обнуление происходит именно после выполнения выше указанных действий.
ID диалогов в порядке вроде.
Плиз помогите!
Авторизация:
PHP код:
if(dialogid == 2)
{
if(response) // проверка на кнопку "ОК" и Enter
{
if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "{FFFFFF}Авторизация", "ПАРОЛЬ:::", "Войти", "");
new PlayerName[MAX_PLAYER_NAME], password[64];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
new account[128];
format(account,sizeof(account),"Users/%s.ini",PlayerName);
if(IsPlayerNPC(playerid))return 1;
new iniFile = ini_openFile(account);
ini_getString(iniFile, "Пароль",password); // Узнаём пароль аккаунта.
if(strcmp(inputtext, password, true) == 0)
{
ini_getInteger(iniFile, "Money", Player[playerid][pMoney]); // Запишем кол-во денег в переменную.
ini_getInteger(iniFile, "Skin", Player[playerid][pSkin]); // Запишем кол-во денег в переменную.
ini_getFloat(iniFile, "Heal", Player[playerid][pHeal]); // Запишем кол-во жизней в переменную.
ini_getInteger(iniFile, "Admin", Player[playerid][pAdminPlayer]); // Запишем кол-во денег в переменную.
ini_getInteger(iniFile,"Score",Player[playerid][pScore]);
ini_getInteger(iniFile,"Banned",Player[playerid][pBanned]);
ini_getFloat(iniFile, "Pos_x", Player[playerid][pPos_x]); // Запишем кол-во денег в переменную.
ini_getFloat(iniFile, "Pos_y", Player[playerid][pPos_y]); // Запишем кол-во денег в переменную.
ini_getFloat(iniFile, "Pos_z", Player[playerid][pPos_z]);
ini_closeFile(iniFile);
if(Player[playerid][pBanned] == 1)
{
SendClientMessage(playerid, -1, "Ты забанен на нашем сервере! За разбаном в скайп к глав.админу [getto_skype]");
Kick(playerid);
return 1;
}
SendClientMessage(playerid, COLOR_YELLOW,"{00FF04}Вы были успешно залогинены");
SetPlayerScore(playerid, Player[playerid][pScore]);//Выдаем SCORE
SetPlayerHealth(playerid, Player[playerid][pHeal]); //Теперь выдадим игроку хп
SetPlayerSkin(playerid, Player[playerid][pSkin]); //А! Ну и скин...
GivePlayerMoney(playerid, Player[playerid][pMoney]); //И денег
SetSpawnInfo(playerid,0,0,1958.33,1343.12,15.36,269.15,0,0,0,0,0,0);
SpawnPlayer(playerid);
logged[playerid] = 1;
TogglePlayerSpectating(playerid, false);
return 1;
}
else
{
logged[playerid] = 0;
SendClientMessage(playerid, 0xFFFFFFFF, "Неверный пароль!Если вы его забыли то обратесь в скайп глав.админу{FF0000} [Getto_skype]");
new str[128],sctring[2000];
format(str,sizeof(str),"Введите пароль:");
strcat(sctring,str);
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "{FFFFFF}Авторизация", sctring, "Войти", "");
}
}
else //Если нажать Esc, то...
{
logged[playerid] = 0;
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "{FFFFFF}Авторизация", "Введите пароль от своего аккаунта", "Войти", "");
}
}