Hey Leute habe ein Problem mit meinem MySQL System undzwar werden Accounts nicht Geladen oder Gespeichert habe es wie folgt gemacht:
Dies wird beim Dialog erstellt.
LoadPlayer(playerid, inputtext);
Das ist der Stock der ausgeführt wird.
stock LoadPlayer(playerid, password[])
{
new query1[256];
format(query1, sizeof(query1), "SELECT `Name` FROM `accounts` WHERE `Name` = '%s' AND `passwort` = '%s'", SpielerName(playerid), password);
mysql_function_query(Handle, query1, true, "OnUserLogin", "i", playerid);
return 1;
}
Und dann soll es so geladen werden.
public OnUserLogin(playerid)
{
new rows, fields, result[256];
cache_get_data(rows, fields);
if(rows != 0)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
SetPVarInt(playerid,"SupportGast",150);
cache_get_field_content(0, "Level", result), SpielerInfo[playerid][pLevel] = strval(result);
cache_get_field_content(0, "Points", result), SpielerInfo[playerid][pPoints] = strval(result);
cache_get_field_content(0, "Zeit", result), SpielerInfo[playerid][pZeit] = strval(result);
cache_get_field_content(0, "Admin", result), SpielerInfo[playerid][pAdmin] = strval(result);
cache_get_field_content(0, "Ban", result), SpielerInfo[playerid][pBan] = strval(result);
cache_get_field_content(0, "SupTicket", result), SpielerInfo[playerid][pSupTicket] = strval(result);
cache_get_field_content(0, "Geld", result), SpielerInfo[playerid][pGeld] = strval(result);
cache_get_field_content(0, "Fraktion", result), SpielerInfo[playerid][pFraktion] = strval(result);
cache_get_field_content(0, "Rang", result), SpielerInfo[playerid][pRang] = strval(result);
cache_get_field_content(0, "Leader", result), SpielerInfo[playerid][pLeader] = strval(result);
cache_get_field_content(0, "Skin", result), SpielerInfo[playerid][pSkin] = strval(result);
SetPlayerSkin(playerid,SpielerInfo[playerid][pSkin]);
cache_get_field_content(0, "SpawnChange", result), SpielerInfo[playerid][pSpawnChange] = strval(result);
cache_get_field_content(0, "PrisonTime", result), SpielerInfo[playerid][pPrisonTime] = strval(result);
cache_get_field_content(0, "Warn", result), SpielerInfo[playerid][pWarn] = strval(result);
cache_get_field_content(0, "ATM", result), SpielerInfo[playerid][pATM] = strval(result);
cache_get_field_content(0, "JailTime", result), SpielerInfo[playerid][pJailTime] = strval(result);
cache_get_field_content(0, "Wanteds", result), SpielerInfo[playerid][pJailTime] = strval(result);
cache_get_field_content(0, "FWarns", result), SpielerInfo[playerid][pFWarns] = strval(result);
cache_get_field_content(0, "Handy", result), SpielerInfo[playerid][pHandy] = strval(result);
cache_get_field_content(0, "HandyStatus", result), SpielerInfo[playerid][pHandyStatus] = strval(result);
cache_get_field_content(0, "HandyAkku",result), SpielerInfo[playerid][pHandyAkku] = strval(result);
cache_get_field_content(0, "HandyNummer", result), SpielerInfo[playerid][pHandyNummer] = strval(result);
cache_get_field_content(0, "Tutorial", result), SpielerInfo[playerid][pTutorial] = strval(result);
cache_get_field_content(0, "Alter", result), SpielerInfo[playerid][pAlter] = strval(result);
cache_get_field_content(0, "Herkunft", result), SpielerInfo[playerid][pHerkunft] = strval(result);
cache_get_field_content(0, "Geschlecht", result), SpielerInfo[playerid][pGeschlecht] = strval(result);
//cache_get_field_content(0, "Points", result), format(SpielerInfo[playerid][lalala], 128, "%s", result);
printf("%i %i", SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pPoints]);
SpielerInfo[playerid][pLogIn] = 1;
CancelSelectTextDraw(playerid);
SpawnPlayer(playerid);
}
}
else
{
new string[256];
format(string,sizeof(string),"Wilkommen %s \n Dein Account wurde gefunden. \n Bitte gebe dein Passwort ein.",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"LogIn",string,"LogIn","Exit");
SendClientMessage(playerid,ROT,"PASSTWORT FALSCH!!!");
}
return 1;
}
So und nun beim Speichern habe Ich es so gemacht:
stock SavePlayer(playerid)
{
if(!IsPlayerConnected(playerid) && IsPlayerNPC(playerid) && SpielerInfo[playerid][pLogIn] == 0) return printf("User %s failed to save!", SpielerName(playerid));
new query[1080], result[1500];
format(query, sizeof(query), "\
`Level` = '%i',\
`Points` = '%i',\
`Zeit` = '%i',\
`Admin`= '%i',\
`Ban`= '%i',\
`SupTicket`= '%i',\
`Geld`= '%i',\
`Fraktion`= '%i',\
`Rang`= '%i',\
`Leader`= '%i',\
`Skin`= '%i',\
`SpawnChange`= '%i',\
`PrisonTime`= '%i',\
`Warn`= '%i',\
`ATM`= '%i',\
`JailTime`= '%i',\
`Wanteds`= '%i',\
`FWarns`= '%i',\
`Handy`= '%i',\
`HandyStatus`= '%i',\
`HandyAkku`= '%i',\
`HandyNummer`= '%i',\
`Tutorial`= '%i',\
`Alter`= '%i',\
`Herkunft`= '%i',\
`Geschlecht`= '%i'",
SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pPoints],SpielerInfo[playerid][pZeit],SpielerInfo[playerid][pAdmin], SpielerInfo[playerid][pBan], SpielerInfo[playerid][pSupTicket],SpielerInfo[playerid][pGeld],
SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pSpawnChange],SpielerInfo[playerid][pPrisonTime],SpielerInfo[playerid][pWarn],
SpielerInfo[playerid][pATM],SpielerInfo[playerid][pJailTime],SpielerInfo[playerid][pWanteds],SpielerInfo[playerid][pFWarns],SpielerInfo[playerid][pHandy],SpielerInfo[playerid][pHandyStatus],SpielerInfo[playerid][pHandyAkku],
SpielerInfo[playerid][pHandyNummer],SpielerInfo[playerid][pTutorial],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pHerkunft],SpielerInfo[playerid][pGeschlecht]);
format(result, sizeof(result), "UPDATE `accounts` SET %s WHERE `Name` = '%s'", query, SpielerName(playerid));
mysql_function_query(Handle, result, false, "", "");
return 1;
}
Beides klappt leider nicht.