Szerző Téma: Regisztrációs rendszer hiba  (Megtekintve 993 alkalommal)

Nem elérhető Bazsi

  • 345
    • Profil megtekintése
Regisztrációs rendszer hiba
« Dátum: 2011. December 29. - 03:23:10 »
0
Sziasztok!
Szóval az lenne a problémám, hogy bejelentkezésnél bármit elfogad a regisztrációs rendszerem jelszónak, már próbáltam sok módszert (pl: katt), de egyik sem jó, mindig beenged. :S
A szkript:
[pawn]#include <a_samp>
#include <dini>
#define COLOR_RED       0xAA3333AA
#define COLOR_GREEN    0x33AA33AA
#define COLOR_YELLOW    0xFFFF00AA
#define DIALOG_REGI    1337
#define DIALOG_LOGIN   1338
#define Mappa           \"felhasznalok\"
new fajl[256];
new str[128];
public OnPlayerConnect(playerid)
{
new belep[134];
    SetPVarInt(playerid, \"Bejelentkezve\", 0);
    format(fajl, 256,\"%s/%s.ini\", Mappa, GetPlayerNameEx(playerid));
format(belep, 134, \"%s csatlakozott a szerverre!\", GetPlayerNameEx(playerid));
SendClientMessageToAll(COLOR_GREEN, belep);
    if(!dini_Exists(fajl))
{
    format(str, 128,\"Hello %s!\\nTe még nem regisztráltál!\\nÍrj be egy jelszót!\", GetPlayerNameEx(playerid));
   ShowPlayerDialog(playerid, DIALOG_REGI, DIALOG_STYLE_INPUT,\"Regisztráció\", str,\"Regisztrál\",\"Kilép\");
}
else
{
    format(str, 128,\"Hello %s!\\nEz a név regisztrálva van\\nKérlek jelentkezz be!\", GetPlayerNameEx(playerid));
   ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,\"Belépés\", str, \"Belépés\", \"Kilépés\");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGI)
    {
        if(response)
        {
        if(!inputtext[0] && !strlen(inputtext))
      {
           ShowPlayerDialog(playerid, DIALOG_REGI, DIALOG_STYLE_INPUT,\"Regisztráció\", \"Nem írtál be semmit!\",\"Regisztrál\",\"Kilép\");
      }
      else
      {
          dini_Create(fajl);
         dini_Set(fajl,\"Jelszó\", inputtext);
         dini_IntSet(fajl,\"Regisztrálva\", 1);
         dini_IntSet(fajl,\"Pont\", GetPlayerScore(playerid));
         dini_IntSet(fajl,\"Pénz\", GetPlayerMoney(playerid));
         dini_IntSet(fajl,\"Ölések\", GetPVarInt(playerid, \"Ölések\"));
         dini_IntSet(fajl,\"Halálok\", GetPVarInt(playerid, \"Halálok\"));
         SetPVarInt(playerid, \"Bejelentkezve\", 1);
          SendClientMessage(playerid, 0x33AA33AA, \"Sikeresen Regisztráltál!\");
      }
   }
   else
   {
      Kick(playerid);
   }
}
if(dialogid == DIALOG_LOGIN)
    {
        if(response)
        {
        if(!inputtext[0] && !strlen(inputtext))
      {
           ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,\"Belépés\", \"Nem írtál be semmit!\", \"Belépés\", \"Kilépés\");
      }
      else if(strcmp(inputtext, dini_Get(fajl, \"Jelszó\"), false) != 0)
      {
         SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
         Kick(playerid);
      }
      else
      {
          SetPlayerScore(playerid, dini_Int(fajl, \"Pont\"));
         GivePlayerMoney(playerid, dini_Int(fajl, \"Pénz\"));
         SetPlayerColor(playerid, dini_Int(fajl,\"Szín\"));
         SetPVarInt(playerid, \"Ölések\", dini_Int(fajl,\"Ölések\"));
         SetPVarInt(playerid, \"Halálok\", dini_Int(fajl,\"Halálok\"));
         SetPVarInt(playerid, \"Bejelentkezve\", 1);
         SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen Bejelentkeztél!\");
      }
   }
   else
   {
      Kick(playerid);
   }
}
return 1;
}
stock GetPlayerNameEx(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    return name;
}[/pawn]
Az elõzõ rendszerrel nem volt ilyen baj, de azt nem találom :S
Elõre is köszönöm.
« Utoljára szerkesztve: 2011. December 29. - 03:43:33 írta Bazsi »

Nem elérhető Game94

  • 405
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #1 Dátum: 2011. December 29. - 09:33:37 »
0
Azért nem mûködik, mert loginnál nem nyitod meg a fájlt, hanem csak be akarod tölteni az adatokat.
Egyébként az elején a SetPVarInt fölösleges, mert kilépéskor automatikusan törli az adatokat, szóval ha valaki belép akkor neki alapból 0-a lesz az értéke

Nem elérhető Bazsi

  • 345
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #2 Dátum: 2011. December 29. - 13:37:58 »
0
Idézetet írta: Game94 date=1325147617\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"14869\" data-ipsquote-contentclass=\"forums_Topic
Azért nem mûködik, mert loginnál nem nyitod meg a fájlt, hanem csak be akarod tölteni az adatokat.
Egyébként az elején a SetPVarInt fölösleges, mert kilépéskor automatikusan törli az adatokat, szóval ha valaki belép akkor neki alapból 0-a lesz az értéke
 
A SetPVarInit-benlehet, hogy igazad, van, de nem hiszem, hogy megkéne valahogy nyitni, alapvetõen dini-ben nincs is ilyen...

Nem elérhető Game94

  • 405
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #3 Dátum: 2011. December 29. - 17:30:46 »
0
Bocs, tényleg igazad van :D (nem szoktam fájl alapú mentést használni..)
[pawn]new file[64];
format(file, sizeof(file), \"%s/%s.ini\", Mappa, GetPlayerNameEx(playerid));
if (dini_Exists(file)) {
           if(!strcmp(inputtext, dini_Get(file, \"Jelszó\"), false) {
                                SetPlayerScore(playerid, dini_Int(fajl, \"Pont\"));
         GivePlayerMoney(playerid, dini_Int(fajl, \"Pénz\"));
         SetPlayerColor(playerid, dini_Int(fajl,\"Szín\"));
         SetPVarInt(playerid, \"Ölések\", dini_Int(fajl,\"Ölések\"));
         SetPVarInt(playerid, \"Halálok\", dini_Int(fajl,\"Halálok\"));
         SetPVarInt(playerid, \"Bejelentkezve\", 1);
         SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen Bejelentkeztél!\");
            }
            else{
         SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
         Kick(playerid);
            }
        }
[/pawn]
« Utoljára szerkesztve: 2011. December 29. - 17:35:29 írta Game94 »

Nem elérhető Bazsi

  • 345
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #4 Dátum: 2011. December 29. - 18:09:04 »
0
Nem jó :S

Nem elérhető Game94

  • 405
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #5 Dátum: 2011. December 29. - 18:22:55 »
0
Bocs, megint elrontottam. Én \"file\" változót hoztam létre, de beolvasáskor \"fajl\" volt odaírva.
[pawn]new file[64];
format(file, sizeof(file), \"%s/%s.ini\", Mappa, GetPlayerNameEx(playerid));
if (dini_Exists(file)) {
           if(!strcmp(inputtext, dini_Get(file, \"Jelszó\"), false) {
                                SetPlayerScore(playerid, dini_Int(file, \"Pont\"));
         GivePlayerMoney(playerid, dini_Int(file, \"Pénz\"));
         SetPlayerColor(playerid, dini_Int(file,\"Szín\"));
         SetPVarInt(playerid, \"Ölések\", dini_Int(file,\"Ölések\"));
         SetPVarInt(playerid, \"Halálok\", dini_Int(file,\"Halálok\"));
         SetPVarInt(playerid, \"Bejelentkezve\", 1);
         SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen Bejelentkeztél!\");
            }
            else{
         SendClientMessage(playerid, COLOR_RED, \"Hibás jelszó!\");
         Kick(playerid);
            }
        }
[/pawn]

Nem elérhető Bazsi

  • 345
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #6 Dátum: 2011. December 29. - 18:30:56 »
0
A hiba nekem valószínüleg ebben a sorban van, ezt kéne kijavítani, a többi jó:
 
if(!strcmp(inputtext, dini_Get(file, \"Jelszó\"), false)

Nem elérhető Game94

  • 405
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #7 Dátum: 2011. December 29. - 18:37:38 »
+1
Nem, abban nincs gond.
Próbáld meg úgy hogy a dini_Get(file, \"Jelszó\") helyett dini_Get(file, \"Jelszo\") -t írsz.
Ne legyenek benne ékezetes karakterek.

Nem elérhető Bazsi

  • 345
    • Profil megtekintése
Regisztrációs rendszer hiba
« Válasz #8 Dátum: 2011. December 29. - 19:07:37 »
0
Mûködik, nagyon szépen köszönöm, ment a + ;)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal