Edol
Jestem Jednym z Was
Wiek: 31 Na forum: 5255 dni Posty: 15
Nick w MP: Edol
Piwa : 158
Witam mam system rejestracji z poradnika z tego forum lecz dzia?a ale nie tak jak powinien mianowicie wpisuje byle jakie haslo i loguje mnie i nie zapisuje dodaje punktow score ani kasy .
Edit : Poprawiony kod ale nadal nie dziala
Kod: #include <a_samp>
#include <Double-O-files>
#define GUI_LOGIN 1
#define GUI_REGISTER 2
enum PlayerInfoEnum
{
score,
kasa
}
new PlayerInfo[MAX_PLAYERS][PlayerInfoEnum];
public OnPlayerConnect(playerid)
{
new strS[45];//tablica do kt?rej przypiszemy prawdopodobn? nazw? pliku gracza.</span>
format(strS, sizeof(strS), "%s.ini",Nick(playerid)); //Pobieramy i przypisujemy nick
if(DOF_FileExists(strS)) //sprawdzamy czy taki plik istnieje
{//je?eli tak pokazujemy GUI od logowania
ShowPlayerDialog(playerid, GUI_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", "Wpisz poni?ej has?o jakie poda?e? przy rejestracji:", "Zaloguj", "Wyjd?");
}
else
{//je?eli nie pokazujemy GUI od rejestracji
ShowPlayerDialog(playerid, GUI_REGISTER, DIALOG_STYLE_PASSWORD, "Rejestracja", "Wybierz has?o jakiego b?dziesz u?ywa? podczas gry:", "Rejestruj", "Wyjd?");
}
return 1;
}
public OnGameModeInit()
{
DOF_Exit();
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
PlayerInfo[playerid][score]=GetPlayerScore(playerid); //przypisujemy do zmiennej score</span>
PlayerInfo[playerid][kasa]=GetPlayerMoney(playerid); //przypisujemy do zmiennej kas?
new file[128]; //tablica to do kt?rej przypiszemy nick gracza
format(file,sizeof(file),"%s.ini",Nick(playerid)); //robimy nazw? pliku gracza
DOF_SetInt(file, "score", PlayerInfo[playerid][score]); //wpisujemy do w/w pliku warto?? zmiennej
DOF_SetInt(file, "kasa", PlayerInfo[playerid][kasa]); //jak wy?ej
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == GUI_LOGIN) //warunek GUI od logowanie</span>
{
if(response) //czy wcisn?? lewy button
{
if(!isnull(inputtext)) //czy cokolwiek wpisa? w polu GUI
{
new file[128]; //tablica
format(file,sizeof(file),"%s.ini",Nick(playerid)); //przypisujemy do tablicy jak ma wygl?da? plik gracza
if(strcmp(inputtext, DOF_GetString(file, "Haslo"), false) != 0)//sprawdzamy czy has?o podane w GUI i has?o z pliku s? takie same
{//je?eli nie wy?witlamy znowu GUI
ShowPlayerDialog(playerid, GUI_LOGIN, DIALOG_STYLE_PASSWORD, "logowanie", "Podane has?o jest nie prawid?owe!\n\n\nWpisz poni?ej has?o jakie poda?e? przy rejestracji:", "Zaloguj", "Wyjd?");
}
else
{//je?eli tak:
PlayerInfo[playerid][score]=DOF_GetInt(file, "score"); //przypisujemy do zmiennej score jakie gracz posiada
PlayerInfo[playerid][kasa]=DOF_GetInt(file, "kasa"); //tutaj przypisujemy kas? gracza
SetPlayerScore(playerid, PlayerInfo[playerid][score]); //Dajemy w/w score
SetPlayerMoney(playerid, PlayerInfo[playerid][kasa]); //Dajemy w/w kas?
SendClientMessage(playerid, 0x00FF00, "Poprawnie si? zalogowa?e?!"); //wysy?amy wiadomo??
}
}
else
{//je?eli nic nie wpisa? znowu GUI pokazujemy
ShowPlayerDialog(playerid, GUI_LOGIN,DIALOG_STYLE_PASSWORD, "Logowanie", "Nic nie wpisa?e?!\n\n\nWybierz has?o jakie u?y?e? podczas rejestracji:", "Zaloguj", "Wyjd?");
}
}
else
{//je?eli wcisn?? prawy button kickujemy gracza
Kick(playerid);
}
}
if(dialogid == GUI_REGISTER)//warunek GUI od rejestracji</span>
{
if(response) //czy wcisn?? lewy button
{
if(!isnull(inputtext)) //czy cokolwiek wpisa? w polu GUI
{
if(strlen(inputtext)<5||strlen(inputtext)>15) //czy poodany tekst jest d?u?szy od 5 a kr?tszy od 15
{//je?elu nie pokazujemy GUI
ShowPlayerDialog(playerid, GUI_REGISTER,DIALOG_STYLE_PASSWORD, "Rejestracja", "Has?o jest za kr?tkie lub za d?ugie!\nPowino sk?adac si? od 4 do 14 znak?w!\n\n\nWybierz has?o jakiego b?dziesz u?ywa? podczas gry:", "Rejestruj", "Wyjd?");
return 1;
}
new file[128]; //tablica
format(file,sizeof(file),"%s.ini",Nick(playerid)); //jak ma wygl?da? plik gracza
DOF_CreateFile(file); //tworzymy plik
DOF_SetString(file, "haslo", inputtext); //wpisujemy do niego has?o gracz
DOF_SetInt(file, "kasa", 0); //wpisujemy ?e ma 0 kasy
DOF_SetInt(file, "score", 0); //wpisujemy ?e ma 0 score
PlayerInfo[playerid][score]=0; //przypisujemy mu 0 score
PlayerInfo[playerid][kasa]=0; //oraz przypisujemy 0 kasy
}
else if(isnull(inputtext)) //je?eli nic nie wpisa?
{//pokazujemy znowu GUI
ShowPlayerDialog(playerid, GUI_REGISTER,DIALOG_STYLE_PASSWORD, "Rejestracja", "Nic nie wpisa?e?!\n\n\nWybierz has?o jakiego b?dziesz u?ywa? podczas gry:", "Rejestruj", "Wyjd?");
}
}
else
{//je?eli wcisn?? prawy button pokazujemy GUI
Kick(playerid);
}
}
return 1;
}
stock Nick(playerid)//zwraca nick</span>
{
new nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, nick, sizeof(nick));
return nick;
}
Ostatnio zmieniony przez Edol 2012-07-17, 21:24, w całości zmieniany 2 razy