Guten Abend liebe Community,
ich benötige Hilfe.
Irgendwie speichert er den Spieler nicht und auch beim Landen wirds nix.
Wenn man sich Registriert auf meinem Server funktioniert das. Nur das Geld etc speichern und laden funktioniert nicht.
Und da ich noch seehr nur in MySQL bin, hoffe ich, dass ihr da mal drüber schauen könnt.
Hier der "stock SavePlayer(playerid)"
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
{
if(loggedin[playerid] == true) //Und hier ob er noch eingeloggt ist.
{
mysql_SetInt("user", "score", pscore[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "geld", pgeld[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "adminlevel", padminlvl[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "fraktion", pfraktion[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "wanteds", pwanteds[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "bank", pbank[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "autoschein", fuhrerschein[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "kampfstyle", pkampfstyle[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "jobid", jobid[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "arbeitslosengeld", arbeitslosengeld[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "rank", prank[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "neu", neu[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "skin", pskin[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "payday", npayday[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "biz", pbiz[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "tban", timeban[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "casinochips", casinochips[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "prison", knastid[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "prisontime", knastzeit[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "ausweis", ausweis[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "herkunft", herkunft[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "staatsange", staatsan[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "wohnort", wohnort[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "alter", alter[playerid], "Name", SpielerName(playerid));
mysql_SetString("user", "ausweisgultig", gultigbis[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "knastaufenthalt", kaufenthalt[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "pdtickets", tickets[playerid], "Name", SpielerName(playerid));
mysql_SetInt("user", "autopunkte", autopunkte[playerid], "Name", SpielerName(playerid));
}
}
return 1;
}
Dann habe ich hier den stock: mysql_SetInt/SetString
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(To, To);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
Hier hab ich dann noch den "stock LoadPlayer(playerid)"
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
pscore[playerid] = mysql_GetInt("user", "score", "Name", SpielerName(playerid));
pgeld[playerid] = mysql_GetInt("user", "geld", "Name", SpielerName(playerid));
padminlvl[playerid] = mysql_GetInt("user", "adminlevel", "Name", SpielerName(playerid));
pfraktion[playerid] = mysql_GetInt("user", "fraktion", "Name", SpielerName(playerid));
pwanteds[playerid] = mysql_GetInt("user", "wanteds", "Name", SpielerName(playerid));
pbank[playerid] = mysql_GetInt("user", "bank", "Name", SpielerName(playerid));
fuhrerschein[playerid] = mysql_GetInt("user", "autoschein", "Name", SpielerName(playerid));
pkampfstyle[playerid] = mysql_GetInt("user", "kampfstyle", "Name", SpielerName(playerid));
jobid[playerid] = mysql_GetInt("user", "jobid", "Name", SpielerName(playerid));
arbeitslosengeld[playerid] = mysql_GetInt("user", "arbeitslosengeld", "Name", SpielerName(playerid));
prank[playerid] = mysql_GetInt("user", "rank", "Name", SpielerName(playerid));
neu[playerid] = mysql_GetInt("user", "neu", "Name", SpielerName(playerid));
pskin[playerid] = mysql_GetInt("user", "skin", "Name", SpielerName(playerid));
npayday[playerid] = mysql_GetInt("user", "payday", "Name", SpielerName(playerid));
pbiz[playerid] = mysql_GetInt("user", "biz", "Name", SpielerName(playerid));
timeban[playerid] = mysql_GetInt("user", "tban", "Name", SpielerName(playerid));
casinochips[playerid] = mysql_GetInt("user", "casinochips", "Name", SpielerName(playerid));
knastid[playerid] = mysql_GetInt("user", "prison", "Name", SpielerName(playerid));
knastzeit[playerid] = mysql_GetInt("user", "prisontime", "Name", SpielerName(playerid));
ausweis[playerid] = mysql_GetInt("user", "ausweis", "Name", SpielerName(playerid));
herkunft[playerid] = mysql_GetInt("user", "herkunft", "Name", SpielerName(playerid));
staatsan[playerid] = mysql_GetInt("user", "staatsange", "Name", SpielerName(playerid));
wohnort[playerid] = mysql_GetInt("user", "wohnort", "Name", SpielerName(playerid));
alter[playerid] = mysql_GetInt("user", "alter", "Name", SpielerName(playerid));
format(gultigbis[playerid], 60, "%s", mysql_GetString("user", "ausweisgultig", "Name", SpielerName(playerid)));
kaufenthalt[playerid] = mysql_GetInt("user", "knastaufenthalt", "Name", SpielerName(playerid));
tickets[playerid] = mysql_GetInt("user", "pdtickets", "Name", SpielerName(playerid));
autopunkte[playerid] = mysql_GetInt("user", "autopunkte", "Name", SpielerName(playerid));
}
return 1;
}
Hierzu wieder den Stock mysql_GetInt/GetString:
stock mysql_GetInt(Table[], Field[], Where[], Is[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
new sqlint = mysql_fetch_int();
mysql_free_result();
return sqlint;
}
stock mysql_GetString(Table[], Field[], Where[], Is[])
{
new query[128], Get[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
Laut dem MySQL Log ist das der Errorcode:
[20:21:17] CMySQLHandler::Query(UPDATE `user` SET `pdtickets` = '-1' WHERE `Name` = 'Jack_McClain') - An error has occured. (Error ID: 1054, Unknown column 'Name' in 'where clause')
[20:21:17] >> mysql_real_escape_string( Connection handle: 1 )
[20:21:17] CMySQLHandler::EscapeString(user); - Escaped 4 characters to user.
[20:21:17] >> mysql_real_escape_string( Connection handle: 1 )
Error: 1054 SQLSTATE: 42S22 (ER_BAD_FIELD_ERROR)
Message: Unknown column '%s' in '%s'
Ich weiß nicht, ob euch das noch was bringt, aber bitte:
Ich hoffe ihr könnt mir schnell weiterhelfen, damit ich mit dem Server wieder online gehen kann.
Mit freundlichen Grüßen,
Scripter4.0