O site está em reconstrução - obrigado pela paciência.
Aula 1 - Entendendo como funciona o banco de dados511

Publicidade

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

 » Ruby » Rpg Maker VX Ace » Wing MMORPG Maker » Tutoriais » 

Aula 1 - Entendendo como funciona o banco de dados

Terabin


Equipe de desenvolvimento da Taberna RPG
Equipe de desenvolvimento da Taberna RPG
Introdução
Eai pessoal!
Como eu criei o Wing, e simplesmente lancei ele sem instruções ou documentação, a Taberna vai se tornar a documentação de que precisam.

Um dos pontos interessantes no projeto sem sombra de dúvidas é a forma como o banco de dados funciona.
Era realmente um problema não conseguir dar o controle de tudo para o servidor, pelo fato do RPG Maker estar com os editores. E eu realmente não queria traduzir a forma como os arquivos do rmvxa eram encriptados.

Cheguei em uma conclusão mais simples: O Admin envia para o servidor!

Vamos lá!
Basicamente, tudo o que vocês modificam no editor do RMVXA, não é imediatamente enviado ao servidor, logo, o servidor não sabe o que você modificou, então, se tal mapa tinha um bloqueio, e você fez outro mapa, o servidor acha que aquele bloqueio ainda existe, A NÃO SER que você mande o novo mapa para o servidor. O mesmo acontece com dados de npc, itens, magias, missões, bom, tudo relacionado a database!

WOW, E COMO ENVIO NOVOS DADOS PRO SERVIDOR?
É simples. Após definir sua conta como a conta do administrador, você vai ter acesso a vários comandos.

Vou puxar do próprio código para que vocês vejam como é simples ver os comandos existentes:

Código:
    if text.include?("/senditems")
      @textchar.clear
      Network.send_items
      return
    end
    
    if text.include?("/spam")
        for i in 0..200
        Network.RequestPing
        end
    end
    
    if text.include?("/pos")
      Network.SendMessage("X:#{$game_player.x}/Y:#{$game_player.y}")
      @textchar.clear
      return
    end
    
    if text.include?("/sendenemies")
      @textchar.clear
      Network.send_enemies
      return
    end
    
    if text.include?("/sendskills")
      @textchar.clear
      Network.send_skills
      return
    end
    
    if text.include?("/sendweapons")
      @textchar.clear
      Network.send_weapons
      return
    end
    
    if text.include?("/sendarmors")
      @textchar.clear
      Network.send_armors
      return
    end
    
    if text.include?("/warpto")
      data = text.split(" ")
      Network.RequestWarp(data[1])
      @textchar.clear
      return
    end
    
    if text.include?("/premmy")
      data = text.split(" ")
      Network.RequestPremmy(data[1], data[2])
      @textchar.clear
      return
    end
    
    if text.include?("/ban")
      data = text.split(" ")
      Network.RequestBan(data[1], data[2])
      @textchar.clear
      return
    end
    
    if text.include?("/kick")
      data = text.split(" ")
      Network.RequestKick(data[1])
      @textchar.clear
      return
    end
    
    if text.include?("/wpoints")
      data = text.split(" ")
      Network.RequestWPoints(data[1], data[2])
      @textchar.clear
      return
    end
    
    if text.include?("/sendallmaps")
      @textchar.clear
      Network.RequestWarp(1);
      $warping = true
      $saving_maps = $game_map.map_id;
    end
    
     if text.include?("/sendmap")
        Network.send_map;
     else
       if text.length > 0
       Network.SendMessage(text)
       end
     end


Notem que existem comandos como /sendmap, /senditems, /sendskills.
Esses são os comandos que enviam para o servidor os dados novos sobre a database que foi editada. Dessa forma, o servidor sabe onde existe um bloqueio no mapa, como funciona uma skill, e tem o controle de valores de itens e monstros.

E então você me pergunta o porquê disso?
Porquê assim não existem hackers! Ninguém poderá burlar o mapa, é o servidor quem dita as regras.

Façam um teste!
Editem um mapa existente, e tentem andar sobre ele. Verão que existem tiles que o servidor vai bloquear o acesso. Em seguida, digitem o comando /sendmap. Verão que o servidor entrará em sincronia com o mapa. 

Enjoy. ;D

Conclusão
A Database é segura! Porém por ser mais complexa torna tudo mais complicado, apenas pessoas empenhados conseguirão dominar os segredos do Wing. ;)

Abraço do tio Tera. o/



[Você precisa estar registrado e conectado para ver esta imagem.]

"Criar jogos não é sobre como você é bom em programar, é sobre como é o mundo que você deseja passar para seus jogadores..."
Ver perfil do usuário /

renan-vieira


Visitante
Visitante
O banco de dados é local por arquivos ou é por mysql mesmo?, estou tentando ver a origem de um problema do mapa que está bloqueando a saida e queria ver como está o mapa no servidor.

Ver perfil do usuário

Terabin


Equipe de desenvolvimento da Taberna RPG
Equipe de desenvolvimento da Taberna RPG
A Database se baseia em pastas de arquivos binários. A consulta é rápida pois não executa nenhuma conexão a db externa.



[Você precisa estar registrado e conectado para ver esta imagem.]

"Criar jogos não é sobre como você é bom em programar, é sobre como é o mundo que você deseja passar para seus jogadores..."
Ver perfil do usuário /

Gilgamesh


Visitante
Visitante
Qual o comando para enviar animações?
Alterei a de um item aqui, tentei o /senditems e o /sendweapon e nenhum desses funcionou para a animação nova.



[Você precisa estar registrado e conectado para ver esta imagem.]
Ver perfil do usuário

Terabin


Equipe de desenvolvimento da Taberna RPG
Equipe de desenvolvimento da Taberna RPG
@Gilgamesh escreveu:Qual o comando para enviar animações?
Alterei a de um item aqui, tentei o /senditems e o /sendweapon e nenhum desses funcionou para a animação nova.

Não tem necessidade de enviar animações.



[Você precisa estar registrado e conectado para ver esta imagem.]

"Criar jogos não é sobre como você é bom em programar, é sobre como é o mundo que você deseja passar para seus jogadores..."
Ver perfil do usuário /

1Normal Publicidade! Hoje à(s) 00:00


Nin



Permissão deste fórum:
Você não pode responder aos tópicos neste fórum

Parceiros
Centro RPG Maker Mundo RPG Maker La Communauté RPG Maker Condado Braveheart