Guten Tag
Habe ein Problem und zwar accounts werden nicht nicht mehr in der Datenbank abgespeichert.
So sieht alles aus:
Forward:
Dialoge:
PlayerInfo:
OnGameModInit:
Code
		
			//mysql verbindung:
	dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
	print("Mysql wurde verbunden!");
	mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);
	
	OnUserCheck:
Code
		
					
			public OnUserCheck(playerid)
{
	new num_rows,num_fields;
	cache_get_data(num_rows,num_fields,dbhandle);
	if(num_rows==0)
	{
		//Register
		ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Account Erstellung","Gebe bitte nun dein gewünschtes Passwort ein!","Registrieren","Abbrechen");
	}
	else
	{
		//Login
	ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmelden","Gebe bitte dein Passwort ein.","Anmleden","Abbrechen");
	}
	return 1;
}
	
			Alles anzeigen
	OnPlayerConnect:
Code
		
					
			public OnPlayerConnect(playerid)
{
	if(IsPlayerNPC(playerid)) return 1;
	new nachricht[128];
	format(nachricht,sizeof(nachricht),"Du bist mit der ID %i verbunden.",playerid);
	SendClientMessage(playerid,rot,nachricht);
	//Login/Register:
	new name[MAX_PLAYER_NAME],query[128];
	GetPlayerName(playerid,name,sizeof(name));
	format(query,sizeof(query),"SELECT id FROM user WHERE username='%s' ",name);
	mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
	SendClientMessage(playerid,grün,"Willkommen auf Reallife Version 0.1.4! Wir wünschen euch ein angenehmen Spiel spaß bei uns!");
	//textdraws anzeigen:
	TextDrawShowForPlayer(playerid,Text:uhrzeitLabel);
	TextDrawShowForAll(Jahr);
	SetPlayerColor(playerid,weiß);
	sInfo[playerid][level]=1;
	SetPlayerScore(playerid,sInfo[playerid][level]);
	return 1;
}
  savePlayer(playerid)
{
	if(sInfo[playerid][eingeloggt]==0)return 1;
	//Speichern level,money
	new query[256];
	format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
	mysql_function_query(dbhandle,query,false,"","");
	return 1;
}
resetPlayer(playerid)
{
	for(new i=0; i<sizeof(sInfo[]); i++)
	{
	    sInfo[playerid][playerInfo:i]=0;
	}
	return 1;
}
	
			Alles anzeigen
	OnPlayerDisconnect:
Code
		
					
			public OnPlayerDisconnect(playerid, reason)
{
	for(new i=0; i<sizeof(aInfo); i++)
	{
		if(aInfo[i][id_x]==0)continue;
		if(aInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
		GetVehiclePos(aInfo[i][id_x],aInfo[i][c_x],aInfo[i][c_y],aInfo[i][c_z]);
		GetVehicleZAngle(aInfo[i][id_x],aInfo[i][c_r]);
		new query[156];
		format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i' WHERE id='%i'",sInfo[playerid][level],
		GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo,sInfo[playerid][db_id]);
		mysql_function_query(dbhandle,query,false,"","");
		DestroyVehicle(aInfo[i][id_x]);
		aInfo[i][id_x]=0;
		break;
	}
	savePlayer(playerid);
	resetPlayer(playerid);
	loadPlayerCars(playerid);
	return 1;
}
	
			Alles anzeigen
	getPlayerName (weiß ich jetzt nicht so ganz ob es dazu gehört!):
Code
		
			getPlayerName(playerid)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
	return name;
}
	
	
Spielergeld:
Code
		
			SetPlayerMoney(playerid,money)
{
	ResetPlayerMoney(playerid);
	GivePlayerMoney(playerid,money);
	return 1;
}
	
	Code
		
					
			public OnPasswordResponse(playerid)
{
	new num_rows,num_fields;
	cache_get_data(num_rows,num_fields,dbhandle);
	if(num_rows==1)
	{
		//passwort Richtig
		sInfo[playerid][eingeloggt] = 1;
		sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
		SetPlayerScore(playerid,sInfo[playerid][level]);
		sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
		SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
		sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
		sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
		sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
		sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
		SetPlayerScore(playerid,sInfo[playerid][level]);
		loadPlayerCars(playerid);
	}
	else
	{
		//Passwort Falsch
		SendClientMessage(playerid,grün,"Du hast dein Passwort falsch eingetippt. Versuche es nochmal!");
		ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
	}
	return 1;
}
	
			Alles anzeigen
	Code
		
					
			if(dialogid==DIALOG_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,dbhandle);
	            format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
	            mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
	        }
	        else
			{
				//Keine Eingabe
				SendClientMessage(playerid,grün,"Gibt bitte dein Passwort ein.");
				ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
   			}
	    }
	    else
	    {
	        Kick(playerid);
	    }
	}
	if(dialogid==DIALOG_REGISTER)
	{
	    if(response)
	    {
	        new name[MAX_PLAYER_NAME],query[128],passwort[35];
	        GetPlayerName(playerid,name,sizeof(name));
	        if(strlen(inputtext)>5)
	        {
	            //Registrierungsfunktion
	            mysql_escape_string(inputtext,passwort,dbhandle);
	            format(query,sizeof(query),"INSERT INTO user username = '%s', passwort = '%s', level = '1' ",name,passwort);
	            mysql_function_query(dbhandle,query,false,"","");
	            sInfo[playerid][level]=1;
	            SetPlayerScore(playerid,sInfo[playerid][level]);
	        }
	        else
	        {
	            //Kleiner als 4 Zeichen
	            SendClientMessage(playerid,helblau,"Dein Passwort muss mindestens 6 Zeichen lang sein.");
	            ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Account Erstellung","Gebe bitte nun dein gewünschtes Passwort ein!","Erstellen","Abbrechen");
	        }
	    }
	    else
	    {
	        Kick(playerid);
	    }
	}
	
			Alles anzeigen
	
		
		
		
	






