Hi, ich habe jetzt ein Account system in meinem Gamemode drine.
Man kann sich wenn man keinen Account hat registrieren.
Aber dann wenn man sich eingeloggt hat und dann einmal den Server verlässt, muss man sich immerwieder neu registrieren.
Wie kann das ? Und wie kann ich dieses Problem lösen.
Wer das Problem mal testen will, kann auf unserem Server kommen.
HostName: [G]erman[T]heft[T]eam[D]eathmatch
Address: 84.200.211.212:8888
Players: 0 / 250
Ping: 29
Mode: [Ger/Eng]Counter Strike Source
Map: San Andreas
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Normal solltet ihr prüfen ob die Account Datei vorhanden ist & somit könnt ihr feststellen ob der Spieler bereits einen Account auf eurem Server besitzt
-
Also, ich habe gemacht, das der Dialog bei OnPlayerRequestClass kommt.
Ich habe es so eingestellt, wenn man nicht eingeloggt ist und keinen Account hat kommt der nur um sich zu Registrieren.
Wenn man einen Account hat, und nicht eingeloggt ist kommt der einlogg dialog.
Also soll ich das was bei
OnPlayerConnect steht.
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "%s.ini", plname);
Einfach unter OnPlayerRequest einfügen ?. Oder wie meinst du das ? -
Unter OnPlayerConnect und dort abfragen ob die Datei existiert
if(fexist(string))
je nach dem handeln , Registriert oder nicht Registriert, müsste ,denke ich mal, einleuchten
-
Jop das hab ich ja.
Aber es kommt immernoch.new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "%s.ini", plname);
if(fexist(string))
{
gPlayerAccount[playerid] = 1;
ClearChatbox(playerid, 80);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "...::: Counterstrike Source for SAMP Server :::...");
SendClientMessage(playerid, COLOR_WHITE, " Wir wir sehen hast du berreits einen Account");
SendClientMessage(playerid, COLOR_WHITE, " Trage also bitte deine Passwort in das Fenster ein!");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "...::: Counterstrike Source for SAMP Server :::...");
SendClientMessage(playerid, COLOR_WHITE, " ");
//return 1;
}
else
{
gPlayerAccount[playerid] = 0;
ClearChatbox(playerid, 80);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "...::: Counterstrike Source for SAMP Server :::...");
SendClientMessage(playerid, COLOR_WHITE, " Wir wir sehen hast du keinen Account.");
SendClientMessage(playerid, COLOR_WHITE, " Trage dein Wunsch Passwort bitte in das Fenster ein!");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "...::: Counterstrike Source for SAMP Server :::...");
SendClientMessage(playerid, COLOR_WHITE, " ");
//return 1;
}
So sah das die ganze zeit aus.
Aber dieser text dort kommt immerwieder. -
Wird die Account Datei erstellt ? und wenn , dann nach gleichem Muster ?
-
Meinste sowas ?
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Geld=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
format(var, 32, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
fclose(hFile);
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"Willkommen, %s\nDein Account wurde gefunden, Logge dich nun ein",loginname);
ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Einloggen",loginstring,"Einloggen","Verlassen");
}
}
return 1;
}~ Closed~
Danke an Blackfox.