Hallo Ich habe ein Accountsystem erstellt, aber wenn ich auf den Server connecten erscheint nut der Login Dialog, obwohl mein Acount garnicht in der Datenbank ist und deshalb nimmt er das PW auch nicht an.
bitte um hilfe hier die wichtigsten stellen im Script.
//MySql
#define db_host "localhost"
#define db_user "root"
#define db_pass ""
#define db_db "samp"
// Dcmd
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
// Forwards
forward tot(playerid);
forward OnPlayerCheck(playerid);
forward OnPasswordResponse(playerid);
//Enums
enum SpielerDaten
{
Eingeloggt,
Adminlevel,
Level,
Fraktion,
Team,
Geld
};
new sDaten[MAX_PLAYERS][SpielerDaten];
/* GLOBALE VARIABLEN */
//my sql
new db_handle;
public OnGameModeInit()
{
SetGameModeText("LOL 1.0.0");
//My SQL
db_handle = mysql_connect(db_host,db_user,db_db,db_pass);
// MySql Account System
new name[MAX_PLAYER_NAME], query [128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT ID FROM User WHERE Benutzername='%s'",name);
mysql_function_query(db_handle,query,true,"OnPlayerCheck","i",playerid);
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,db_handle);
format(query, sizeof(query),"SELECT * FROM USER WHERE Benutzername='%s' AND Passwort='%s'",name,passwort);
mysql_function_query(db_handle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
SendClientMessage(playerid,BLAU,"Gib bitte ein Passwort ein.");
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FEFEFE}Dein {FF9600}Account {FEFEFE}wurde in unserer Datenbank gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}
if(dialogid == REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>4)
{
mysql_escape_string(inputtext,passwort,db_handle);
format(query,sizeof(query),"INSERT INTO User(Benutzername,Passwort) VALUES('%s','%s')",name, passwort);
mysql_function_query(db_handle,query,false,"","");
}
else
{
SendClientMessage(playerid,BLAU,"Dein Passwort ist zu kurz. Es muss mindestens 5 Zeichen enthalten");
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registration","Dein Account wurde nicht in unserer Datenkbank gefunden. Bitte gebe ein Passwort ein um dich nun auf unserem Server zu Regestrieren.","Regestrieren","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}
public OnPlayerCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,db_handle);
if(num_rows==0)
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FEFEFE}Dein {FF9600}Account {FEFEFE}wurde in unserer Datenbank gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
SendClientMessage(playerid,BLAU,"Hallo, Wilkommen zurrück auf Royal_Elite");
}
else
{
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registration","Dein Account wurde nicht in unserer Datenkbank gefunden. Bitte gebe ein Passwort ein um dich nun auf unserem Server zu Regestrieren.","Regestrieren","Abbrechen");
SendClientMessage(playerid,BLAU,"Herzlich Wilkommen auf dem Royal_Elite Samp Server");
}
return 1;
}
public OnPasswordResponse(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,db_handle);
if(num_rows==1)
{
sDaten[playerid][Eingeloggt] = 1;
sDaten[playerid][Adminlevel] = cache_get_field_content_int(0,"Adminlevel",db_handle);
sDaten[playerid][Level] = cache_get_field_content_int(0,"Level",db_handle);
sDaten[playerid][Fraktion] = cache_get_field_content_int(0,"Level",db_handle);
sDaten[playerid][Geld] = cache_get_field_content_int(0,"Level",db_handle);
}
else
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FEFEFE}Dein {FF9600}Account {FEFEFE}wurde in unserer Datenbank gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
SendClientMessage(playerid,ROT,"Das eingegebene Passwort ist inkorrekt!");
}
return 1;
}
Ich habe auch keine Errors im Script
Mfg Infictible