Tag auch,
ich habe folgendes Problem:
In unserer MySQL Datenbank wird immer der erste Account überschrieben. Desweiteren wird nach dem eigl. erfolgreichen Login der OnPlayerRequestSpawn(); Bildschirm angezeigt, und der Spieler wird nicht gespawnt. Ich poste hier einfach mal die Codes in der Hoffnung jemand kann mir helfen
public OnPlayerConnect(playerid)
{
//PLAYERSTATS
SetPlayerVirtualWorld(playerid,0);
if(IsPlayerNPC(playerid))return 1;
if(mysql_CheckAccount(playerid) == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Register Vorgang","Herzlich Willkommen.\nBevor du loslegen kannst musst du dich zuerst registrieren.\nGib unten dein gewünschtes Passwort an!","Register","Abbrechen");
}
else if(mysql_CheckAccount(playerid) == 1)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlich Willkommen zurück auf meinem Server!\nGib bitte unten dein Passwort ein","Login","Abbrechen");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LOGIN)
{
if(response == 0)
{
SendClientMessage(playerid,ROT,"Du hast den Login Vorgang abgebrochen und wirst deshalb nun gekickt!");
Kick(playerid);
}
if(response == 1)
{
if(!strcmp(inputtext,mysql_ReturnPasswort(SpielerName(playerid)),true))
{
SpielerLaden(playerid);
SetPVarInt(playerid,"eingeloggt",1);
GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
SetTimerEx("SpawnMich", 10, 0, "i", playerid);
return 1;
}
else if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Du musst auch ein Passwort angeben!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib unten dein korrektes Passwort ein!","Login","Abbrechen");
return 1;
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das Passwort war leider falsch!\nGib unten dein korrektes Passwort ein!","Login","Abbrechen");
}
}
}
if(dialogid == DIALOG_REGISTER)
{
if(response == 0)
{
SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen und wirst gekickt!");
Kick(playerid);
return 1;
}
if(response == 1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Dein Passwort war nicht lang genug!\nBitte versuche es erneut!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Register","Herzlich Willkommen.\n Da dies dein 1.Besuch bei uns ist, musst du dich zuerst registrieren.\nGib bitte unten dein gewünschtes Passwort ein!","Register","Abbrechen");
return 1;
}
else
{
CreateAccount(playerid,inputtext); // Erstellen eines Accounts
SetPVarInt(playerid,"eingeloggt",1);
return 1;
}
}
}
return 1;
}
stock SpielerLaden(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
GetPlayerName(playerid,SpielerInfo[playerid][pName],MAX_PLAYER_NAME);
if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[playerid][pName]))
{
SpielerInfo[playerid][pLevel] = r_mysql_GetInt("Level");
SpielerInfo[playerid][pHealth] = r_mysql_GetFloat("Health");
SpielerInfo[playerid][pAdminlevel] = r_mysql_GetInt("Adminlevel");
SpielerInfo[playerid][pFraktion] = r_mysql_GetInt("Fraktion");
SpielerInfo[playerid][pGeld] = r_mysql_GetInt("Geld");
SpielerInfo[playerid][pBanned] = r_mysql_GetInt("Banned");
SpielerInfo[playerid][pRespekt] = r_mysql_GetInt("Respekt");
SpielerInfo[playerid][pPayday] = r_mysql_GetInt("Payday");
SpielerInfo[playerid][pDeath] = r_mysql_GetInt("Death");
SpielerInfo[playerid][pKill] = r_mysql_GetInt("Kill");
SpielerInfo[playerid][pBusDuty] = r_mysql_GetInt("BusDuty");
SpielerInfo[playerid][pJob] = r_mysql_GetInt("Job");
SpielerInfo[playerid][pBusExp] = r_mysql_GetInt("BusExp");
printf("Spielerdaten vom Spieler %s erfolgreich aus der Datenbank geladen",SpielerName(playerid));
if(SpielerInfo[playerid][pBanned] == 1)
{
Kick(playerid);
}
r_UnloadSQLEntrance();
}
}
return 1;
}
stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"eingeloggt") == 1)
{
GetPlayerName(playerid,SpielerInfo[playerid][pName],MAX_PLAYER_NAME);
if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[playerid][pName]))
{
r_mysql_SetInt("Level",SpielerInfo[playerid][pLevel]);
r_mysql_SetInt("Geld",SpielerInfo[playerid][pGeld]);
r_mysql_SetInt("Fraktion",SpielerInfo[playerid][pFraktion]);
r_mysql_SetFloat("Health",SpielerInfo[playerid][pHealth]);
r_mysql_SetInt("Banned",SpielerInfo[playerid][pBanned]);
r_mysql_SetInt("Adminlevel",SpielerInfo[playerid][pAdminlevel]);
r_mysql_SetInt("Respekt",SpielerInfo[playerid][pRespekt]);
r_mysql_SetInt("Payday",SpielerInfo[playerid][pPayday]);
r_mysql_SetInt("Death",SpielerInfo[playerid][pDeath]);
r_mysql_SetInt("Kill",SpielerInfo[playerid][pKill]);
r_mysql_SetInt("BusDuty",SpielerInfo[playerid][pBusDuty]);
r_mysql_SetInt("Job",SpielerInfo[playerid][pJob]);
r_mysql_SetInt("BusExp",SpielerInfo[playerid][pBusExp]);
printf("Spielerdaten vom Spieler %s erfolgreich in der Datenbank gespeichert.",SpielerName(playerid));
r_UnloadSQLEntrance();
}
}
return 1;
}
stock CreateAccount(playerid, pass[])
{
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name,Name);
mysql_real_escape_string(pass,pass);
format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
mysql_query(query);
return true;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid,1415.3909,-1626.0238,20.6056);
SetPlayerCameraPos(playerid,1418.9369,-1629.8965,54.6056);
SetPlayerCameraLookAt(playerid,1521.6505,-1706.4551,13.5469);
SpawnPlayer(playerid);
return 0;
}