Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Verificação da versão do cliente
2 participantes
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 1
Verificação da versão do cliente
I. Introdução
Esse é apenas um pequeno sistema que permite ao servidor desconectar o cliente que não esteja usando a versão atual do jogo. Esse sistema também pode ser usado para evitar que outras versões do netplay se conectem ao seu servidor.
Vale lembrar que, esse sistema depende dos demais sistemas de segurança para funcionar corretamente. Caso seu jogo seja destravado, a eficacia desse sistema cai por terra. Além disso o sistema impede apenas que clientes que se utilizam dos Netplays de se conectar ao servidor, outros programas podem não ser bloqueados.
A principal vantagem de se utilizar esse método, é que a verificação é feita pelo servidor e não pelo cliente.
II. Compatibilidade
O procedimento é valido para qualquer o Master 4.0.7 ou versões anteriores, para o Netplay Cristal ou qualquer outro netplay que seja baseado no antigo Netplay Plus e que tenha mantido o mesmo servidor e métodos de autenticação.
Em todos os casos, o procedimento de instalação é o mesmo, assim como os comandos.
III. Instalação no cliente
Primeiramente em seu neyplay, vá nos scripts e busque pelo que esta nomeado como Network. Dependendo da sua versão pode haver pequenas diferenças de nomenclatura. Nele você deve busca o comando que contem o seguinte:
IV. Instalação no servidor
Para realizar a instalação do script no servidor, você deve primeiramente se certifica que o mesmo esta fechado. Depois disso, dentro das pastas do mesmo ache a pasta Scripts e dentro dela abra o arquivo: functions.lua
Se você não tiver nenhum programa para ler esse formato, apenas arraste o arquivo para dentro de um bloco de notas.
Com o arquivo functions aberto, procure pelos seguintes códigos:
V. Utilização
Com esse sistema o servidor irá verificar se o cliente esta com a mesma versão que o servidor na hora que ele cria a conexão com o mesmo.
Para isso, é verificado pelo servidor, se o valor da variável VERSION que fica no User Edits está igual ao nome atual do servidor. Caso isso seja verdade, o cliente continua conectado normalmente, do contrario ele é desconectado imediatamente.
Recomendo fortemente que, junto a versão atual do seu jogo, você adicione uma senha para identificar o seu jogo (VERSION = 'HgRR22s_1.0'). Assim apenas os clientes que tiverem a senha e que estiverem com a versão correta, podem jogar. Não esqueça que o nome do servidor deve ser exatamente igual ao que esta na variável VERSION (Nesse caso seria: HgRR22s_1.0)
VI. Resposta do cliente
Esse script ainda não exibe nenhum tipo de mensagem informando que o cliente esta desatualizado. O que acontece caso você esteja usando uma versão não atual vai depender muito do netplay utilizado. Por exemplo, no NPM será exibido uma mensagem de não autenticado, já o NPC deve travar e exibir a mensagem: Script is Hanging.
É provável que futuramente eu faça algum tipo de mensagem de aviso, mas por hora isso fica a cargo dos utilizadores.
VII. Créditos
Gladistony Silva - Criador
Esse é apenas um pequeno sistema que permite ao servidor desconectar o cliente que não esteja usando a versão atual do jogo. Esse sistema também pode ser usado para evitar que outras versões do netplay se conectem ao seu servidor.
Vale lembrar que, esse sistema depende dos demais sistemas de segurança para funcionar corretamente. Caso seu jogo seja destravado, a eficacia desse sistema cai por terra. Além disso o sistema impede apenas que clientes que se utilizam dos Netplays de se conectar ao servidor, outros programas podem não ser bloqueados.
A principal vantagem de se utilizar esse método, é que a verificação é feita pelo servidor e não pelo cliente.
II. Compatibilidade
O procedimento é valido para qualquer o Master 4.0.7 ou versões anteriores, para o Netplay Cristal ou qualquer outro netplay que seja baseado no antigo Netplay Plus e que tenha mantido o mesmo servidor e métodos de autenticação.
Em todos os casos, o procedimento de instalação é o mesmo, assim como os comandos.
III. Instalação no cliente
Primeiramente em seu neyplay, vá nos scripts e busque pelo que esta nomeado como Network. Dependendo da sua versão pode haver pequenas diferenças de nomenclatura. Nele você deve busca o comando que contem o seguinte:
- Código:
@socket.send("<0>'e'</0>/n")
- Código:
@socket.send("<0>#{User_Edit::VERSION.to_s}</0>\n")
- Código:
module User_Edit
- Código:
#---------------------Client------------------------------------
VERSION = 0.1
#---------------------------------------------------------------
IV. Instalação no servidor
Para realizar a instalação do script no servidor, você deve primeiramente se certifica que o mesmo esta fechado. Depois disso, dentro das pastas do mesmo ache a pasta Scripts e dentro dela abra o arquivo: functions.lua
Se você não tiver nenhum programa para ler esse formato, apenas arraste o arquivo para dentro de um bloco de notas.
Com o arquivo functions aberto, procure pelos seguintes códigos:
- Código:
elseif cmd == "<0>" then
do local sname = NP():GetServerName()
NP():SendToUser(user.id,"<0 "..user.id..">'e' n="..sname.."</0>") end
- Código:
elseif cmd == "<0>" then
do
local sname = NP():GetServerName()
local ndata = string.gsub(data,"<0>","")
ndata = string.gsub(ndata,"</0>","")
if ndata ~= sname then
NP():CloseSocket(user.ip)
else
NP():SendToUser(user.id,"<0 "..user.id..">'e' n="..sname.."</0>")
end
end
V. Utilização
Com esse sistema o servidor irá verificar se o cliente esta com a mesma versão que o servidor na hora que ele cria a conexão com o mesmo.
Para isso, é verificado pelo servidor, se o valor da variável VERSION que fica no User Edits está igual ao nome atual do servidor. Caso isso seja verdade, o cliente continua conectado normalmente, do contrario ele é desconectado imediatamente.
Recomendo fortemente que, junto a versão atual do seu jogo, você adicione uma senha para identificar o seu jogo (VERSION = 'HgRR22s_1.0'). Assim apenas os clientes que tiverem a senha e que estiverem com a versão correta, podem jogar. Não esqueça que o nome do servidor deve ser exatamente igual ao que esta na variável VERSION (Nesse caso seria: HgRR22s_1.0)
VI. Resposta do cliente
Esse script ainda não exibe nenhum tipo de mensagem informando que o cliente esta desatualizado. O que acontece caso você esteja usando uma versão não atual vai depender muito do netplay utilizado. Por exemplo, no NPM será exibido uma mensagem de não autenticado, já o NPC deve travar e exibir a mensagem: Script is Hanging.
É provável que futuramente eu faça algum tipo de mensagem de aviso, mas por hora isso fica a cargo dos utilizadores.
VII. Créditos
Gladistony Silva - Criador
_________________
Re: Verificação da versão do cliente
Muito bom gladistony, parabéns.
+ 1 crédito
É uma pena que não dê pra fazer a condição:
+ 1 crédito
É uma pena que não dê pra fazer a condição:
- Código:
if user.group == "admin" then
Re: Verificação da versão do cliente
Você já tentou em vez de usar o user.group, usar o user.profile? porque no script do servidor lá esta assim:
- Código:
if user.profile == nil then
do NP():SendToUser(user.id,"<3>'standard'</3>") end
else
do NP():SendToUser(user.id,"<3>"..user.profile.."</3>") end
end
_________________
Re: Verificação da versão do cliente
Também não funciona. O cliente envia a tag < check > e recebe a mesma tag do servidor, no entanto, não há essa parte no functions.lua, o que impossibilita saber que código foi usado pra retornar o grupo.gladistony escreveu:Você já tentou em vez de usar o user.group, usar o user.profile? porque no script do servidor lá esta assim:
- Código:
if user.profile == nil then
do NP():SendToUser(user.id,"<3>'standard'</3>") end
else
do NP():SendToUser(user.id,"<3>"..user.profile.."</3>") end
end
Tópicos semelhantes
» Enviando versão do cliente ao registrar
» Cliente verificar versão antes de logar...
» pedido (verificação de coordenada)
» [PEDIDO] - Sistema de verificação de grupo
» Cliente sem DirectX
» Cliente verificar versão antes de logar...
» pedido (verificação de coordenada)
» [PEDIDO] - Sistema de verificação de grupo
» Cliente sem DirectX
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos