new dbhandle;
enum sInfo
{
eingeloggt,
level,
s_id,
geld,
job,
alevel,
db_id,
bank,
exp,
geschlecht,
familie,
fraktion,
ZbP,
VIP,
Lotto,
Wanted,
Fische,
Drogen,
Zeit,
iq
}
public OnGameModeInit()
{
//MySQL
dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
}
public OnPlayerConnect(playerid)
{
//Login/Register
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT id FROM accounts WHERE name='%s'",name);
mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
}
public OnUserCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)
{
//Registrierung
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_INPUT,"Registrierung","Willkommen bei der Registrierung von ihrem neuen Account.\nDas Passwort muss aus Sicherheitsgründen mindestens 5 Zeichen lang sein.\nGeben sie bitte ihr gewünschtes Passwort ein:","Bestätigen","Beenden");
}
else
{
//Login
if(pwtry[playerid] < 2) //noch versuche frei
{
ShowPlayerDialog(playerid,DIALOG_LOG,DIALOG_STYLE_PASSWORD,"Login","Ihr Account wurde gefunden.\nBitte geben sie ihr Passwort ein:","Bestätigen","Beenden");
}
else //keine versuche frei
{
SendClientMessageToAll(SERVER,"Fehler 3");
kText(playerid,"Sie haben das Passwort 3 Mal falsch eingegeben und wurden nun vom Server gebannt.");
kText(playerid,"Setzen sie sich mit einem Admin in Verbindung damit dieser sie wieder entbannt.");
}
}
return 1;
}
public OnPasswortResponse(playerid)
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(pwtry[playerid] < 2) //noch versuche frei
{
if(num_rows==1)
{
//Passwort richtig
SpielerInfo[playerid][eingeloggt] = 1; //eingeloggt setzen
SpielerInfo[playerid][db_id] = cache_get_field_content_int(0,"db_id",dbhandle); //db_id setzen
SpielerInfo[playerid][job] = cache_get_field_content_int(0,"job",dbhandle); //job setzen
SpielerInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle); //alevel setzen
SpielerInfo[playerid][s_id] = cache_get_field_content_int(0,"id",dbhandle); //id setzen
SpielerInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle); //level setzen
SpielerInfo[playerid][bank] = cache_get_field_content_int(0,"bank",dbhandle); //bank setzen
SpielerInfo[playerid][exp] = cache_get_field_content_int(0,"exp",dbhandle); //exp setzen
SpielerInfo[playerid][geschlecht] = cache_get_field_content_int(0,"geschlecht",dbhandle); //geschlecht setzen
SpielerInfo[playerid][familie] = cache_get_field_content_int(0,"familie",dbhandle); //familie setzen
SpielerInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle); //fraktion setzen
SpielerInfo[playerid][ZbP] = cache_get_field_content_int(0,"ZbP",dbhandle); //ZbP setzen
SpielerInfo[playerid][VIP] = cache_get_field_content_int(0,"VIP",dbhandle); //VIP setzen
SpielerInfo[playerid][Lotto] = cache_get_field_content_int(0,"Lotto",dbhandle); //Lotto setzen
SpielerInfo[playerid][Wanted] = cache_get_field_content_int(0,"Wanted",dbhandle); //Wanted setzen
SpielerInfo[playerid][Fische] = cache_get_field_content_int(0,"Fische",dbhandle); //Fische setzen
SpielerInfo[playerid][Drogen] = cache_get_field_content_int(0,"Drogen",dbhandle); //Drogen setzen
SpielerInfo[playerid][Zeit] = cache_get_field_content_int(0,"Zeit",dbhandle); //Zeit setzen
SpielerInfo[playerid][iq] = cache_get_field_content_int(0,"iq",dbhandle); //iq setzen
SetPlayerMoney(playerid,cache_get_field_content_int(0,"geld",dbhandle)); //geld setzen
SetPlayerScore(playerid,SpielerInfo[playerid][level]); //level setzen
SendClientMessage(playerid,RICHTIG,"Sie haben sich erfolgreich eingeloggt");
//noob spawn
//SetSpawnInfo( playerid,0,0,-207.3559,1118.9818,20.4297,273.1605,0,0,0,0, 0, 0 );
SetSpawnInfo( playerid,0,0,-188.7771,1170.0776,19.5993,273.1605,0,0,0,0, 0, 0 );
if(SpielerInfo[playerid][eingeloggt] == 1)
{
SpawnPlayer(playerid);
if(SpielerInfo[playerid][iq] == 0)
{
ShowPlayerDialog(playerid,DIALOG_IQTEST1,DIALOG_STYLE_MSGBOX,"IQ Test","Sie müssen nun 10 Fragen beantworten.","Weiter","Verlassen");
}
}
loadPlayerCars(playerid);
}
else
{
//Passwort falsch
pwtry[playerid] = pwtry[playerid] +1;
new ueberschirft[50],text[128],versuche;
versuche = 3-pwtry[playerid];
format(ueberschirft,sizeof(ueberschirft),"{00FF00}Login - {FF0000}Versuch %i/%i",versuche,maxpw);
format(text,sizeof(text),"Sie haben nur noch %i Versuche.\nBitte geben sie ihr Passwort ein:",versuche,maxpw);
ShowPlayerDialog(playerid,DIALOG_LOG,DIALOG_STYLE_PASSWORD,ueberschirft,text,"Bestätigen","Beenden");
}
}
else //keine versuche frei
{
kText(playerid,"Sie haben das Passwort 3 Mal falsch eingegeben und wurden nun vom Server gebannt.");
kText(playerid,"Setzen sie sich mit einem Admin in Verbindung damit dieser sie wieder entbannt.");
}
return 1;
}
if(dialogid==DIALOG_REG)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext) < 5)
{
//kleiner als 5 Zeichen
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_INPUT,"Registrierung","Bitte beachten sie die mindestens Anzahl von 5 Zeichen.\nGeben sie bitte ihr gewünschtes Passwort ein:","Bestätigen","Beenden");
}
else
{
//registrierung
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO accounts (name,passwort) VALUES ('%s',MD5('%s'))",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPlayerRegister","i",playerid);
SendClientMessage(playerid,RICHTIG,"Die Registierung ist abgeschlosen. Sie sind nun eingeloggt.");
ShowPlayerDialog(playerid,DIALOG_IQTEST1,DIALOG_STYLE_INPUT,"IQ Test","Sie müssen nun 20 Fragen beantworten.","Weiter","Verlassen");
SpielerInfo[playerid][eingeloggt] = 1;
//SetSpawnInfo( playerid,0,0,-207.3559,1118.9818,20.4297,273.1605,0,0,0,0, 0, 0 );
SetSpawnInfo( playerid,0,0,-188.7771,1170.0776,19.5993,273.1605,0,0,0,0, 0, 0 );
if(SpielerInfo[playerid][eingeloggt] == 1)
{
SpawnPlayer(playerid);
}
}
}
else
{
kText(playerid,"Sie haben die Registierungsvorgang abgebrochen.");
}
return 1;
}
SpielerSpeichern(playerid) //Speichern
{
if(SpielerInfo[playerid][eingeloggt]==0)return 1;
new query[1024];
format(query,sizeof(query),"UPDATE accounts SET level = '%i',geld = '%i',job = '%i',alevel = '%i',db_id = '%i',bank = '%i',exp = '%d',geschlecht = '%i',familie = '%i',fraktion = '%i',ZbP = '%i',VIP = '%i',Lotto = '%i',Wanted = '%i',Fische = '%i',Drogen = '%i',Zeit = '%i',iq = '%i' WHERE `id` = %i",
SpielerInfo[playerid][level], //Speichern Level
GetPlayerMoney(playerid), //Speichern Geld
SpielerInfo[playerid][job], //speichern job
SpielerInfo[playerid][alevel], //speichern admin
SpielerInfo[playerid][db_id], //speichern db_id
SpielerInfo[playerid][bank], //speichern bank
SpielerInfo[playerid][exp], //speichern exp
SpielerInfo[playerid][geschlecht],//geschlecht speichern
SpielerInfo[playerid][familie], //familie speichern
SpielerInfo[playerid][fraktion], //fraktion speichern
SpielerInfo[playerid][ZbP], //ZbP speichern
SpielerInfo[playerid][VIP], //VIP speichern
SpielerInfo[playerid][Lotto], //Lotto speichern
SpielerInfo[playerid][Wanted], //Wanted speichern
SpielerInfo[playerid][Fische], //Fische speichern
SpielerInfo[playerid][Drogen], //Drogen speichern
SpielerInfo[playerid][Zeit], //Zeit speichern
SpielerInfo[playerid][iq], //iq speichern
SpielerInfo[playerid][s_id]
);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
Halt das Typische aber es geht ja garnicht um die accounts sondern wie erstelle ich einen neue Zeile in meiner tabelle für meinen Server und wie update ich die.
Dazu kommt der Error denn ich nicht verstehe weil die Zeile von accounts und server sich ähnlich sind und ich da eig nichts vergessen habe.