Buenos dias a toda la comunidad. En mis visitas a los Servidores Mod FenixAO, mas aun en los Mod Gathering que conyeba el sistema de cuentas, encontre un inconveniente en el ingreso al Personaje, algo que ya estaba en la liberacion de las cuentas, no me habia dado cuenta hasta que lo libere pero no tenia el suficiente tiempo para pensar en dicho acto.
Revelo los secretos.
Se ha probado colocando un Text Box y un command botton en el frmCuent, cuando uno ingresa a una cuenta, puede entrar con un Personaje especifico, pero no existia la seguridad por Personaje, solo por Cuenta.
Visto ahi, dentro del Command Botton, colocandole un
Código:
call senndata ("NOMBREPAQUETE" & text1.text
De esta forma, se puede ingresar con cualquier usuario desde un cuenta distinta.
Ahi esta el secreto.
Ahora bien, como les he dicho a los GMs del Servidor Fenius, estoy aportando los codigos para tener la password de la cuenta incorporada al Personaje.
Nota: En los codigos aparecen como la base, luego si ha cambiado el nombre del llamado de los paquetes, deberan ser adaptados por ustedes.
En el Servidor.
Buscamos esto:
Código:
Sub ConnectUser(UserIndex As Integer, Name As String)
Lo reemplazamos por esto:
Código:
Sub ConnectUser(UserIndex As Integer, Name As String, Password As String)
Mas abajo, en este mismo Sub, buscamos esto:
Código:
'¿Existe el personaje?
If FileExist(CharPath & UCase$(Name) & ".chr", vbNormal) = False Then
Call SendData(ToIndex, UserIndex, 0, "ERREl personaje no existe.")
Call CloseSocket(UserIndex)
Exit Sub
End If
Abajo, agregamos esto:
Código:
'¿Es el passwd valido?
If UCase$(Password) <> UCase$(GetVar(CharPath & UCase$(Name) & ".chr", "INIT", "Password")) Then
Call SendData(ToIndex, UserIndex, 0, "ERRPassword incorrecto.")
Call CloseSocket(UserIndex)
Exit Sub
End If
Dentro del
Código:
Sub ConnectNewUser
Buscamos esto:
Código:
UserList(UserIndex).Password =
Cambiamos toda esa linea por esta:
Código:
UserList(UserIndex).Password = UserList(UserIndex).AccountedPass
Mas abajo, buscamos esto:
Código:
Call ConnectUser(UserIndex, Name)
Lo reemplazamos por esto:
Código:
Call ConnectUser(UserIndex, Name, UserList(UserIndex).AccountedPass)
Nota: Este codigo aparece 2 veces, reemplazarlo las mismas veces.
Por ultimo, revisar en el:
Código:
Sub SaveUser(UserIndex As Integer, UserFile As String)
Que se encuentre esta linea:
Código:
Call WriteVar(UserFile, "INIT", "Password", UserList(UserIndex).Password)
Edit 27/07 19:09:
Por si las dudas, agrego esto:
Código:
Call ConnectUser(UserIndex, tName)
Reemplazar por este:
Código:
Call ConnectUser(UserIndex, tName, UserList(UserIndex).AccountedPass)
Esto es todo. Espero que les sirva, desde ya, muchas gracias.
Revelo los secretos.
Se ha probado colocando un Text Box y un command botton en el frmCuent, cuando uno ingresa a una cuenta, puede entrar con un Personaje especifico, pero no existia la seguridad por Personaje, solo por Cuenta.
Visto ahi, dentro del Command Botton, colocandole un
Código:
call senndata ("NOMBREPAQUETE" & text1.text
De esta forma, se puede ingresar con cualquier usuario desde un cuenta distinta.
Ahi esta el secreto.
Ahora bien, como les he dicho a los GMs del Servidor Fenius, estoy aportando los codigos para tener la password de la cuenta incorporada al Personaje.
Nota: En los codigos aparecen como la base, luego si ha cambiado el nombre del llamado de los paquetes, deberan ser adaptados por ustedes.
En el Servidor.
Buscamos esto:
Código:
Sub ConnectUser(UserIndex As Integer, Name As String)
Lo reemplazamos por esto:
Código:
Sub ConnectUser(UserIndex As Integer, Name As String, Password As String)
Mas abajo, en este mismo Sub, buscamos esto:
Código:
'¿Existe el personaje?
If FileExist(CharPath & UCase$(Name) & ".chr", vbNormal) = False Then
Call SendData(ToIndex, UserIndex, 0, "ERREl personaje no existe.")
Call CloseSocket(UserIndex)
Exit Sub
End If
Abajo, agregamos esto:
Código:
'¿Es el passwd valido?
If UCase$(Password) <> UCase$(GetVar(CharPath & UCase$(Name) & ".chr", "INIT", "Password")) Then
Call SendData(ToIndex, UserIndex, 0, "ERRPassword incorrecto.")
Call CloseSocket(UserIndex)
Exit Sub
End If
Dentro del
Código:
Sub ConnectNewUser
Buscamos esto:
Código:
UserList(UserIndex).Password =
Cambiamos toda esa linea por esta:
Código:
UserList(UserIndex).Password = UserList(UserIndex).AccountedPass
Mas abajo, buscamos esto:
Código:
Call ConnectUser(UserIndex, Name)
Lo reemplazamos por esto:
Código:
Call ConnectUser(UserIndex, Name, UserList(UserIndex).AccountedPass)
Nota: Este codigo aparece 2 veces, reemplazarlo las mismas veces.
Por ultimo, revisar en el:
Código:
Sub SaveUser(UserIndex As Integer, UserFile As String)
Que se encuentre esta linea:
Código:
Call WriteVar(UserFile, "INIT", "Password", UserList(UserIndex).Password)
Edit 27/07 19:09:
Por si las dudas, agrego esto:
Código:
Call ConnectUser(UserIndex, tName)
Reemplazar por este:
Código:
Call ConnectUser(UserIndex, tName, UserList(UserIndex).AccountedPass)
Esto es todo. Espero que les sirva, desde ya, muchas gracias.