Netplay Server 1.0

    Compartilhe
    avatar
    Paulo S.
    Lenda
    Lenda

    Mensagens : 1905
    Créditos : 346

    Netplay Server 1.0

    Mensagem por Paulo S. em Qui Mar 16, 2017 12:14 am

    Introdução
    O servidor desenvolvido pelo SuicideManic em 2006 não possui recursos para sustentar o atual nível dos netplays, por conta disso muitos projetos estão limitados. Trago para vocês um projeto que visa funcionar com total compatibilidade com os Netplays que usam o Netplay C++ Server. Apenas extrair os arquivos dentro da pasta do servidor, mudar uma ou duas linhas e pronto, tudo funcionando.
    É uma ideia bem infantil essa já que manter a compatibilidade afeta significativamente a performance e me fez desenvolver centenas de linhas de código que poderiam nem existir, mas enfim, o projeto foi concluído e teve a primeira versão estável lançada.

    Download
    Netplay Server 1.0
    Netplay Server 0.4
    Netplay Server 0.3

    Características
    - Quase total compatibilidade com o servidor antigo;
    - Suporte a MySql e SQLite;
    - Novos eventos (OnUpdate, OnClose...);
    - Acesso aos recursos disponíveis na plataforma .net através da interface em Lua;
    - Alta escalabilidade;

    Observações
    O servidor antigo também suprimia alguns erros liberados pelo Lua, eu mantive isso nessa versão porém aviso que graças a isso muitos sistemas dos netplays atuais que contém erros e funcionavam agora não funcionam mais. Por exemplo o sistema de Guild do Netplay Master v5 que possui um erro ao trabalhar com arquivos onde mesmo quando o arquivo não existe a stream é fechada (file:close() quando file é nil), esse tipo de erro não afeta o funcionamento do servidor porém não permite que o sistema funcione corretamente.

    Créditos
    - Paulo Soreto


    Última edição por Paulo S. em Seg Mar 27, 2017 3:05 pm, editado 7 vez(es)


    _________________
    avatar
    Valentine
    Administrador
    Administrador

    Medalhas :
    Mensagens : 4543
    Créditos : 940

    Re: Netplay Server 1.0

    Mensagem por Valentine em Qui Mar 16, 2017 8:03 am

    Muito bom, Soveto.

    + 1 crédito.


    _________________
    avatar
    HAWK
    Novato
    Novato

    Mensagens : 2
    Créditos : 0

    Re: Netplay Server 1.0

    Mensagem por HAWK em Qui Mar 16, 2017 8:13 am

    ótima iniciativa, mas vc vê alguma possibilidade de um netplay para o mv?
    avatar
    Paulo S.
    Lenda
    Lenda

    Mensagens : 1905
    Créditos : 346

    Re: Netplay Server 1.0

    Mensagem por Paulo S. em Qui Mar 16, 2017 12:13 pm

    Não, acho improvável que surja nas comunidades brasileiras. Pode até ser que alguém de fora desenvolva mas a comunidade brasileira está praticamente morta quando o assunto são jogos online no RPG Maker.

    Aceito sugestões para as futuras versões. Tenho em mente adicionar suporte a SQLite e MySQL a partir da interface Lua.

    Edit: Novo evento adicionado (OnClose), suporte a SQLite e MySql adicionados.
    Edit²: A interface de trabalho com MySql foi implementada porém ainda não foi testada, por isso seus métodos não constam na documentação. Já a interface para o SQLite apresentou alguns problemas que serão corrigidos na próxima versão.


    _________________
    avatar
    Valentine
    Administrador
    Administrador

    Medalhas :
    Mensagens : 4543
    Créditos : 940

    Re: Netplay Server 1.0

    Mensagem por Valentine em Sab Mar 18, 2017 2:56 pm

    SQLite e Mysql E----e


    _________________
    avatar
    Paulo S.
    Lenda
    Lenda

    Mensagens : 1905
    Créditos : 346

    Re: Netplay Server 1.0

    Mensagem por Paulo S. em Sab Mar 18, 2017 6:01 pm

    Tudo funcionando, só estou trabalhando para dar acesso aos componentes visuais (GUI) do servidor através do Lua.
    Agora o sistema de Login/Registro é feito em Lua, o código servirá de exemplo para quem quiser trabalhar com SQLite.

    Código:
    Account = {}

    ------------------------------------------
    -- Realiza o login com as credenciais.
    ------------------------------------------
    function Account.login(name, password)
        local reader = SQLite:Select(string.format("SELECT name FROM accounts WHERE name = '%s' and password = '%s' LIMIT 1;", name, password))
        if reader:Read() then
            local name = reader:GetString(0)
            SQLite:Execute(string.format("UPDATE accounts SET last_login = '%s' WHERE name = '%s';", os.date('%c'), name))
            NP():SendToUser(user.id, "<7>allow</7>")
        else
            NP():SendToUser(user.id, "<7>wu</7>")
        end
    end
    ------------------------------------------
    -- Registra uma nova conta.
    ------------------------------------------
    function Account.register(username, password, email)
        local reader = SQLite:Select(string.format("SELECT name FROM accounts WHERE name = '%s' LIMIT 1;", name))
        if reader:Read() then
            NP():SendToUser(user.id, "<6>wu</6>")
        else
            local stmt = string.format("INSERT INTO accounts (name, password, email) VALUES ('%s', '%s', '%s');", username, password, email)
            SQLite:Execute(stmt)
            NP():SendToUser(user.id, "<6>success</6>")
        end
    end


    _________________
    avatar
    snaker15
    Semi-Experiente
    Semi-Experiente

    Mensagens : 114
    Créditos : 20

    Re: Netplay Server 1.0

    Mensagem por snaker15 em Dom Mar 19, 2017 1:25 pm

    ele é compativel com netplay crystal? tentei fazer umas gambiarras aqui mas fica dando erro 


    * se possível colocar a opção de auto iniciar ao abrir. 
    * adicionar o recurso de ver os tamanhos dos pacotes (dados enviados e recebidos) igual a versão anterior...
    * adicionar a opção de deixar o servidor em testes (limitar o acesso para admins e gm) 
    * se possivel colocar no mysql os dados dos jogadores... (semelhante ao telam ludus)

    enfim não consegui fazer o treco funcionar no meu projeto mas to achando bem legal essa função de mysql se desenvolvido vai revolucionar os netplays e minimizar os problemas de seguranças e erros. vislumbro até um auto save no próprio espaço mysql
    avatar
    Paulo S.
    Lenda
    Lenda

    Mensagens : 1905
    Créditos : 346

    Re: Netplay Server 1.0

    Mensagem por Paulo S. em Dom Mar 19, 2017 11:55 pm

    Quais erros você teve? Apesar de ter implementado a interface pro MySQL eu não cheguei a testar (foi pura lógica) então caso tenha tentado usar faz sentido ter erros, de qualquer forma reporte aqui no tópico o que encontrou.

    Função de auto iniciar vou por sim, já para limitar somente a jogadores com certo "grupo" da para fazer em Lua.

    Ele é sim compatível com Netplay Crystal, acredito que a versão 0.3 por não possuir o SQLite e MySQL seja mais estável e consequentemente mais compatível do que a 0.4. Apesar de tudo o servidor ainda está em versões de teste e só estará completamente estável a partir da versão 1.0.

    Para atualização do tópico vim informar que corrigi todos os erros do SQLite quando usado pelo Lua, tive que substituir a binding do Lua usada no projeto devido a incompatibilidades com objetos escritos em C#. Ainda não testei o MySQL por que não tive tempo de configurar o mesmo no meu notebook porém farei isso ainda essa semana. Para o próximo fim de semana pretendo lançar a primeira versão estável do servidor, ou seja, a 1.0.

    Quanto a salvar os dados com MySQL (dados do personagem) será possível sim, enquanto desenvolvo o projeto vou testando as funcionalidades em um projeto antigo meu com RMXP (Netplay Plus 1.8) e atualmente tenho no banco de dados SQLite salvo não só as contas de usuário mas os personagens também.

    Edit:
    Tem alguns bugs conhecidos, como ao abrir o servidor (sem iniciar) e fechar da um erro no ambiente Lua, ao obter objeto do tipo Int32 pelo SQLite também da erro. Enfim, são alguns dos que eu e outros encontramos e todos até o momento foram corrigidos e serão publicador futuramente.

    Aquele código publicado no meu último comentário está sendo usado (sem alterações) no meu projeto do RMXP.


    _________________
    avatar
    snaker15
    Semi-Experiente
    Semi-Experiente

    Mensagens : 114
    Créditos : 20

    Re: Netplay Server 1.0

    Mensagem por snaker15 em Seg Mar 20, 2017 11:18 am

    A entendi então foi isso mesmo ele fica dando esse erro...
    #0 << <0> [string "chunk"]:15: attempt to call global 'process' (a nil value)

    e o cliente não conecta... já tentei fazer um load nas funções locais usando o dofile(...)
    mas sem sucesso...

    sugestão nas próximas versões se possível adicionar um cliente mesmo sem nada apenas para efeito de estudos e testes para podermos ver o desempenho do servidor e se possível até um script fazendo essa conexão com mysql e salvando alguns dados no mesmo. Pois como isso é algo novo eu realmente precisaria de uma base pra poder fazer algo a mais apos lançada a versão 1.0
    avatar
    Paulo S.
    Lenda
    Lenda

    Mensagens : 1905
    Créditos : 346

    Re: Netplay Server 1.0

    Mensagem por Paulo S. em Seg Mar 20, 2017 11:31 am

    Ah sim. Isso acontece por causa da função dofile. Tente carregar o arquivo functions.lua da seguinte forma:
    Código:
    require 'Scripts.functions'
    -- ou
    require 'scripts.functions'

    Obrigado pela sugestão, a partir das próximas versões encaminharei um client como exemplo junto ao servidor.


    _________________

      Data/hora atual: Sex Jul 21, 2017 7:41 pm