[Ajuda] Botгo "SPAWN" aparece ao errar senha login [Y_ini]
#1

Saudaзхes,
Comecei a aprender pawn a 2 dias atrбs e quis comeзar aprendendo a fazer um sistema de login.
Achei um vнdeo gringo (lнngua estranha) que ensinava a fazer o sistema em Y_ini (soube que й muito bom).
O problema й que ao errar a senha o botгo "SPAWN" aparece, e mesmo com o DIALOG aberto, caso vocк clique no botгo "SPAWN" o personagem da SPAWN!!!
Alguйm sabe solucionar este erro? Creio que seja simples.
Aqui vai o vнdeo que vi, ele mesmo mostra o sistema funcionando, aos 32:48 ele erra a senha propositalmente e veja sу o botгo "SPAWN" lб.
https://*********/dymEZTaAS9M?t=32m48s

Aqui vai a GM com o sistema de login deste vнdeo:
http://pastebin.com/eV2dQUtx

Muito obrigado pela atenзгo e suporte.
Reply
#2

Use isso:
https://sampwiki.blast.hk/wiki/TogglePlayerSpectating

Assim que o jogador estб conectar. Farб com que esses botхes nгo apareзam.
Reply
#3

Sу pra complementar, assim que o cara logar, nгo esqueзa de usar TogglePlayerSpectating(playerid, 0). quando o cara estiver conectado e spawnado.
Reply
#4

Quote:
Originally Posted by Kamper
Посмотреть сообщение
Use isso:
https://sampwiki.blast.hk/wiki/TogglePlayerSpectating

Assim que o jogador estб conectar. Farб com que esses botхes nгo apareзam.
A primeira instвncia deu certo, contudo, apуs vocк acertar a senha (depois de errar pelo menos 1x) ele nгo aparece os botхes SPAWN ou te spawna automaticamente.

Pensando nisso tive a ideia de mandar essa TogglePlayerSpectating desativar caso ele acerte a senha. Veja a print:



Atй funcionou, mas ele estб me kickando. Spawna automaticamente e й kickado, veja:
http://i.imgur.com/H55bS2a.png

Parte do cуdigo printado:
Код:
...
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,-1,"You've succsessfully logged in your account!");
                    TogglePlayerSpectating(playerid, 0);
                }
                else
                {
                    TogglePlayerSpectating(playerid, 1);
                    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login:","Password INCORRET, type again!","Login","Quit");
                }
            }
        }
    }
    return 1;
}
Reply
#5

Tem que fazer isso antes da funзгo SpawnPlayer
Reply
#6

Onde seria isso? Coloquei logo depois de:
Код:
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
Mas tambйm nгo de certo. Se quiser dar uma olhada na GM, estб lб no topo.

Muito obrigado pela atenзгo, espero que possa solucionar o problema.
Reply
#7

Achei a soluзгo!
Nesse tуpico gringo eles dizem que й algo talvez pra previnir cheater. Como vocк cancelou o local de spawn com o Toggle antes, ao logar, ele nгo sabe o local de spawn e te kicka.
Ai tive que usar SetSpawnInfo antes do Toggle.
Funcionou, mas e se o jogador for de uma classe, como ele vai saber qual classe й a do jogador?

Tуpico: https://sampforum.blast.hk/showthread.php?tid=533508
Reply
#8

Putz consegui!
De vez SetSpawnInfo, usei SpawnPlayer(playerid);
Perfeito. Obrigado a todos pela atenзгo.

Pra quem futuramente estiver com este problema e quiser saber como ficou a GM:
http://pastebin.com/Pyk8tViD

Abraзo.
Reply


Forum Jump:


Users browsing this thread: