zW1Z4RD Posted May 5, 2020 Share Posted May 5, 2020 É possível eu por para uma pessoa somente conseguir registrar apenas uma conta, sem sim, como faço isso? Link to comment
Other Languages Moderators Lord Henry Posted May 5, 2020 Other Languages Moderators Share Posted May 5, 2020 Sim, é possível. Antes de qualquer coisa, seu painel de login precisa bloquear o comando de /register para evitar que registrem contas fora do painel de login. Senão não vai adiantar nada. Você pode bloquear um comando, cancelando o evento onPlayerCommand. Verifique o exemplo da Wiki. Dai na hora de registrar uma conta nova, passa um loop por todas as contas, obtidas por um getAccounts, verificando se alguma já tem o serial deste jogador nela com getAccountData e getPlayerSerial. Se já tiver, cancela o registro com cancelEvent e manda um feedback pro jogador pedindo pra ele logar na conta existente. Se não tiver nenhuma conta com o serial desse jogador, então registra a conta normalmente com addAccount e atribui o serial deste jogador nessa conta com setAccountData. 1 Link to comment
KronoS Lettify Posted May 5, 2020 Share Posted May 5, 2020 (edited) @zW1Z4RD Na hora do registro você também pode usar a função getAccountsBySerial para obter uma tabela de todas as contas que têm o serial do jogador, e então só criar uma condição antes do registro. local contas = getAccountsBySerial(serial) if (#contas < 1) then -- Aqui o restante do código para continuar com o registro else outputChatBox('Você já tem uma conta registrada, use-a') end Se o jogador não tiver nenhuma conta registrada em seu serial, então ele prosseguirá com o algoritmo. Já se tiver uma ou mais contas já registrada no mesmo serial, o registro não é realizado e é enviado um aviso ao jogador sobre o que aconteceu. Edited May 5, 2020 by KronoS Lettify Indentação corrigida Link to comment
Other Languages Moderators Lord Henry Posted May 6, 2020 Other Languages Moderators Share Posted May 6, 2020 (edited) @KronoS Lettify cuidado. Essa função não determina o real usuário da conta. Somente o serial de quem logou por último nela. This function returns a table containing all accounts that were logged onto from specified serial. If the serial is empty string, it will return all accounts that were never logged onto. Esta função retorna uma tabela contendo todas as contas que foram logadas pelo serial especificado. Se o serial for uma string vazia, essa função retornará todas as contas que nunca foram logadas. Se eu criar uma conta mas não logar nela, ela vai permanecer com esse serial vazio. Então eu fico criando quantas contas eu quiser antes de logar em alguma e burlo o sistema. Ou então eu peço pra algum amigo logar na minha conta, dai o serial registrado na minha conta vai passar a ser o serial dele, permitindo que eu crie outra conta e burle o sistema também. Se o painel usar um accountData definida exclusivamente no momento do registro, então mesmo que ninguém logue na conta ou que outras pessoas loguem na conta, ela vai continuar tendo aquele mesmo serial registrado no accountData, o serial vai sempre ser de quem registrou a conta, impedindo que ele registre outras. Edited May 6, 2020 by Lord Henry Link to comment
KronoS Lettify Posted May 6, 2020 Share Posted May 6, 2020 @Lord Henry Então o programador teria que criar um sistema pra definir e obter esses dados de algum lugar pelo serial do jogador que tá registrando né. Já que é só no registro que esse sistema seria na maioria das vezes usado. Link to comment
Other Languages Moderators Lord Henry Posted May 7, 2020 Other Languages Moderators Share Posted May 7, 2020 (edited) @KronoS Lettify ficou difícil ler sua mensagem, estou usando o Tema Escuro no fórum. Mas sim, por isso que ele define o serial com um setAccountData no momento do registro e somente ali. Edited May 7, 2020 by Lord Henry 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now