Universo Games
Ola , Convidado



Você ainda não e cadastrado então cadastre-se e veja todas as atualizações no mundo rpg!!!

Sistema Recuperar Senha

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Tutorial Sistema Recuperar Senha

Mensagem por Lucas Roberto em Seg 13 Set 2010, 18:03

Dificuldade: 2/5 (É necessário saber um pouco de Visual Basic)

~ Primeira Parte (Estética)
- Client-side

Essa parte é muito opcional. Primeiramente, crie um botão (ou uma label) que você queira que o jogador clique para ir ao formulário de "Recuperar Senha". No meu caso, eu coloquei uma lblRecup no frmLogin, deixando assim:Sem Foto~

Agora crie um formulário chamado frmRecuperar; não se preocupe em deixá-lo bonitinho ainda.
Volte para onde você criou a label (ou o botão), dê duplo clique. A janela de código abrirá com o seguinte código:

Código:
Private Sub lblRecup_Click()

End Sub

Acima do End Sub, coloque:
Código:
frmRecuperar.Visible = true

Bom, volte agora para o frmRecuperar, primeiramente deixe bem como você quiser.
É vital você criar duas textboxes (chame uma de txtLoginRec e a outra de txtSecretRec) e um button (btnRecover).
Eu deixei assim:

Ah, não esqueça de fazer um botão de fechar.

Acabou a primeira parte.

~ Parte 2 (Programação)
- Client-side

Vá ao modClientTCP, procure por:

Código:
Sub SendDelAccount(ByVal Name As String, ByVal Password As String)
Dim Packet As String

Packet = "delimaccounted" & SEP_CHAR & Trim(Name) & SEP_CHAR & Trim(Password) & END_CHAR
Call SendData(Packet)
End Sub

Abaixo, adicione:

Código:
Sub SendCodigo(ByVal Name As String, ByVal Codigo As String)
Dim Packet As String

Packet = "sendcodigo" & SEP_CHAR & Trim(Name) & SEP_CHAR & Trim(Codigo) & END_CHAR
Call SendData(Packet)
End Sub

Agora volte ao frmRecuperar, dê double-clique no botão e insira o seguinte código acima do End Sub:

Código:
Call SendCodigo(frmRecuperar.txtLoginRec.Text, frmRecuperar.txtSecretRec.Text)

Bom, essa é a parte Client-side.
Vamos ao server-side.

~ Parte 3 (Programação)
- Server-side

Procure:

Código:
Call ClearPlayer(Index)
FileName = App.Path & "\Contas" & Trim$(Name) & ".ini"
Player(Index).Login = GetVar(FileName, "GENERAL", "Login")
Player(Index).Password = GetVar(FileName, "GENERAL", "Password")
Player(Index).Pet.Alive = NO

Substitua por:

Código:
Call ClearPlayer(Index)
FileName = App.Path & "\Contas" & Trim$(Name) & ".ini"
Player(Index).Login = GetVar(FileName, "GENERAL", "Login")
Player(Index).Password = GetVar(FileName, "GENERAL", "Password")
Player(Index).Codigo = GetVar(FileName, "GENERAL", "Codigo")
Player(Index).Pet.Alive = NO

Procure:

Código:
Sub SavePlayer(ByVal Index As Long)
Dim FileName As String
Dim i As Long
Dim N As Long

FileName = App.Path & "\Contas" & Trim$(Player(Index).Login) & ".ini"
Call PutVar(FileName, "GENERAL", "Login", Trim$(Player(Index).Login))
Call PutVar(FileName, "GENERAL", "Password", Trim$(Player(Index).Password))

Abaixo, adicione:

Código:
Call PutVar(FileName,"GENERAL","Codigo",Trim(Player(Index).Codigo))

Procure:

Código:
Sub AddAccount(ByVal Index As Long, _
ByVal Name As String, _
ByVal Password As String)
Dim i As Long

Player(Index).Login = Name
Player(Index).Password = Password

Substitua por:

Código:
Sub AddAccount(ByVal Index As Long, _
ByVal Name As String, _
ByVal Password As String, _
ByVal Codigo As String)
Dim i As Long

Player(Index).Login = Name
Player(Index).Password = Password
Player(Index).Codigo = Codigo

Procure:

Código:
' Conta
Login As String * NAME_LENGTH
Password As String * NAME_LENGTH

Abaixo, adicione:


Código:
Codigo As String * NAME_LENGTH


Procure:

Código:
Sub ClearPlayer(ByVal Index As Long) 
Dim i As Long 
Dim N As Long 

Player(Index).Login = vbNullString 
Player(Index).Password = vbNullString



Abaixo, adicione:

Código:
Player(Index).Codigo = vbNullString

Procure:


Código:
Sub HandleData(ByVal Index As Long, ByVal Data As String) 
Dim Parse() As String ' MODO DE SEGURANÇA -- "Descomente" para DESLIGÁ-LO, comente para LIGÁ-LO 
Dim Name As String 
Dim Password As String 
Dim Sex As Long 
Dim Class As Long 
Dim CharNum As Long 
Dim Msg As String 
Dim MsgTo As Long 
Dim Dir As Long 
Dim InvNum As Long 
Dim Amount As Long 
Dim Damage As Long 
Dim PointType As Byte 
Dim PointQuant As Integer 
Dim Movement As Long 
Dim i As Long, N As Long, x As Long, y As Long, f As Long 
Dim MapNum As Long 
Dim s As String 
Dim ShopNum As Long, ItemNum As Long 
Dim DurNeeded As Long, GoldNeeded As Long 
Dim z As Long 
Dim Packet As String 
Dim o As Long

Adicione abaixo:

Código:
Dim Codigo As String

Procure:

Código:
Case "logination"

Acima, adicione:

Código:
Case "sendcodigo"

If Not IsLoggedIn(Index) Then
Name = Parse(1)
Codigo = Parse(2)
If Not AccountExist(Name) Then
Call PlainMsg(Index, "Essa conta não existe.", 2)
Exit Sub
End If
If Not CodigoOK(Name, Codigo) Then
Call PlainMsg(Index, "Código incorreto.", 2)
Exit Sub
End If
Call AddLog("Conta " & Trim$(Name) & " teve senha recuperada.", PLAYER_LOG)
Dim FileName As String
FileName = App.Path & "\Contas\" & Name & ".ini"
Password = GetVar(FileName, "GENERAL", "Password")
Call PlainMsg(Index, "Sua senha é " & Password, 2)
End If

Exit Sub

Procure:

Código:
If Not AccountExist(Name) Then
Call AddAccount(Index, Name, Password)
Call TextAdd(frmServer.txtText(0), "Conta " & Name & " foi criada.", True)
Call AddLog("Conta " & Name & " foi criada.", PLAYER_LOG)
Call PlainMsg(Index, "Sua conta foi criada!!", 1)
Else
Call PlainMsg(Index, "Desculpe, essa conta já foi pega!", 1)
End If
End If

Exit Sub
Substitua por:

Código:
If Not AccountExist(Name) Then
Call AddAccount(Index, Name, Password, Codigo)
Call TextAdd(frmServer.txtText(0), "Conta " & Name & " foi criada.", True)
Call AddLog("Account " & Name & " foi criada.", PLAYER_LOG)
Call PlainMsg(Index, "Sua conta foi criada!!", 1)
Else
Call PlainMsg(Index, "Desculpe, essa conta já foi pega!", 1)
End If
End If

Exit Sub

Procure por:

Código:
Function PasswordOK(ByVal Name As String, ByVal Password As String) As Boolean

Acima, adicione:

Código:
Function CodigoOK(ByVal Name As String, ByVal Codigo As String) As Boolean
Dim FileName As String
Dim RightCodigo As String

CodigoOK = False

If AccountExist(Name) Then
FileName = App.Path & "\Contas\" & Trim$(Name) & ".ini"
RightCodigo = GetVar(FileName, "GENERAL", "Codigo")

If UCase$(Trim$(Codigo)) = UCase$(Trim$(RightCodigo)) Then
CodigoOK = True
End If
End If

End Function

Procure por:

Código:
Case "newfaccountied"

If Not IsLoggedIn(Index) Then
Name = Parse(1)
Password = Parse(2)

Abaixo adicione:

Código:
Codigo = Parse(3)

Ufa... terminou o servidor.
Voltemos ao client-side.

Bom, vá ao frmNewAccount, crie uma nova txt com o nome txtCodigoCadastro; coloque uma label dizendo também "Código Secreto". Etc, etc, etc.

Procure:

Código:
Case MENU_STATE_NEWACCOUNT
frmNewAccount.Visible = False
If ConnectToServer = True Then
Call SetStatus("Conectado, enviando informações da nova conta...")
Call SendNewAccount(frmNewAccount.txtName.Text, frmNewAccount.txtPassword.Text)
End If

Substitua por:

Código:
Case MENU_STATE_NEWACCOUNT
frmNewAccount.Visible = False
If ConnectToServer = True Then
Call SetStatus("Conectado, enviando informações da nova conta...")
Call SendNewAccount(frmNewAccount.txtName.Text, frmNewAccount.txtPassword.Text, frmNewAccount.txtCodigoCadastro.Text)
End If

Procure:

Código:
Sub SendNewAccount(ByVal Name As String, ByVal Password As String)
Dim Packet As String

Packet = "newfaccountied" & SEP_CHAR & Trim(Name) & SEP_CHAR & Trim(Password) & END_CHAR
Call SendData(Packet)
End Sub

Substitua por:

Código:
Sub SendNewAccount(ByVal Name As String, ByVal Password As String, ByVal Codigo As String)
Dim Packet As String

Packet = "newfaccountied" & SEP_CHAR & Trim(Name) & SEP_CHAR & Trim(Password) & SEP_CHAR & Trim(Codigo) & END_CHAR
Call SendData(Packet)
End Sub

Procure: (há 3 desses códigos, mas você deve substituir apenas o encontrado no frmNewAccount)

Código:
If Len(Trim(txtName.Text)) < 3 Or Len(Trim(txtPassword.Text)) < 3 Then
MsgBox "Sua conta e senha precisam ser no mínimo de 3 caracteres."
Exit Sub
End If

Substitua por:

Código:
If Len(Trim(txtName.Text)) < 3 Or Len(Trim(txtPassword.Text)) < 3 Or Len(Trim(txtCodigoCadastro.Text)) < 3 Then
MsgBox "Sua conta, senha e código precisam ter no mínimo de 3 caracteres."
Exit Sub
End If

No modClientTCP procure por:

Código:
Sub HandleData(ByVal Data As String) 
Dim Parse() As String 
Dim Name As String 
Dim Password As String

Abaixo, adicione:


Código:
Dim Codigo As String


Créditos: Raijenki


Última edição por Lucas Roberto em Seg 14 Ago 2017, 21:58, editado 1 vez(es)
avatar
Lucas Roberto

Mensagens : 706

http://universogamesmmo.forumeiros.com

Voltar ao Topo Ir em baixo

Tutorial Re: Sistema Recuperar Senha

Mensagem por Thales12 em Ter 14 Set 2010, 12:49

Valews man, vai ajudar mt agente aki
+ 1 Cred
avatar
Thales12

Mensagens : 182

Voltar ao Topo Ir em baixo

Tutorial Re: Sistema Recuperar Senha

Mensagem por Lucas Roberto em Sex 17 Set 2010, 12:14

vlw

esse sistema ajuda mais na parte do adiministrador

Pois nao vai peder tempo de recuperar contas

os jogadores mesmo recupe a sua acc
avatar
Lucas Roberto

Mensagens : 706

http://universogamesmmo.forumeiros.com

Voltar ao Topo Ir em baixo

Tutorial Re: Sistema Recuperar Senha

Mensagem por drayon em Qui 08 Set 2011, 12:07

Lucas Pelo Que Vi Esse Tuto Precisa Do Codigo Secreto

E Ai No Tuto Não Tem :s
avatar
drayon

Mensagens : 7

http://drayon.richard@dce.ufpb.br

Voltar ao Topo Ir em baixo

Tutorial Re: Sistema Recuperar Senha

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum