Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


5 participantes

    Packets no NP Plus+ [Aula 2]

    RD12
    RD12
    Lenda
    Lenda


    Medalhas : Packets no NP Plus+ [Aula 2] 48080450Packets no NP Plus+ [Aula 2] Trophy11Packets no NP Plus+ [Aula 2] GIueZPackets no NP Plus+ [Aula 2] ZgLkiRU
    Mensagens : 1946
    Créditos : 745

    Packets no NP Plus+ [Aula 2] Empty Packets no NP Plus+ [Aula 2]

    Mensagem por RD12 Sáb Jun 30, 2012 4:21 pm

    Aula 1


    A pedido do leon vou ensinar mais um pouco sobre os packets, e o que você pode fazer com eles.

    Quem leu a primeira aula já deve saber que para enviar um packet global para todos online basta chamar o script:
    Código:
    Network::Main.socket.send("<23> função </23>\n")
    No lugar de Função, você pode por print("mensagem"), por exemplo.(Leia aula1 para saber mais)

    Você pode receber um pacote em um método, como é utlizado no script [ABS] Evento Global do Valentine.

    Nessa aula faremos métodos globais que são executados no computador de todos jogando o jogo, adicionando o nome dos administradores online!

    Primeiro, vamos criar o método:

    Código:
    def admin_on(nome)
    $admins = [] if $admins.nil?#inicia a array, caso seja nula
    #Verifica se o nome já foi adicionado, caso não, adiciona
     if $admins.include?(nome) == false
      $admins.push nome
     end
    end
    O método acima vai adicionar em uma variável o nome dos jogadores Admin, mas como vou fazer isso? Vou criar outro método que verifica se o jogador é Admin e envia um packet chamando o método acima, que adiciona o seu nome na variável.

    Código:
    def add_admin
     if Network::Main.group == 'admin'
      Network::Main.socket.send("<23> admin_on(#{$game_party.actors[0].name})</23>\n")
     end
    end
    Viram que eu posso chamar um método enviando um packet? Desse jeito que eu fiz minha lista de amigos, para o Netplay Master. E o método será executado no jogo de todos, com os parâmetros enviados, no caso o nome do administrador.

    Agora basta chamar esse script: add_admin quando algum jogador entrar, para testar deixe em processo paralelo, e você verá que se for admin, irá adicionar na var $admins o seu nome, no jogo de todos.

    Para verificar os jogadores admin apenas chame o script: print($admins), Você pode até mesmo criar uma window e escrever nela os nomes(como eu fiz na lista de amigos).

    Mas agora, e se o admin sair do jogo? Ele continuará na array '-' então vamos resolver isso.
    Criaremos um método para remover o admin da array.

    Código:
    def remove_admin(nome)
     if $admins.nil? == false #verifica se a var não é nil, para evitar erros
      $admins.delete(nome)
     end
    end

    Agora vamos por para chamar esse método quando o jogo for fechado, então vão no script Network, na linha 700 +/-, procure por esse código:

    Código:
      def self.close_socket
        return if @socket == nil
        @socket.send("<9>#{self.id}</9>\n")

    Pronto! Fizemos um sistema global, bem simples, mas com essa base vocês poderão fazer algo melhor, como lista de jogadores online, ou jogadores em um mapa só, jogadores Vip, Lista de amigos!
    Dúvidas postem abaixo, eu fiz todos os código aqui mesmo e não testei, mas creio que está tudo certo.

    Script Completo:



    Código:
    =begin
    No script Network, na linha 700 +/-, procure por esse código:
     def self.close_socket
        return if @socket == nil

    Em baixo cole esse, ele irá mandar deletar o nome da variável
    quando o admin sair:

    if Network::Main.group == 'admin'
      Network::Main.socket.send("<23> remove_admin(#{$game_party.actors[0].name})</23>\n")
    end

    =end

    #Adiciona o nome do Admin na variável
    def admin_on(nome)
    $admins = [] if $admins.nil?#inicia a array, caso seja nula
    #Verifica se o nome já foi adicionado, caso não, adiciona
     if $admins.include?(nome) == false
      $admins.push nome
     end
    end

    #Verifica se a pessoa é admin e chama o método para adicionar o nome na variável
    def add_admin
    if Network::Main.group == 'admin'
    Network::Main.socket.send("<23> admin_on(#{$game_party.actors[0].name})\n")
    end
    end

    #Remove o nome do Admin da variável
    def remove_admin(nome)
     if $admins.nil? == false #verifica se a var não é nil, para evitar erros
      $admins.delete(nome)
     end
    end

    Créditos: RD12


    Última edição por RD12 em Dom Jul 01, 2012 12:36 pm, editado 1 vez(es)
    Maverick ~
    Maverick ~
    Membro Ativo
    Membro Ativo


    Mensagens : 372
    Créditos : 39

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Maverick ~ Sáb Jun 30, 2012 4:53 pm

    Bem legal suas aulas..
    Graças a outra que fiz o sistema de Mensagem Global.
    Valeu,+1Cred
    Aprendo muito com essas aulas,Breve poste mais,se poder!.


    _________________
    Alguma Duvida!? Me mande uma MP

    Packets no NP Plus+ [Aula 2] BgIconeLivro                 Regras do Fórum


    Packets no NP Plus+ [Aula 2] L4thF
    LeonM²
    LeonM²
    Lenda
    Lenda


    Mensagens : 1802
    Créditos : 153

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por LeonM² Sáb Jun 30, 2012 4:57 pm

    VLW VEI
    Agr posso fazer meus sistemas o/
    +Cred
    Atenciosamente LMM
    Paulo Soreto
    Paulo Soreto
    Lenda
    Lenda


    Mensagens : 1980
    Créditos : 367

    Ficha do personagem
    Nível: 1
    Experiência:
    Packets no NP Plus+ [Aula 2] Left_bar_bleue0/0Packets no NP Plus+ [Aula 2] Empty_bar_bleue  (0/0)
    Vida:
    Packets no NP Plus+ [Aula 2] Left_bar_bleue30/30Packets no NP Plus+ [Aula 2] Empty_bar_bleue  (30/30)

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Paulo Soreto Sáb Jun 30, 2012 7:27 pm

    Legal, gosto dos seus tutoriais porque ajudam muita gente, mas tenho uma dúvida: ao invéz de eu usar uma def "solta", eu não poderia coloca-la em um módulo ou em uma classe e chama-la não?
    +1


    _________________
    Packets no NP Plus+ [Aula 2] FwYnoXI
    RD12
    RD12
    Lenda
    Lenda


    Medalhas : Packets no NP Plus+ [Aula 2] 48080450Packets no NP Plus+ [Aula 2] Trophy11Packets no NP Plus+ [Aula 2] GIueZPackets no NP Plus+ [Aula 2] ZgLkiRU
    Mensagens : 1946
    Créditos : 745

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por RD12 Sáb Jun 30, 2012 7:33 pm

    Obrigado a todos.
    Erak: Sim, claro xD
    Samuka_Maker
    Samuka_Maker
    Aldeia Friend
    Aldeia Friend


    Medalhas : Packets no NP Plus+ [Aula 2] WBLhI
    Mensagens : 1204
    Créditos : 127

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Samuka_Maker Sáb Jun 30, 2012 11:09 pm

    vou ver akie se consigo fazer o sistema q eu queria
    Cara qnd eu chamo o script aparece assim:
    Packets no NP Plus+ [Aula 2] Kkkllln



    _________________

    Life rpg maker, suporte para criacao de jgoos online eoffline, link do forum:(v2.0)
    http://liferpgmakerv2.forumais.com/

    Packets no NP Plus+ [Aula 2] 6f4EA

    Packets no NP Plus+ [Aula 2] Bxvno
    Tópico original/Tópico de Recrutamento
    Maverick ~
    Maverick ~
    Membro Ativo
    Membro Ativo


    Mensagens : 372
    Créditos : 39

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Maverick ~ Sáb Jun 30, 2012 11:47 pm

    Samuka_Maker escreveu:vou ver akie se consigo fazer o sistema q eu queria
    Cara qnd eu chamo o script aparece assim:
    Packets no NP Plus+ [Aula 2] Kkkllln

    Não me lembro,mas parece que não lê os caracteres especiais como "ç" ou "ã"
    não use acentos..


    _________________
    Alguma Duvida!? Me mande uma MP

    Packets no NP Plus+ [Aula 2] BgIconeLivro                 Regras do Fórum


    Packets no NP Plus+ [Aula 2] L4thF
    Samuka_Maker
    Samuka_Maker
    Aldeia Friend
    Aldeia Friend


    Medalhas : Packets no NP Plus+ [Aula 2] WBLhI
    Mensagens : 1204
    Créditos : 127

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Samuka_Maker Dom Jul 01, 2012 12:15 am

    Eu não adicionei nenhum Character Mais eu vejo akie depois qual o erro / Bom tuto RD


    _________________

    Life rpg maker, suporte para criacao de jgoos online eoffline, link do forum:(v2.0)
    http://liferpgmakerv2.forumais.com/

    Packets no NP Plus+ [Aula 2] 6f4EA

    Packets no NP Plus+ [Aula 2] Bxvno
    Tópico original/Tópico de Recrutamento
    Maverick ~
    Maverick ~
    Membro Ativo
    Membro Ativo


    Mensagens : 372
    Créditos : 39

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Maverick ~ Dom Jul 01, 2012 12:21 am

    Pela screen tem algo chamado função..
    deixe só funcao e teste!


    _________________
    Alguma Duvida!? Me mande uma MP

    Packets no NP Plus+ [Aula 2] BgIconeLivro                 Regras do Fórum


    Packets no NP Plus+ [Aula 2] L4thF
    Samuka_Maker
    Samuka_Maker
    Aldeia Friend
    Aldeia Friend


    Medalhas : Packets no NP Plus+ [Aula 2] WBLhI
    Mensagens : 1204
    Créditos : 127

    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Samuka_Maker Dom Jul 01, 2012 12:36 am

    continua dando erro


    _________________

    Life rpg maker, suporte para criacao de jgoos online eoffline, link do forum:(v2.0)
    http://liferpgmakerv2.forumais.com/

    Packets no NP Plus+ [Aula 2] 6f4EA

    Packets no NP Plus+ [Aula 2] Bxvno
    Tópico original/Tópico de Recrutamento

    Conteúdo patrocinado


    Packets no NP Plus+ [Aula 2] Empty Re: Packets no NP Plus+ [Aula 2]

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sáb Nov 23, 2024 12:24 am