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