Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Ainda temos gente aqui?
Aula Avançada 4: Introdução aos sistemas online EmptyQui 25 Nov 2021, 14:04 por Halt

» [Dúvida] Como tirar a porcentagem de esquiva
Aula Avançada 4: Introdução aos sistemas online EmptySex 19 Nov 2021, 17:14 por Halt

» Pokémon Genesis Online! (PGO)
Aula Avançada 4: Introdução aos sistemas online EmptyQua 05 Jul 2017, 18:08 por Lexar

» Tileset Converter to MV
Aula Avançada 4: Introdução aos sistemas online EmptySex 12 maio 2017, 14:07 por Douggi

» Pack Resources, Sprites e etc
Aula Avançada 4: Introdução aos sistemas online EmptyQua 23 Dez 2015, 12:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Aula Avançada 4: Introdução aos sistemas online EmptyTer 22 Dez 2015, 11:14 por ::KimMax::

» Fantasy Art Online
Aula Avançada 4: Introdução aos sistemas online EmptyDom 18 Out 2015, 18:42 por daviih123

» Você vai ter medo do Nerve gear?
Aula Avançada 4: Introdução aos sistemas online EmptySáb 25 Jul 2015, 17:02 por Kirito-kun

» O Barato é louco
Aula Avançada 4: Introdução aos sistemas online EmptySáb 27 Jun 2015, 16:26 por Halt

» Download RPG Maker 2000 + RTP em português
Aula Avançada 4: Introdução aos sistemas online EmptyQui 21 maio 2015, 20:28 por Wismael


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

Halt

Halt
Administrador
Administrador
[Autor: Anderson Porto]
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Introdução
Finalmente estamos chegando nas partes mais esperadas do curso! Posso dizer que agora sim vamos para os conteúdos avançados de RGSS. Hoje começaremos a aprender os segredos por trás dos NPs que tanto usamos, vocês verão que é muito simples criar e alterar comandos dentro de um NP. ATENÇÃO: para simplificar as coisas e para permitir a todos a compreenção do novo X-NP, esta aula será direcionada ao XRGSS, irei mostar detalhes de uso e desenvolvimento!
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
A Base
Como na maioria dos NPs, o X-NP usa para todas as operações de troca de dados com o servidor o modulo Network que nada mais é que um pacote de funções prontas que podem ser utilizadas pelos desenvolvedores, para a troca de dados em especial, usamos um socket, que é o responsável direto pelo funcionamento do NP.
Para você ter uma idéia, no X-NP, são os seguintes scripts os responsáveis pelo funcionamento do próprio:
[NET] Win32 Library
[NET] Winsock
[NET] Socket Library
[NET] TCPSocket
[X-NET] Network
Todos os demais são apenas scripts de funcionalidade, isso não significa que você pode removê-los, apenas saiba que estes são a BASE, o esqueleto de tudo!

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Enviando dados
Todas as funcionalidades do NP são baseadas em Strings, ou seja, todos os comandos nada são além de linhas de texto, mensagens trocadas entre o servidor e os clients. Para distinguir as mensagens, o Network utiliza códigos especiais nas mensagens, todos esses códigos, por padrão, são enviados entre <>, por exemplo, para dizer que o jogador de id 32545 esta desconectando, a mensagem é <9>32545</9>, veja que os <> funcionam como tags html, 9 é o código para desconecção, dentro, apenas a id é o suficiente, isso facilita e muito a vida de todos os programadores e agiliza a troca de dados. SEMPRE que você criar um sistema online, dê preferencia para mensagens curtas, quanto mais compacto, melhor!

Para enviar você mesmo uma mensagem, basta usar:
Network::Main.socket.send("<código>mensagem</código>\n") if $online
É totalmente aconselhável que você use o "if $online", isso porque uma das especialidades do X-NP é rodar On e Offline, só que se você enviar uma mensagem offline da erro e o game fecha! No fim das mensagens sempre use um \n, isso é o mesmo que apertar enter em um texto, ou seja, ele pula uma linha, assim la no servidor, fica uma mensagem por linha e não uma montanha de dados em uma linha só. Todas as mensagens devem ser textos, para mandar variáveis ou switches, use um ".to_s" para converter.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Tipos de código
Segue abaixo a lista completa de mensagens, não as use sem saber exatamente o que você esta fazendo, a mais usada é a 10, essa sim você pode usar bastante, mas as outras tome cuidado ou pode dar pau em seu game!

<0> : serve para a autenticação
<1> : serve para pedir um id de usuário net
<2> : serve para pegar o nome de usuário
<3> : atualmente substituido por "check", serve para pegar o grupo
<5> : envia status do personagem, a posição do mesmo no mapa ou o gold
<6> : mapa que o char se encontra
<9> : fecha a concecção(diz que o personagem saiu)(antes era <4>)
*** <10> : manda comandos como em um chamar script net global, é o mais útil e usável
<11> : para alterar a mensagem do dia
<12a> : manda a id na execução de um trade
<12> : envia itens do trade
<13a> : chama para o private chat (não feche com o </13a>)
<13> : envia uma mensagem no chat privado
<18> : comandos de admin, serve para dar "dc"
<20> : testa a conecção com o servidor
<21a> : mesmo que 13a, porém com 2 parâmetros
<21> : equivalente ao 13 para o 12a
<22a> : verifica se há pms
<22d> : envia pms
<22e> : deleta a lista de pms
<23> : meche nas local switches (pode usar o 10 tb)
<24> : chama o usuário para o trade
<24c> : envia a "trade_id"
<24d> : sai do trade
<25> : chama a função de adicionar item ao trade (envia o id)
<25a> : envia os dados do item adicionado
<25b> : remove um item do trade
<25d> : pede para trocar
<25e> : executa o trade
<25f> : cancela o trade

<reges usuário>senha</reges> : cria uma nova conta com os dados enviados(não é recomendado usar)
<ver> : envia a versão do client
<mod> : pede a mensagem do dia
<login usuário>senha</login> : envia o login do jogador
<err> : envia erros ocorridos (fica salvo em errorlog)
<result_id> : manda a id(para pvp)
<result_effect> : novamente a id? (pvp)
<state> : atualiza o status do personagem (pvp)
<attack_effect> : efeito de dano de ataque (pvp)
<result_effect> : personagem morreu (pvp)
<chat> : mensagens de chat global
<vrS> : salvar as Server Variables
<vrL> : requisitar do servidor as Server Variables
<swS> : salvar as Server Switches
<swL> : carregar do servidor as Server Switches
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Como funciona a conversão de String para código?
Você ja percebeu que todos os conteúdos trocados com o servidor são meros textos, porém esses textos são interpretados pelo Network e convertidos em códigos que são executados em seguida, para localizar essas conversões, procure pelo método update_ingame e analise a conversão de textos para códigos, iremos nos aprofundar mais nisso na próxima aula.

https://arenarpgmaker.forumeiros.com

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos