@
IPrototypeI:
Ich verstehe jetzt gar nicht's mehr.
MfG.
Okay nochmal Step by Step:
OnUserSave(playerid){
if(SpielerInfo[playerid][sEingeloggt]==0)return 1;
new query[512];
format(query,sizeof(query),"UPDATE user SET level='%i',bargeld='%d',adminrang='%i' WHERE id='%i'",SpielerInfo[playerid][sLevel],GetPlayerMoney(playerid),SpielerInfo[playerid][sAdminrang],SpielerInfo[playerid][sID]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
kann nur richtig ausgeführt werden(Die Werte speichern) wenn SpielerInfo[playerid][sEingeloggt] den wert 1 besitzt.
Nun stellt sich die Frage wo setzt du diesen Wert überall auf 1 ?
1. Wenn der Spieler sich einloggt mit dem richtigen Passwort
public OnUserPasswortCheck(playerid){
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1){
SpielerInfo[playerid][sEingeloggt]=1;
SpielerInfo[playerid][sLevel]=cache_get_field_content_int(0,"level",dbhandle);
SetPlayerScore(playerid,SpielerInfo[playerid][sLevel]);
SpielerInfo[playerid][sID]=cache_get_field_content_int(0,"id",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"bargeld",dbhandle));
SpielerInfo[playerid][sAdminrang]=cache_get_field_content_int(0,"adminrang",dbhandle);
}else{
ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"Ü{FFFFFF}Einloggen Fortschritt {0000FF}1{FFFFFF}/{FF0000}2","{FFFFFF}Herlich willkommen auf Titan {FFFF00}RolePlay\n{FFFFFF}Es wurde ein Account mit diesm Namen in der Datenbank gefunden.\nDamit du weiet Spielen kannst musst du dich Einloggen.\nUm dich Einzuloggen gebe dein Passwort ein was du bei der Registration Eingetragen hast!\n\nMfG. das Titan RolePlay Admin Team!","Spielen","Beenden");
}
return 1;
}
2. ? Du setzt sonst nirgendwo anders den Wert. Jedoch rufst du den Dialog " DIALOG_REGISTRATION", wenn der Account des Spielers nicht existiert
Nun gut der Spieler gibt nun ein Passwort ein und registriert sich. Es wird ein Eintrag in die Tabelle user eingetragen. Danach kann der Spieler mit 500 Dollar
an dem Punkt 1958.3783, 1343.1572, 15.3746 mit einem CJ Skin spawnen, wenn er auf den Spawnbutton klickt.
Wir halten nochmal zusammen der Spieler verlässt den Server die Funktion OnUserSave wird aufgerufen da SpielerInfo[playerid][sEingeloggt] nicht den Wert 1 hat wird nix gespeichert, da die Funktion direkt durch die if abfrage und dem return 1 abgebrochen wird.
Noch ein Tipp um die ganzen Spielerwerte zu reseten für einen Spieler kannst du eine for-schleife nutzen
for(new i; i != _:SpielerDatei; ++i) SpielerInfo[playerid][SpielerDatei:i] = 0;