Jump to content
  • 0

SavePlayerData, SetLevel, UpdatePlayerData


Question

Posted (edited)

Problema intalnita (descriere): Mai jos

Ero(area / rile) / warning-(ul / urile): mai jos

Liniile de cod / sursa / script-ul(obligatoriu): mai jos

Imagini / Video (optional): -

Ati incercat sa rezolvati singur?: da

 

public LoadPlayerData(playerid)

{
    szQuery[0] = EOS;
/*if(!cache_get_row_count(Handle))
{
format(szQuery, 128, "{00FF00}Salut {FF0000}%s{00FF00}nAcest nume este inregistrat.n{FFFF00}Te rugam sa introduci parola.", GetName(playerid));
ShowPlayerDialog(playerid, L_DIALOG, DIALOG_STYLE_PASSWORD, "Logare", szQuery, "Logare", "Exit");
return 1;
}*/
PaccInfo[playerid][iD] = cache_get_field_content_int(0, "ID");
cache_get_field_content(0, "IP", PaccInfo[playerid][iP]);
cache_get_field_content(0, "Name", PaccInfo[playerid][Name]);
cache_get_field_content(0, "Password", PaccInfo[playerid][Password]);
PaccInfo[playerid][Money] = cache_get_field_content_int(0, "Money");
PaccInfo[playerid][Level] = cache_get_field_content_int(0, "Level");
PaccInfo[playerid][Vip] = cache_get_field_content_int(0, "VIP");
PaccInfo[playerid][Kills] = cache_get_field_content_int(0, "Kills");
PaccInfo[playerid][Deaths] = cache_get_field_content_int(0, "Deaths");
PaccInfo[playerid][Hours] = cache_get_field_content_int(0, "Hours");
PaccInfo[playerid][Mins] = cache_get_field_content_int(0, "Mins");
PaccInfo[playerid][secs] = cache_get_field_content_int(0, "Secs");
PaccInfo[playerid][LGIN] = 1;
format(szQuery, 128, "Bine ai revenit %s. Ai fost logat cu succes.", GetName(playerid));
SendClientMessage(playerid, LIGHTGREEN, szQuery);
return 1;
}

 

CMD:setlevel(playerid, params[])

{
if(PaccInfo[playerid][LGIN] == 1)
{
if(IsPlayerAdmin(playerid))
{
   szQuery[0] = EOS;
  new player1, level;
if(sscanf(params, "ud", player1, level)) return SendClientMessage(playerid, LIGHTBLUE2, "Usage: /setlevel [PlayerID] [Level]");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
{
if(PaccInfo[player1][LGIN] == 1)
{
if(level == PaccInfo[player1][Level]) return
SCM(playerid,red,"EROARE: Player-ul are deja acest level");
format(szQuery, 128, "Admin-ul %s ti-a setat level %d", GetName(playerid), level);
SCM(player1, LIGHTGREEN, szQuery);
PaccInfo[player1][Level] = level;
return 1;
}
else return SCM(playerid,red,"EROARE: Player-ul nu este logat/inregistrat");
}
else return SCM(playerid,red,"EROARE: Player-ul nu este conectat");
}
else return SCM(playerid,red,"EROARE: Nu ai level destul de mare pentru aceasta comanda");
}
else return SCM(playerid,red,"EROARE: Trebuie sa fii logat sa poti folosi comanda");
}

Si primesc erorile astea(dupa ce am reusit sa rezolv cu login/register)

 

[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')

[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
[22:04:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
[22:04:41] [ERROR] cache_get_field_content_int - invalid datatype
 
Edited by Tarzanus

14 answers to this question

Recommended Posts

  • 0
Posted

LoadPlayerData de unde este apelat?

 

if(dialogid == R_DIALOG)

{
   if(!response) return Kick(playerid);
   szQuery[0] = EOS;
   if(strlen(inputtext) < 3)
   {
       format(szQuery, 128, "Salut %s, acest nume nu este inregistrat.nTe rugam sa introduci parola.nParola trebuie sa contina minim 3 caractere.", GetName(playerid));
ShowPlayerDialog(playerid, R_DIALOG, DIALOG_STYLE_PASSWORD, "Inregistrare", szQuery, "Inregistrare", "Exit");
return 1;
}
new PasswordHash[129];
WP_Hash(PasswordHash, 129, inputtext);
PaccInfo[playerid][iD] = cache_insert_id(Handle);
mysql_format(Handle, szQuery, 512, "INSERT INTO `users` (`Name`, `Password`, `IP`, `Money`, `Level`, `VIP`, `Kills`, `Deaths`, `Hours`, `Mins`, `Secs`) VALUES ('%e', '%e', '%e', 0, 0, 0, 0, 0, 0, 0, 0)", GetName(playerid), PasswordHash, GetIP(playerid));
mysql_tquery(Handle, szQuery, "", "");
SendClientMessage(playerid, LIGHTBLUE, "Te-ai inregistrat cu succes, ai fost logat automat.");
PaccInfo[playerid][LGIN] = 1;
   return 1;
}
 
if(dialogid == L_DIALOG)
{
   if(!response) return Kick(playerid);
  new PasswordHash[129];
WP_Hash(PasswordHash, sizeof(PasswordHash), inputtext);
   mysql_format(Handle, szQuery, 256, "SELECT * FROM `users` WHERE `Name` = '%e' AND `Password` = '%e' LIMIT 1;", GetName(playerid), PasswordHash);
mysql_tquery(Handle, szQuery, "LoadPlayerData", "d", playerid);
   return 1;
}
return 1;
  • 0
  • Administrator
Posted

De ce ai comentat

/*if(!cache_get_row_count(Handle))
{
format(szQuery, 128, "{00FF00}Salut {FF0000}%s{00FF00}nAcest nume este inregistrat.n{FFFF00}Te rugam sa introduci parola.", GetName(playerid));
ShowPlayerDialog(playerid, L_DIALOG, DIALOG_STYLE_PASSWORD, "Logare", szQuery, "Logare", "Exit");
return 1;
}*/

?

 

Tie iti trebuie asta, daca parola nu e corecta nu are de unde sa selecteze si o sa-ti dea erorile de mai sus.

  • 0
Posted

Foloseste log-ul de tip HTML, din cate stiu cel de tip .txt are o problema.

In loc de mysql_log pe care il ai acum foloseste.

mysql_log( LOG_ERROR | LOG_WARNING, LOG_TYPE_HTML );

I'm back bitches.

  • 0
Posted

De ce ai comentat

/*if(!cache_get_row_count(Handle))
{
format(szQuery, 128, "{00FF00}Salut {FF0000}%s{00FF00}nAcest nume este inregistrat.n{FFFF00}Te rugam sa introduci parola.", GetName(playerid));
ShowPlayerDialog(playerid, L_DIALOG, DIALOG_STYLE_PASSWORD, "Logare", szQuery, "Logare", "Exit");
return 1;
}*/

?

 

Tie iti trebuie asta, daca parola nu e corecta nu are de unde sa selecteze si o sa-ti dea erorile de mai sus.

Cand dau sa ma loghez, pun parola, dar iar imi apare sa ma loghez pana la infinit, nu ma spawneaza, nu pot alege class-ul.

  • 0
Posted (edited)

In database ai parola hasurata?

Iar daca ai parola hasurata, o rehashurezi inainte sa verifici daca parolele se potrivesc?

De aici nu inteleg...

In DB parola e hasurata da, dar s-o rehashurez chiar nu stiu...

Edited by Tarzanus
  • 0
Posted

Da partea de cod unde faci logarea, asta include dialogurile si ce se afla la OnDialogResponse.

 

   if(dialogid == L_DIALOGs) return 1;

if(dialogid == R_DIALOG)
{
   if(!response) return Kick(playerid);
   szQuery[0] = EOS;
   if(strlen(inputtext) < 3)
   {
       format(szQuery, 128, "Salut %s, acest nume nu este inregistrat.nTe rugam sa introduci parola.nParola trebuie sa contina minim 3 caractere.", GetName(playerid));
ShowPlayerDialog(playerid, R_DIALOG, DIALOG_STYLE_PASSWORD, "Inregistrare", szQuery, "Inregistrare", "Exit");
return 1;
}
new PasswordHash[129];
WP_Hash(PasswordHash, 129, inputtext);
mysql_format(Handle, szQuery, 512, "INSERT INTO `users` (`Name`, `Password`, `IP`, `Money`, `Level`, `VIP`, `Kills`, `Deaths`, `Hours`, `Mins`, `Secs`) VALUES ('%e', '%e', '%e', 0, 0, 0, 0, 0, 0, 0, 0)", GetName(playerid), PasswordHash, GetIP(playerid));
mysql_tquery(Handle, szQuery, "", "");
SendClientMessage(playerid, LIGHTBLUE, "Te-ai inregistrat cu succes. Server-ul te-a logat automat.");
PaccInfo[playerid][LGIN] = 1;
   return 1;
}
 
if(dialogid == L_DIALOG)
{
   if(!response) return Kick(playerid);
   new PasswordHash[129];
WP_Hash(PasswordHash, sizeof(PasswordHash), inputtext);
      szQuery[0] = EOS;
mysql_format(Handle, szQuery, 256, "SELECT * FROM `users` WHERE `Name` = '%e' AND `Password` = '%e' LIMIT 1;", GetName(playerid), PasswordHash);
mysql_tquery(Handle, szQuery, "LoadPlayerData", "d", playerid);
   return 1;
}
  • 0
Posted (edited)

La fiecare cache_get_field_content_int adauga acel "Handle" si vezi poate nu ai versiunea buna de mysql.

PaccInfo[playerid][Deaths] = cache_get_field_content_int(0, "Deaths", Handle);
Edited by andy47
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.