Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: TONY x poslato Jun 17, 2018, 20:49:10 POSLE PODNE

Naslov: Log/Reg
Poruka od: TONY x poslato Jun 17, 2018, 20:49:10 POSLE PODNE
Problem(error/warning):Nema ih nego se lozinka automatski podesi na 1 kasa se nego registruje i da bi se otkljucao akaunt lozinka je da ostavim prazno i da potvrdim
Dio skripte: Radio sam od 0 i proverio sam na netu,nasa slican,uporedio i nista nisam pronasao kao razlicitost/zamerku;mozda nisam lepo video recite sta treba da posaljem ali pre toga do cega moze biti
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): scriptfiles -> Korisnici ->"Ime" ->Lozinka = 1
Slika/video ingame problema(obavezno ako je ingame problem): //
Naslov: Odg: Log/Reg
Poruka od: omcho poslato Jun 18, 2018, 00:18:00 PRE PODNE
Posalji tamo gde se registrujes ( dialog, ili sta je vec )
Naslov: Odg: Log/Reg
Poruka od: TONY x poslato Jun 18, 2018, 10:52:56 PRE PODNE
Uskoro saljem ceo reg sistem
Naslov: Odg: Log/Reg
Poruka od: TONY x poslato Jun 18, 2018, 12:11:08 POSLE PODNE
[pawn]
#define PATH "/Korisnici/%s.ini"

#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_POL 3
#define DIALOG_GODINE 4
#define DIALOG_DRZAVLJANSTVO 5
#define DIALOG_DOBRODOSLICA 6

enum pInfo
{
   pLozinka,
   pNovac,
   pScore,
   pAdmin,
   pVIP,
   pSankcije,
   pSkin,
   pPol,
   pGodine,
   pDrzavljanstvo,
   pUbistva,
   pSmrti,
   pCombine,
   pResistance
};
new PlayerInfo[MAX_PLAYERS][pInfo];

forward LoadUser_data(playerid,name[],value[]);

stock UserPath(playerid)
{
   new string[128],playername[MAX_PLAYER_NAME];
   GetPlayerName(playerid,playername,sizeof(playername));
   format(string,sizeof(string),PATH,playername);
   return string;
}

public OnPlayerConnect(playerid)
{
   new igraci[50]; format(igraci, sizeof(igraci), PATH, ImeIgraca(playerid));
   TogglePlayerSpectating(playerid, true);
   PlayerInfo[playerid][pNovac] = 0;
   PlayerInfo[playerid][pScore] = 0;
   PlayerInfo[playerid][pAdmin] = 0;
   PlayerInfo[playerid][pVIP] = 0;
   PlayerInfo[playerid][pSankcije] = 0;
   PlayerInfo[playerid][pSkin] = 0;
   PlayerInfo[playerid][pPol] = 0;
   PlayerInfo[playerid][pGodine] = 0;
   PlayerInfo[playerid][pDrzavljanstvo] = 0;
   PlayerInfo[playerid][pUbistva] = 0;
   PlayerInfo[playerid][pSmrti] = 0;
   PlayerInfo[playerid][pCombine] = 0;
   PlayerInfo[playerid][pResistance] = 0;
   if(fexist(UserPath(playerid)))
   {
      INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
      ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""plava"Prijavljivanje",""svetloplava"Ukucajte lozinku da bi se ulogovali","Prijavi se","Izadji");
      logintim[playerid] = SetTimerEx("Login", 60000, false, "i", playerid);
   }
   else
   {
      ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""plava"Registracija",""svetloplava"Ukucajte lozinku da bi se registrovali.","Registruj se","Izadji");
   }
   return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
   new INI:File = INI_Open(UserPath(playerid));
   INI_SetTag(File,"data");
   INI_WriteInt(File,"Novac",GetPlayerMoney(playerid));
   INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
   INI_WriteInt(File,"VIP",PlayerInfo[playerid][pVIP]);
   INI_WriteInt(File,"Sankcije",PlayerInfo[playerid][pSankcije]);
   INI_WriteInt(File,"Skin",GetPlayerSkin(playerid));
   INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
   INI_WriteInt(File,"Pol",PlayerInfo[playerid][pPol]);
   INI_WriteInt(File,"Godine",PlayerInfo[playerid][pGodine]);
   INI_WriteInt(File,"Drzavljanstvo",PlayerInfo[playerid][pDrzavljanstvo]);
   INI_WriteInt(File,"Ubistva",PlayerInfo[playerid][pUbistva]);
   INI_WriteInt(File,"Smrti",PlayerInfo[playerid][pSmrti]);
   INI_WriteInt(File,"Combine",PlayerInfo[playerid][pCombine]);
   INI_WriteInt(File,"Resistance",PlayerInfo[playerid][pResistance]);
   INI_Close(File);
   return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   switch(dialogid)
   {
      case DIALOG_REGISTER:
   {
      if(!response) return Kick(playerid);
      if(response)
      {
         if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registracija","Ukucali ste pogresnu lozinku.\nUkucajte ispravnu lozinku da bi se registrovali.","Registruj se","X");
         SPD(playerid, DIALOG_POL, DIALOG_STYLE_LIST,""plava"Registracija-Pol",""svetloplava"Musko\n"crvena"Zensko","Potvrdi","X");
      }
   }
      case DIALOG_POL:
      {
          if(!response) return Kick(playerid);
         switch(listitem)
         {
            case 0:
            {
               SPD(playerid, DIALOG_DRZAVLJANSTVO, DIALOG_STYLE_LIST,"Iz koje drzave dolazite?","Srbija\nBosna i Hercegovina\nHrvatska\nOstalo(balkan)\nOstalo...","Ulaz","X");
               PlayerInfo[playerid][pPol] = 1;
               SCM(playerid, ZELENA, "Ok,znaci vi ste musko.");
               return 1;
            }
            case 1:
            {
               SPD(playerid, DIALOG_DRZAVLJANSTVO, DIALOG_STYLE_LIST,""plava"Iz koje drzave dolazite?","Srbija\nBosna i Hercegovina\nHrvatska\nOstalo(balkan)\nOstalo...","Ulaz","X");
               PlayerInfo[playerid][pPol] = 2;
               SCM(playerid, ZELENA, "Ok,znaci vi ste zensko.");
               return 1;
            }
         }
      }
      case DIALOG_DRZAVLJANSTVO:
      {
          if(!response) return Kick(playerid);
          switch(listitem)
          {
                 case 0:
              {
                  PlayerInfo[playerid][pDrzavljanstvo] = 1;
                  SCM(playerid, ZELENA, "Ok,znaci vi nam dolazite iz Srbije.");
                  SPD(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT, ""plava"Registracija-Godine","Unesite koliko cete imati godina(u Igri-IG):","Potvrdi","X");
                  return 1;
              }
                   case 1:
              {
                  PlayerInfo[playerid][pDrzavljanstvo] = 2;
                  SCM(playerid, ZELENA, "Ok,znaci vi nam dolazite iz BIH.");
                  SPD(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT, ""plava"Registracija-Godine","Unesite koliko cete imati godina(u Igri-IG):","Potvrdi","X");
                  return 1;
              }
                 case 2:
              {
                  PlayerInfo[playerid][pDrzavljanstvo] = 3;
                  SCM(playerid, ZELENA, "Ok,znaci vi nam dolazite iz Hrvatske.");
                  SPD(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT, ""plava"Registracija-Godine","Unesite koliko cete imati godina(u Igri-IG):","Potvrdi","X");
                  return 1;
              }
                 case 3:
              {
                  PlayerInfo[playerid][pDrzavljanstvo] = 4;
                  SCM(playerid, ZELENA, "Ok,znaci vi nam dolazite iz neke druge zemlje balkana(Makedonija,CG...).");
                  SPD(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT, ""plava"Registracija-Godine","Unesite koliko cete imati godina(u Igri-IG):","Potvrdi","X");
                  return 1;
              }
                 case 4:
              {
                  PlayerInfo[playerid][pDrzavljanstvo] = 5;
                  SCM(playerid, ZELENA, "Ok,znaci vi nam dolazite iz nekog drugog kraja sveta.");
                  SPD(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT, ""plava"Registracija-Godine","Unesite koliko cete imati godina(u Igri-IG):","Potvrdi","X");
                  return 1;
              }
          }
      }
      case DIALOG_GODINE:
      {
          if(!response) return Kick(playerid);
          if(response)
          {
              new godine = strval(inputtext);
              PlayerInfo[playerid][pGodine] = godine;
              if(godine > 50 || godine < 20)
            {
                SCM(playerid, CRVENA, "Godine nesmeju biti vece od 50 niti manje od 20!");
                SPD(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT, ""plava"Registracija-Godine","Unesite koliko cete imati godina(u Igri-IG):","Potvrdi","X");
                return 1;
            }
            SPD(playerid, DIALOG_DOBRODOSLICA, DIALOG_STYLE_MSGBOX, ""plava"Registracija-Kraj,Dobrodoslica",""zelena"Dobrodosli u Grad-17.Dobrodoslicu vam zele Combine i administracija!","Potvrdi","X");
          }
      }
      case DIALOG_DOBRODOSLICA:
      {
          if(!response) return Kick(playerid);
          if(response)
          {
              for(new i;i<120;i++)
              {
                  SCM(playerid,-1,"");
              }
            SCM(playerid, ZELENA, "Pridruzite se Combine-u i patrolisite gradom!Ukoliko niste za njih onda se pridruzite pokretu otpora-Resistance");
            new INI:File = INI_Open(UserPath(playerid));
            INI_SetTag(File,"data");
            INI_WriteInt(File,"Lozinka",udb_hash(inputtext));
            INI_WriteInt(File,"Novac",0);
            INI_WriteInt(File,"Admin",0);
            INI_WriteInt(File,"VIP",0);
            INI_WriteInt(File,"Sankcije",0);
            INI_WriteInt(File,"Skin",0);
            INI_WriteInt(File,"Score",0);
            INI_WriteInt(File,"Pol",0);
            INI_WriteInt(File,"Godine",0);
            INI_WriteInt(File,"Drzavljanstvo",0);
            INI_WriteInt(File,"Ubistva",0);
            INI_WriteInt(File,"Smrti",0);
            INI_WriteInt(File,"Combine",0);
            INI_WriteInt(File,"Resistance",0);
            INI_Close(File);
            TogglePlayerSpectating(playerid, false);
            SetSpawnInfo(playerid, 0, 0, 828.1050,-1368.6373,-0.5015,352.4009, 0, 0, 0, 0, 0, 0);
            SpawnPlayer(playerid);
            if(PlayerInfo[playerid][pPol] == 1) return SetPlayerSkin(playerid, 42);
            else if(PlayerInfo[playerid][pPol] == 2) return SetPlayerSkin(playerid, 41);
          }
      }
      case DIALOG_LOGIN:
      {
         if(!response) return Kick(playerid);
         if(response)
         {
            if(udb_hash(inputtext) == PlayerInfo[playerid][pLozinka])
            {
               INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
               GivePlayerMoney(playerid, PlayerInfo[playerid][pNovac]);
               SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
               SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
               TogglePlayerSpectating(playerid, false);
               SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], 828.1050,-1368.6373,-0.5015,352.4009, 0, 0, 0, 0, 0, 0);
               SpawnPlayer(playerid);
               KillTimer(logintim[playerid]);
            }
            else
            {
               ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""plava"Prijavljivanje",""svetloplava"Ukucali ste pogresnu lozinku!\n"crvena"Ukucajte tacnu lozinku da bi se ulogovali.","Prijavi se","Izadji");
            }
            return 1;
         }
      }
   }
   return 1;
}

public LoadUser_data(playerid,name[],value[])
{
   INI_Int("Lozinka",PlayerInfo[playerid][pLozinka]);
   INI_Int("Novac",PlayerInfo[playerid][pNovac]);
   INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
   INI_Int("VIP",PlayerInfo[playerid][pVIP]);
   INI_Int("Sankcije",PlayerInfo[playerid][pSankcije]);
   INI_Int("Skin",PlayerInfo[playerid][pSkin]);
   INI_Int("Score",PlayerInfo[playerid][pScore]);
   INI_Int("Pol",PlayerInfo[playerid][pPol]);
   INI_Int("Godine",PlayerInfo[playerid][pGodine]);
   INI_Int("Drzavljanstvo",PlayerInfo[playerid][pDrzavljanstvo]);
   INI_Int("Ubistva",PlayerInfo[playerid][pUbistva]);
   INI_Int("Smrti",PlayerInfo[playerid][pSmrti]);
   INI_Int("Combine",PlayerInfo[playerid][pCombine]);
   INI_Int("Resistance",PlayerInfo[playerid][pResistance]);
   return 1;
}
[/pawn]
Naslov: Odg: Log/Reg
Poruka od: omcho poslato Jun 18, 2018, 16:57:42 POSLE PODNE
Ugl kad ukuca PW tj taj text treba ovako da ti izgleda ako koristis ovaj hash

[pawn]
PlayerInfo[playerid][pLozinka] = udb_hash(inputtext);
[/pawn]

trebao bi ovako da odradis
[pawn]
if(strlen(inputtext) < 6 || strlen(inputtext) > 12)
{
     ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registracija","Ukucali ste pogresnu lozinku.\nUkucajte ispravnu       lozinku da bi se registrovali.","Registruj se","X");
}
PlayerInfo[playerid][pLozinka] = udb_hash(inputtext);
SPD(playerid, DIALOG_POL, DIALOG_STYLE_LIST,""plava"Registracija-Pol",""svetloplava"Musko\n"crvena"Zensko","Potvrdi","X");
SCM(playerid, -1, "U redu, vasa lozinka je upisana u bazu. Da li ste musko ili zensko?");
// i sta vec ovde jos upisuejs tipa // SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
[/pawn]

I onda pod login provera dal je tacan PW
[pawn]
if((udb_hash(inputtext) == PlayerInfo[playerid][pLozinka]) && !isnull( inputtext ))
[/pawn]

Edit po 15 put ugl gore pod inputtext veci od 6 ili 12 sam ja stavio ti mozes staviti tipa 16 al ne preprocujem ti vise od toga tj nzm sta ce ti vise od toga
Naslov: Odg: Log/Reg
Poruka od: Salesman poslato Jun 18, 2018, 17:11:02 POSLE PODNE
Citat: omcho poslato Jun 18, 2018, 16:57:42 POSLE PODNE
Ugl kad ukuca PW tj taj text treba ovako da ti izgleda ako koristis ovaj hash

[pawn]
PlayerInfo[playerid][pLozinka] = udb_hash(inputtext);
[/pawn]

trebao bi ovako da odradis
[pawn]
if(strlen(inputtext) < 6 || strlen(inputtext) > 12)
{
     ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registracija","Ukucali ste pogresnu lozinku.\nUkucajte ispravnu       lozinku da bi se registrovali.","Registruj se","X");
}
PlayerInfo[playerid][pLozinka] = udb_hash(inputtext);
SPD(playerid, DIALOG_POL, DIALOG_STYLE_LIST,""plava"Registracija-Pol",""svetloplava"Musko\n"crvena"Zensko","Potvrdi","X");
SCM(playerid, -1, "U redu, vasa lozinka je upisana u bazu. Da li ste musko ili zensko?");
// i sta vec ovde jos upisuejs tipa // SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
[/pawn]

I onda pod login provera dal je tacan PW
[pawn]
if((udb_hash(inputtext) == PlayerInfo[playerid][pLozinka]) && !isnull( inputtext ))
[/pawn]

Edit po 15 put ugl gore pod inputtext veci od 6 ili 12 sam ja stavio ti mozes staviti tipa 16 al ne preprocujem ti vise od toga tj nzm sta ce ti vise od toga

Stavi srlen najveci do 24 jer poslije toga pada skripta zbog poznatog dialog buga :)
Naslov: Odg: Log/Reg
Poruka od: omcho poslato Jun 18, 2018, 17:17:57 POSLE PODNE
Citat: Coox poslato Jun 18, 2018, 17:11:02 POSLE PODNE
Stavi srlen najveci do 24 jer poslije toga pada skripta zbog poznatog dialog buga :)
Ma ono sta ce mu 24 za password nmp ja sam stavio 12 tako da ono mozes staviti i 24 ja sam dao predlog samo :)

Ugl ako ti radi Tony zakljucaj temu i stavi reseno kao prefix ako ne mozes ti stavice neki moderator ako ne radi napisi sta ne radi ce fixamo
Naslov: Odg: Log/Reg
Poruka od: TONY x poslato Jun 19, 2018, 18:16:46 POSLE PODNE
Stavio sam
[pawn]PlayerInfo[playerid][pLozinka] = udb_hash(inputtext);[/pawn]
u ondialogresponse pod dialog register i nece opet 1 ispisuje
Naslov: Odg: Log/Reg
Poruka od: omcho poslato Jun 19, 2018, 23:18:28 POSLE PODNE
Citat: TONY x poslato Jun 19, 2018, 18:16:46 POSLE PODNE
Stavio sam
[pawn]PlayerInfo[playerid][pLozinka] = udb_hash(inputtext);[/pawn]
u ondialogresponse pod dialog register i nece opet 1 ispisuje
Ovako? I dodaj tu sta ti jos pise tj sta imas
[pawn]
new INI:File = INI_Open(UserPath(playerid));
INI_WriteInt(File, "Lozinka", udb_hash(inputtext));
INI_Close(File);
[/pawn]