Problema intalnita (descriere): Am o baza de date, si am descoperit o problema. Nu se creaza conturile, deci nu se pot inregistra si conecta jucatorii pe server.
Precizez ca nici in baza de date nu se adauga contul!
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu):
public OnAccountCheck(playerid)
{
new rows, fields;
cache_get_data(rows, fields, mysql);
if(rows != 0) //if there is row
{
new temp[128];
cache_get_field_content(0, "Password", temp), format(PlayerInfo[playerid][pPassword], 128, temp);
PlayerInfo[playerid][pID] = cache_get_row_int(0, 0); //now let's load player's ID into PlayerInfo[playerid][ID] so we can use it later
ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick");
}
else
ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Alege o parola si introdu-o in casuta de mai jos.", "Register", "Kick");
return 1;
}
public OnAccountLoad(playerid)
{
new rows, fields;
cache_get_data(rows, fields, mysql);
if(rows != 0) //if there is row
{
PlayerInfo[playerid][pLevel] = cache_get_row_int(0, 4);
PlayerInfo[playerid][pCash] = cache_get_row_int(0, 5);
PlayerInfo[playerid][pAdmin] = cache_get_row_int(0, 6);
}
else
{
ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick");
SCM(playerid, c_alb, "-1");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case D_Login:
{
if(!response) return Kick(playerid);
if(strlen(inputtext) > 2)
{
mysql_format(mysql, query, sizeof(query), "SELECT * FROM `_players` WHERE `Username` = '%e' AND `Password` = '%e'", Name[playerid], inputtext);
mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
}
else ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Parola trebuie sa contina minim 3 caractere", "Login", "Kick");
}
case D_Register:
{
if(!response) return Kick(playerid);
format(query, sizeof(query), "SELECT COUNT( * ) FROM `_players`");
resultq = mysql_query(mysql, query);
PlayerInfo[playerid][pID] = cache_get_row_count() + 1;
cache_delete(resultq);
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Parola trebuie sa contina cel putin 3 caractere.", "Register", "Kick");
mysql_format(mysql, query, sizeof(query), "INSERT INTO `_players`(`ID`, `Username`, `Password`, `IP`) VALUES ('%d', '%e', '%s', '%s')", PlayerInfo[playerid][pID], Name[playerid], inputtext, IP[playerid]);
resultq = mysql_query(mysql, query); cache_delete(resultq);
}
Imagini / Video (optional): https://youtu.be/zmz5UBTVhfY Ati incercat sa rezolvati singur?: Da, e a nu stiu cata oara cand se intampla asta. O rezolv, si dupa ce timp iar apare problema.. fara ca eu sa modific ceva la sistemul login/register.
Question
Punct.
Problema intalnita (descriere): Am o baza de date, si am descoperit o problema. Nu se creaza conturile, deci nu se pot inregistra si conecta jucatorii pe server.
Precizez ca nici in baza de date nu se adauga contul!
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu):
public OnAccountCheck(playerid) { new rows, fields; cache_get_data(rows, fields, mysql); if(rows != 0) //if there is row { new temp[128]; cache_get_field_content(0, "Password", temp), format(PlayerInfo[playerid][pPassword], 128, temp); PlayerInfo[playerid][pID] = cache_get_row_int(0, 0); //now let's load player's ID into PlayerInfo[playerid][ID] so we can use it later ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick"); } else ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Alege o parola si introdu-o in casuta de mai jos.", "Register", "Kick"); return 1; }public OnAccountLoad(playerid) { new rows, fields; cache_get_data(rows, fields, mysql); if(rows != 0) //if there is row { PlayerInfo[playerid][pLevel] = cache_get_row_int(0, 4); PlayerInfo[playerid][pCash] = cache_get_row_int(0, 5); PlayerInfo[playerid][pAdmin] = cache_get_row_int(0, 6); } else { ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick"); SCM(playerid, c_alb, "-1"); } return 1; }public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case D_Login: { if(!response) return Kick(playerid); if(strlen(inputtext) > 2) { mysql_format(mysql, query, sizeof(query), "SELECT * FROM `_players` WHERE `Username` = '%e' AND `Password` = '%e'", Name[playerid], inputtext); mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid); } else ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Parola trebuie sa contina minim 3 caractere", "Login", "Kick"); } case D_Register: { if(!response) return Kick(playerid); format(query, sizeof(query), "SELECT COUNT( * ) FROM `_players`"); resultq = mysql_query(mysql, query); PlayerInfo[playerid][pID] = cache_get_row_count() + 1; cache_delete(resultq); if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Parola trebuie sa contina cel putin 3 caractere.", "Register", "Kick"); mysql_format(mysql, query, sizeof(query), "INSERT INTO `_players`(`ID`, `Username`, `Password`, `IP`) VALUES ('%d', '%e', '%s', '%s')", PlayerInfo[playerid][pID], Name[playerid], inputtext, IP[playerid]); resultq = mysql_query(mysql, query); cache_delete(resultq); }Imagini / Video (optional): https://youtu.be/zmz5UBTVhfY
Edited by Punct.Ati incercat sa rezolvati singur?: Da, e a nu stiu cata oara cand se intampla asta. O rezolv, si dupa ce timp iar apare problema.. fara ca eu sa modific ceva la sistemul login/register.
Nu mai deschideti in pu*a mea servere de SA:MP !
Jucati-va pe cele care sunt ! Sunt suficiente !
Reguli de bun simt:
My work
:::http://pastebin.com/VRNRcaAs5 answers to this question
Recommended Posts