Szerző Téma: Regisztráció  (Megtekintve 720 alkalommal)

Regisztráció
« Dátum: 2018. Április 03. - 20:07:35 »
0
Sziasztok, segítségeteket szeretném kérni abban hogy van ez a kis regisztrációs rendszerem és az lenne a probléma , hogy regisztrálok utána eltűnik a dialog és nem történik semmi. A scriptfilesban se hoz létre fájlt.
Kód:
 
 

#define regisztracio 0
#define bejelentkezes 1
new nev[MAX_PLAYER_NAME];
new Belepve[MAX_PLAYERS];
enum JatekosAdatok
{
jOra,
Penz,
}
new PlayerInfo[MAX_PLAYERS][JatekosAdatok];
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
//TogglePlayerSpectating(playerid, true);
new file[256];
GetPlayerName(playerid,nev,sizeof(nev));
format(file,sizeof(file),\"/Felhasznalok/%s.ini\",nev);
new string[256];
if(!fexist(file))
{
    format(string,sizeof string, \"Üdvözöllek a szerveren %s!\\nKérlek regisztrálj!\\n\\nÍrd be a kívánt jelszavadat!\",nev);
    ShowPlayerDialog(playerid,regisztracio,DIALOG_STYLE_INPUT,\"Regisztráció\",string,\"Regisztráció\",\"Kilépés\");
}
if(fexist(file))
{
    format(string,sizeof string, \"Üdvözöllek a szerveren újra %s!\\nKérlek jelentkezz be!\\n\\nÍrd be a jelszavadat!\",nev);
        ShowPlayerDialog(playerid,bejelentkezes,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Belépés\",\"Kilépés\");
}
return 1;
}
 
public OnPlayerDisconnect(playerid, reason)
{
new file[128];
    format(file,sizeof(file),\"/Felhasznalok/%s.ini\",nev);
if(!fexist(file) && Belepve[playerid] == 1)
{
   dini_IntSet(file,\"Jatszott ora\", PlayerInfo[playerid][jOra]);
   dini_IntSet(file,\"Penz\", GetPlayerMoney(playerid));
}
GetPlayerName(playerid,nev,sizeof(nev));
Belepve[playerid] = 0;
PlayerInfo[playerid][jOra] = 0;
PlayerInfo[playerid][Penz] = 0;
printf(\"%s kilépett.\",nev);
return 1;
}
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == regisztracio)
{
    if(response)
    {
        new file[128];
        new string[128];
        GetPlayerName(playerid,nev,sizeof(nev));
      if(strlen(inputtext) < 4)
      {
          format(string,sizeof string, \"Üdvözöllek a szerveren %s!\\nKérlek regisztrálj!\\n\\nÍrd be a kívánt jelszavadat!\",nev);
          ShowPlayerDialog(playerid,regisztracio, DIALOG_STYLE_INPUT, \"Regisztráció\",string,\"Regisztráció\",\"Kilépés\");
          return 0;
      }
      format(file,sizeof(file),\"/Felhasznalok/%s.ini\",nev);
      if(!fexist(file))
      {
             dini_Create(file);
             dini_IntSet(file,\"Antibug\",0);
             dini_IntSet(file,\"Jelszo\",udb_hash(inputtext));
             dini_IntSet(file,\"Jatszott ora\", 0);
             dini_IntSet(file,\"Penz\", 0);
             format(string,sizeof string, \"Üdvözöllek a szerveren újra %s!\\nKérlek jelentkezz be!\\n\\nÍrd be a jelszavadat!\",nev);
             ShowPlayerDialog(playerid,bejelentkezes,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Belépés\",\"Kilépés\");
             PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
             printf(\"%s regisztrált a szerverre!\",nev);
      }
      else
      {
             format(string,sizeof string, \"Üdvözöllek a szerveren %s!\\nKérlek regisztrálj!\\n\\nÍrd be a kívánt jelszavadat!\",nev);
             ShowPlayerDialog(playerid,regisztracio, DIALOG_STYLE_INPUT, \"Regisztráció\",string,\"Regisztráció\",\"Kilépés\");
      }
    }
}
if(dialogid == bejelentkezes)
{
    if(response)
    {
           new file[128];
        new string[128];
        GetPlayerName(playerid,nev,sizeof(nev));
      if(strlen(inputtext) < 4)
      {
          format(string,sizeof string, \"Üdvözöllek a szerveren újra %s!\\nKérlek jelentkezz be!\\n\\nÍrd be a jelszavadat!\",nev);
          ShowPlayerDialog(playerid,bejelentkezes,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Belépés\",\"Kilépés\");
          return 0;
      }
      format(file,sizeof(file),\"/Felhasznalok/%s.ini\",nev);
      if(!fexist(file))
      {
          new jelszo = dini_Int(file,\"Jelszo\");
          if(udb_hash(inputtext) == jelszo)
          {
              Belepve[playerid] = 1;
              ResetPlayerMoney(playerid);
              //GivePlayerMoney(playerid,dini_Int(file,\"Penz\"));
              PlayerInfo[playerid][jOra] = dini_Int(file,\"Jatszott ora\");
              PlayerInfo[playerid][Penz] = dini_Int(file,\"Penz\");
          }
          else
         {
             SendClientMessage(playerid,HIBA,\"Hibás bejelentkezési kísérlet!\");
             printf(\"%s bejelentkezése nem sikerült!\",nev);
             Kick(playerid);
         }
      }
    }
    else
    {
        Kick(playerid);
    }
}
return 1;
}

 
 
« Utoljára szerkesztve: 2018. Április 03. - 20:09:02 írta dawee0101 »

Nem elérhető kos

  • 292
    • Profil megtekintése
Regisztráció
« Válasz #1 Dátum: 2019. Január 03. - 05:28:19 »
0
public OnPlayerRequestClass(playerid, classid)
 
az onplayerconnectnél használd inkább ajánlom, ha nem oldja meg akkor még más dolgokat is kifelejtettél, de ennyiből ez tűnik fel elsőre.
 
 
 
if(strlen(inputtext) < 4)
{
    format(string,sizeof string, \"Üdvözöllek a szerveren újra %s!\\nKérlek jelentkezz be!\\n\\nÍrd be a jelszavadat!\",nev);
    ShowPlayerDialog(playerid,bejelentkezes,DIALOG_STYLE_INPUT,\"Bejelentkezés\",string,\"Belépés\",\"Kilépés\");
    return 0;
}
 
ennek meg semmi értelme... a requ vagy a connectnél már szerepel az ellenőrzés h van e vagy nincs így funkcióját veszti ez.
 
ajánlom a stockolást vagy Public forwardolást ha ennyire szét akarod szedni.
 
valamint strlen hez hasonló függvényeket nem ajánlom h használd a zcmd közben mert a kettő keverése még a profibbakat is megtudja téveszteni néha(persze komolyabb rendszerekben)
 
egy szimpla dialog átlépést ha nézel a wikin, megérted miről beszélek, h mennyivel egyszerűbben meg tudod csinálni.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal