Dima_Neo
Умник
Здравствуйте!У возникла проблема с командами setname и setpass
Команда setname Меняю ник слетает акк и пароль,тоесть могу любой пароль ввести и зайти.
Команда setpass меняю пароль,а он не меняется остается старый помогите плиз
Лога смены пароля нет.....
Помогите плиз
Команда setname Меняю ник слетает акк и пароль,тоесть могу любой пароль ввести и зайти.
Команда setpass меняю пароль,а он не меняется остается старый помогите плиз
PHP:
if(strcmp(cmd, "/changenick", true)==0 || strcmp(cmd, "/setname", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 3)
{
new nicktmp[19];
new string2[256];
new string3[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_ISPOLZUY, "*Используйте: /changenick [ид игрока][новый ник]");
return 1;
}
giveplayerid = strval(tmp);
format(nicktmp, sizeof(nicktmp), "%s", strtok(cmdtext, idx));
if(!strlen(nicktmp))
{
SendClientMessage(playerid, COLOR_ISPOLZUY, "*Используйте: /changenick [ид игрока][новый ник]");
return 1;
}
else
{
if(strlen(nicktmp) < 3)
{
SendClientMessage(playerid, COLOR_RED, "** Слишком короткий ник!");
return 1;
}
else if(strlen(nicktmp) > 19)
{
SendClientMessage(playerid, COLOR_RED, "** Слишком длинный ник!");
return 1;
}
else
{
new character[256];
new i, j;
new found = 0;
new foundchar[256];
for(i=0; i<(strlen(nicktmp)); i++)
{
strmid(character, nicktmp, i, i+1, 2);
for(j = 0; j<MAX_NICK_ALLOWED_CHARS; j++)
{
tmps1 = allowednickchars[j];
if(strcmp(hash(character), hash(tmps1), false) == 0)
{
found += 1;
foundchar = tmps1;
}
}
}
if (found != strlen(nicktmp))
{
SendClientMessage(playerid, COLOR_RED, "** Вы используйте запрещенные символы. Используйте A-Z a-z 0-9 [ ] _");
}
else
{
format(string, sizeof(string), "%s.ini", nicktmp);
if(fexist(string))
{
SendClientMessage(playerid, COLOR_RED, "** Это ник уже занят");
return 1;
}
else
{
if(IsPlayerConnected(giveplayerid))
{
OnPlayerRename(nicktmp,string,giveplayerid);
format(string, sizeof(string), "* Теперь ваш ник: %s .Не забудте сменить в клиенте SA-MP на такойже.", nicktmp);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
GetPlayerName(giveplayerid, playername, sizeof(playername));
format(string3, sizeof(string3), "*[RP]GameLife: %s Теперь известен как: %s", playername, nicktmp);
SendClientMessageToAll(COLOR_LIGHTRED, string3);
format(string2, sizeof(string2), "%s.ini", playername);
fremove(string2);
SetPlayerName(giveplayerid, nicktmp);
format(string, sizeof(string), "* %s = Smenil nick na = %s",playername, nicktmp);//ëîã ñìåíû íèêîâ
SaveSETNAME(string);//ëîã ñìåíû íèêîâ
return 1;
}
}
}
}
}
}
}
PHP:
//==============================[лог /setname]==================================
stock SaveSETNAME(string[])//лог - смены ников
{
new config[256];
format(config,sizeof(config),"%s\n",string);
new File:CFile;
CFile = fopen("[logi-servera]/SETNAME.txt",io_append);
fwrite(CFile,config);
fclose(CFile);
}
PHP:
if (strcmp(cmd, "/setpass", true)==0)
{
tmp = strtok(cmdtext, idx);
if (gPlayerLogged[playerid] != 1)
{
SendClientMessage(playerid, COLOR_RED, "**Вы не авторизованы чтобы использовать эту команду!");
return 1;
}
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_ISPOLZUY, "*Используйте: /setpass [пароль(не должен превышать 20 символов)]");
return 1;
}
if(strlen(tmp) > 20)
{
SendClientMessage(playerid, COLOR_RED, "** Пароль не должен привышать 20 символов!");
return 1;
}
strmid(PlayerInfo[playerid][pKey], tmp, 0, strlen(cmdtext), 255);
format(string, sizeof(string), "* Твой новый пароль %s не забудь его!(так же сделайте скрин [F8])", PlayerInfo[playerid][pKey]);
SendClientMessage(playerid, COLOR_YELLOW, string);
Encrypt(PlayerInfo[playerid][pKey]);
GetPlayerName(playerid, playername, sizeof(playername));
printf("%s has changed there password.", playername);
return 1;
}
Помогите плиз
