Moin moin zusammen,
ich hab mir gerade paar Tuts angeguckt um in mysql rein zu kommen aber ich verstehe nicht warum er bei einloggen nicht das Register oder Login Dialog einzeigt ich bin etwas verwirrt und bin auch noch nicht so weit mit meinem mysql wissen das ich es beantworten kann
Der Dialog Code:
Code
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid))return 1;
SetPlayerPos(playerid,-316.0856,1055.7478,19.7422); // Spawn
//SetTimerEx("SkipSpawn", 0, false, "i", playerid);
SetPlayerFacingAngle(playerid,4.6867);
SetPlayerCameraPos(playerid,-304.2922,1076.7617,29.0962); // Spawn Cam
SetPlayerCameraLookAt(playerid,-304.2922,1076.7617,29.0962); // Spawn
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
new query[128],passwort[35];
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext, passwort, dbhandle);
format(query, sizeof query,"SELECT * FROM user WHERE username='%s' AND password='%s'",SpielerName(playerid),passwort);
mysql_tquery(dbhandle,query,"OnPasswordResponse","i",playerid);
}
else
{
new text[128];
SendClientMessage(playerid,ORANGE,"Du hast kein Passwort eingegeben.");
format(text, sizeof text, "Herzlich Willkommen zurück {006CC4}%s\n Bitte logge dich ein",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",text,"Einloggen","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}
if(dialogid == DIALOG_REGISTER)
{
if(response)
{
new query[128],passwort[35];
if(strlen(inputtext)>=3)
{
mysql_escape_string(inputtext, passwort, dbhandle);
format(query, sizeof query, "INSERT INTO user (username,password) VALUES ('%s','%s')",SpielerName(playerid),passwort);
mysql_tquery(dbhandle,query,"","","");
sInfo[playerid][eingeloggt] = 1;
SpawnPlayer(playerid);
}
else
{
new text[128];
SendClientMessage(playerid,ORANGE,"Dein Password muss mindestens 3 Zeichen lang sein.");
format(text, sizeof text, "Herzlich Willkommen\n Der Spielername {006CC4}%s wurde nicht gefunden\nBitte Registriere dich dafür",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register",text,"Registrieren","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}
return 1;
}
Alles anzeigen
Eigen Publics:
Code
public OnPlayerConnect(playerid)
{
//Login - Register
new query[128];
format(query,sizeof query,"SELECT id FROM user WHERE username='%s'",SpielerName(playerid));
mysql_tquery(dbhandle, query, "OnUserCheck", "i", playerid);
return 1;
}
public OnPasswordResponse(playerid)
{
new num_felder,num_reihen;
cache_get_data(num_felder,num_reihen,dbhandle);
if(num_felder == 1)
{
sInfo[playerid][eingeloggt] = 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
}
else
{
new text[128];
SendClientMessage(playerid,ORANGE,"Dein Passsword ist falsch.");
format(text, sizeof text, "Herzlich Willkommen zurück {006CC4}%s\n Bitte logge dich ein",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",text,"Einloggen","Abbrechen");
printf("Spieler hat Level %i",sInfo[playerid][level]);
}
return 1;
}
Alles anzeigen
EDIT: Kann zu hab den Fehler gefunden es hat sich nicht richtig connected