Ich habe ein Problem mit meinem MYSQL login und zwar kann ich mich immer nur einmal einloggen wenn ich das ein zweites mal probiere stürzt der Server ab:
Einloggen
dann gebe ich wieder /q in den Chat ein, dann logge ich mich wieder geben Passwort ein die die Dialog Box und der Server stürzt ab.
public OnPlayerLogin(playerid,const string[])
{
new pname2[MAX_PLAYER_NAME];
new pname3[MAX_PLAYER_NAME];
new string3[128];
GetPlayerName(playerid, pname2, sizeof(pname2));
new query[256];
new line[1024];
format(query, sizeof(query), "SELECT * FROM `users` WHERE `name` = '%s'", pname2);
samp_mysql_query(query);
samp_mysql_store_result();
samp_mysql_fetch_row(line);
new passwd[32];
samp_mysql_get_field("Passwort", passwd);
if(strcmp(string, passwd, true) != 0)
{
new loginstring[256];
format(loginstring, sizeof(loginstring), " Willkommen zurück,\n auf dem TRL Server %s \n Gib dein Passwort ein um dich zu einzuloggen",pname2);
ShowPlayerDialog(playerid,dialog_login,1,"Login",loginstring,"Abbrechen","Login");
SendClientMessage(playerid, COLOR_WHITE, "TRL: Das Passwort stimmt nicht mit dem Usernamen überein.");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 4)
{
SendClientMessage(playerid, COLOR_WHITE, "TRL: Du wurdest gebannt da du das Passwort zu oft Falsch eingegeben hast..");
Ban(playerid);
}
return 1;
}
new str[256],skinstr[256];
samp_mysql_get_field("Admin", str);
PlayerInfo[playerid][pAdmin] = strval(str);
samp_mysql_get_field("Kills", str);
PlayerInfo[playerid][pKills] = strval(str);
samp_mysql_get_field("Tode", str);
PlayerInfo[playerid][pDeaths] = strval(str);
samp_mysql_get_field("Level", str);
PlayerInfo[playerid][pLevel] = strval(str);
samp_mysql_get_field("Spielzeit", str);
PlayerInfo[playerid][pPlaytime] = strval(str);
samp_mysql_get_field("Fraktion", str);
PlayerInfo[playerid][pFraktion] = strval(str);
samp_mysql_get_field("FraktionsRang", str);
PlayerInfo[playerid][pFrang] = strval(str);
samp_mysql_get_field("Geld", str);
GivePlayerMoney(playerid, strval(str));
samp_mysql_get_field("Skin", skinstr);
PlayerInfo[playerid][pSkin] = strval(skinstr);
printf("%d",PlayerInfo[playerid][pSkin]);
gPlayerLogged[playerid] = 1;
gPlayerAccount[playerid] = 1;
GetPlayerName(playerid, pname3, sizeof(pname3));
format(string3, sizeof(string3), "Welcome %s, du bist nun eingeloggt!", pname3);
SpawnPlayer(playerid);
SendClientMessage(playerid, COLOR_WHITE,string3);
pimerday[playerid] = SetTimerEx("pimer",60000,0,"i",playerid);
return 1;
}
EDIT:
Ich habe das ganze jetzt mal so gemacht:
format(query, sizeof(query), "SELECT * FROM `users` WHERE `name` = '%s'", pname2);
print("nach SELECT");
samp_mysql_query(query);
print("nach query");
samp_mysql_store_result();
print("nach store_result");
samp_mysql_fetch_row(line);
print("nach fetch row");
Und das letzte was im Log steht ist nach store_result.
Also muss das ganze ja an fetch row liegen nur woran dort genau und was muss ich machen ?