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!
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!
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("mensagem\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.
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
senha : cria uma nova conta com os dados enviados(não é recomendado usar)
: envia a versão do client
: pede a mensagem do dia
senha : envia o login do jogador
: envia erros ocorridos (fica salvo em errorlog)
: manda a id(para pvp)
: novamente a id? (pvp)
: atualiza o status do personagem (pvp)
: efeito de dano de ataque (pvp)
: personagem morreu (pvp)
: mensagens de chat global
: salvar as Server Variables
: requisitar do servidor as Server Variables
: salvar as Server Switches
: carregar do servidor as Server Switches
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.
Tags de Busca
Met de toenemende populariteit van SEO is er een toename van het aantal bureaus dat beweert top ranking resultaten voor hun klanten te kunnen garanderen. Dit klinkt als een droom die uitkomt voor elk bedrijf dat zijn online zichtbaarheid wil verbeteren en meer klanten wil aantrekken. Maar voordat je valt voor deze valse beloften, is het belangrijk om de waarheid achter dergelijke claims te begrijpen. Als expert op het gebied van SEO heb ik talloze gevallen gezien waarin bedrijven zijn verleid om in zee te gaan met bureaus die gegarandeerde ranking-resultaten beloven, maar deze beloften niet nakomen. In deze blogpost gaan we dieper in op de vraag - Kan een SEO-bureau een ranking garanderen? En ontdekken we de realiteit achter deze aantrekkelijke maar dubieuze aanbiedingen. Bestaat SEO met garantie?