[Pomoc] Bug oko Login/Register systema


Započeo Kalaba, Jun 09, 2016, 18:08:16 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:Kucni server
Detaljniji opis problema:Imam Login/Register system i kada udjem ako je vec acc napravljen ukucam sifru ali nece da me spawna samo mi prikaze actora i izbaci mi opet polje da ukucam sifru ukucam ali opet isto ne spawna, odem spawn i spawna me ali nece polje sa sifrom da se makne.Dodao sam /tp komadu i dodao sam nesta u OnDialogResponse ma je mozda tu bug neki...
Neke slike/video za lakse dobivanje pomoci(neobavezno):/
Dio skripte:
public OnPlayerConnect(playerid)
{
   if(fexist(UserPath(playerid)))
   {
       INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid);
      if(PlayerInfo[playerid][pBanned] == 1) return Ban(playerid);
      else
      {
      ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login:","Upisite svoju sifru da bi ste se ulogovali!","Login","Quit");
      }
   }
   else
   {
       ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register:","Registrujte novi nalog, upisite svoju sifru","Register","Quit");
   }
   
   return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
   new INI:File = INI_Open(UserPath(playerid));
   INI_SetTag(File,"data");
   INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Score",GetPlayerScore(playerid));
    INI_WriteInt(File,"Bankmoney",PlayerInfo[playerid][pBankmoney]);
    INI_WriteInt(File,"Banned",PlayerInfo[playerid][pBanned]);
    INI_Close(File);
   return 1;
}

public OnPlayerSpawn(playerid)
{
   PlayerPlaySound(playerid,1186,0,0,0);
        SetPlayerSkin(playerid,285);
   GivePlayerMoney(playerid,0);
   SetPlayerPos(playerid, 1538.31555, -1675.35315, 13.51780);
   SetPlayerFacingAngle(playerid, 0.0);
   SetPlayerInterior(playerid, 0);
   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,"Register:","Sifra je pogresna, ukucajte novu sifru","Register","Quit");
            new INI:File = INI_Open(UserPath(playerid));
            INI_SetTag(File,"data");
            INI_WriteInt(File,"Password",udb_hash(inputtext));
            INI_WriteInt(File,"Cash",0);
            INI_WriteInt(File,"Admin",0);
            INI_WriteInt(File,"Score",0);
            INI_WriteInt(File,"Bankmoney",0);
            INI_WriteInt(File,"Banned",0);
            INI_Close(File);
         }
      }
      case DIALOG_LOGIN:
      {
          if(!response) return Kick(playerid);
          if(response)
          {
              if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
              {
                  INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid);
                  GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
                  SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
               SendClientMessage(playerid,ZELENA,"Uspesno ste se ulogovali!");
            }
            else
            {
                ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login:","Ukucali ste pogresnu sifru","Login","Quit");
            }
         }
      }
   }
   if(dialogid == 1 && response)
   {
       switch(listitem)
       {
           case 0:
           {
                   new vehicleid = GetPlayerVehicleID(playerid);
         new State = GetPlayerState(playerid);
         if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
            {
            LinkVehicleToInterior(vehicleid,0);
            SetPlayerInterior(playerid,0);
            SetVehicleZAngle(vehicleid,180.0);
            SetCameraBehindPlayer(playerid);
            SetVehiclePos(vehicleid,1535.0549, -1671.6112, 13.5153);
            return SendClientMessage(playerid,PLAVA,"Teleportovali ste se do LSPD-a.");
            }
            SetPlayerPos(playerid,1534.85876, -1670.21594, 13.47000);
             SetPlayerInterior(playerid,0);
             SetPlayerFacingAngle(playerid,180.0);
             SetCameraBehindPlayer(playerid);
              return SendClientMessage(playerid,PLAVA,"Teleportovali ste se do LSPD-a.");
         }
              case 1:
           {
                   new vehicleid = GetPlayerVehicleID(playerid);
         new State = GetPlayerState(playerid);
         if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
            {
            LinkVehicleToInterior(vehicleid,0);
            SetPlayerInterior(playerid,0);
            SetVehicleZAngle(vehicleid,0);
            SetCameraBehindPlayer(playerid);
            SetVehiclePos(vehicleid,1185.8232, -1323.2411, 13.7761);
            return SendClientMessage(playerid,CRVENA,"Teleportovali ste se do Bolnice.");
            }
            SetPlayerPos(playerid,1186.08594, -1324.73645, 13.61240);
             SetPlayerInterior(playerid,0);
             SetPlayerFacingAngle(playerid,0);
             SetCameraBehindPlayer(playerid);
              SendClientMessage(playerid,CRVENA,"Teleportovali ste se do Bolnice.");
         }
         case 2:
         {
         new vehicleid = GetPlayerVehicleID(playerid);
         new State = GetPlayerState(playerid);
         if(IsPlayerInAnyVehicle(playerid) && State == PLAYER_STATE_DRIVER)
            {
            LinkVehicleToInterior(vehicleid,0);
            SetPlayerInterior(playerid,0);
            SetVehicleZAngle(vehicleid,270.0);
            SetCameraBehindPlayer(playerid);
            SetVehiclePos(vehicleid,2703.7114, -1926.1508, 13.6972);
            SendClientMessage(playerid,ROZA,"Teleportovali ste se do Ballas-a.");
            }
         SetPlayerPos(playerid,2704.93970, -1925.39844, 13.63030);
             SetPlayerInterior(playerid,0);
             SetPlayerFacingAngle(playerid,270.0);
             SetCameraBehindPlayer(playerid);
              return SendClientMessage(playerid,ROZA,"Teleportovali ste se do Ballas-a.");
              }
      }
   }
   return 1;
}

Ovo sto si poslao sto je u publicu OnPlayerConnect trebalo bi da stavis u public OnPlayerRequestClass
E sada sto se tice toga da kada uneses password pa se nista ne desi pa normalno da se nista nece desiti kada nisi nista ni uradio da se desi :D sem sto mu saljes poruku da se ulogovao i sto mu postavljas novac i level.
case DIALOG_LOGIN:
      {
          if(!response) return Kick(playerid);
          if(response)
          {
              if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
              {
                  INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid);
                  GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
                  SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
               SendClientMessage(playerid,ZELENA,"Uspesno ste se ulogovali!");
            }
            else
            {
                ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login:","Ukucali ste pogresnu sifru","Login","Quit");
            }
         }
      }
   }


Znaci ti ovde kada uneses password nema potrebe pre svega da ponovo ucitavas nalog kada si ga vec ucitao gore kod sifre tj. kada mu stavljas dialog gde unosi sifru sto je ok, tako da pogledaj samo sta ti ovde imas i sta ti fali i eto gde je problem :D treba ti jos SpawnPlayer(playerid);
I molio bih te da kodove iz scripte stavljas u [ pawn ] Text [ /pawn ] (spoj zagrade)

Zamenio sam ali jos uvek ima isti bug....   :(