[RMVXA Tutorial #4] Sistema de Save e Load Automatio

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[RMVXA Tutorial #4] Sistema de Save e Load Automatio

Mensagem por Davyd Maker em Sex Maio 08, 2015 6:19 pm

Sistema de Save e Load Automático

Informações:
Criado por: math2607
Engine Usada: RPG Maker VX Ace
Facilidade de Uso: Fácil
Download APP Tutorial: [Você precisa estar registrado e conectado para ver este link.] 
Introdução:
Quem nunca viu um game que você entra nele, não salva, não cria arquivos de saves nem diretórios, e quando você entra de novo, está tudo lá, salvo? Este tutorial tem a finalidade de mostrar a vocês, com simplicidade e clareza, como montar um sistema desse tipo.
Let's Rock:
Antes de tudo, darei um conselho: Esse sistema funcionará muito bem em telas de Título por eventos, ou pelo menos Titles por scripts bem configuráveis. Se o load e save são automáticos, irá perder o sentido utiliza-lo em um jogo cujo o Title já possui uma opção de load. Para falar a verdade, este sistema combina muito bem em mini-games. Dito isto, vamos começar. Aconselho criar um novo mapa, onde a engine irá verificar tudo o que será carregado. O fundo pode ser todo escuro (ou transparente), e o personagem pode começar sem gráfico. Feito isso, crie um evento, e em Condição de Inicio, coloque Início Automático. Agora crie uma condição, e nela vá na última aba e marque a opção Script, e cole o seguinte código:
CÓDIGO 1:
DataManager.save_file_exists?
Deixe a opção de Exceção ativa e clique em OK. Esse código verifica se tem algum save dentro da pasta do jogo. Dentro da Condição, clique duas vezes em <> e chame um script (na terceira aba). Dentro, cole outro script:
CÓDIGO 2:
DataManager.load_game(0)
Esse código irá carregar um jogo salvo no primeiro slot de saves. Então, a partir daqui, todo o jogo terá que ser salvo no primeiro slot. Acione uma Switch Local A. Ok, o load automático foi feito, agora em Exceção chame outro script, e cole o seguinte código:
CÓDIGO 3:
DataManager.save_game(0)
Esse código salva o jogo no primeiro slot. Agora, crie um teleport para o primeiro mapa do jogo e acione também a Switch Local A. Agora, o que resta fazer é criar uma nova página e colocar a switch local A ativada na página anterior. Simples. O que você acabou de fazer é simples. Você criou um sistema para quando ele entrar no jogo, ele vai verificar se tem algum jogo salvo. Se não tiver, ele vai salvar no primeiro slot, e vai iniciar o jogo. Se tiver, ele vai carregar o jogo salvo, sem você precisar mover o dedo. Legal né? Mas, como eu disse, fica estranho quando se usa o title da engine, pois ela já tem uma opção de load. Agora, toda vez que você quiser que o jogo seja salvo, é só chamar um script e colar o último código. Com isso dá para fazer um sisteminha de CheckPoint, como se o jogo fosse estilo Call of Duty. A seguir uma imagem de como deve ter ficado o sistema:
Partindo desse sistema, pode-se fazer outras coisinhas muito interessantes para seu projeto. Então, veja agora algumas dicas!
Dicas:
Dica 1: Diretório único para save:
Essa sem dúvida é uma dica muito legal para todos. Muitos jogos (como Call of Duty) você escolhe um diretório quando iniciado o jogo, e no meio do jogo é salvo no diretório que você tinha escolhido. Exemplo, eu escolhi iniciar o jogo no slot 4, então, quando eu estiver no meio do jogo, vai dar um save automático no slot 4, sem ter que escolher o slot. Para isso, no primeiro mapa que a gente criou, dentro da condição, mude o script que esta sendo chamado para este:
CÓDIGO 4:
index = DataManager.last_savefile_index
DataManager.load_game(index)
Ele fará a mesma coisa de dar load automaticamente, porém não vai ser no primeiro slot, mas no último slot em que o jogador salvou o jogo. E em Exceção, exclua o chamar script e chame o menu de save (na terceira aba de <>). O sistema irá verificar se tem algum save. Se tiver, ele dará load no último slot no qual o jogador salvou o jogo. Se não tiver, aparecerá o menu de save, para o jogador escolher o slot. Feito isso, para dar save automático no meio do jogo, chame este script:
CÓDIGO 5:
index = DataManager.last_savefile_index
DataManager.save_game(index)
Ele salvará no último slot salvo, ou seja, no slot que foi escolhido pelo jogador no inicio de tudo.
Dica 2: Iniciando com estilo:
Quem nunca viu aqueles jogos em que, quando o jogador entra pela primeira vez, ele nem vai para a tela de título, mas vai direto para o primeiro mapa do jogo? Sim, jovem padawan, é possível. Para isso, no evento criado, basta na condição, em vez de chamar um script, colocar para aparecer o título (claro, se for uma por eventos ou uma bem customizável). O evento verificará se tem algum save. Se tiver, a tela de título será exibida e então o jogador pode dar load por lá. Se não tiver, ele iniciará o jogo automaticamente. Simples não?
Dica 3: Simples, porém legal:
Essa é bem simples. A tela de título da engine, quando iniciada, verifica se tem algum save. Se não tem, o cursor Carregar fica cinza, e não é possível clicar nele. Mas se tem, ele é liberado. Dá para fazer isso, e é só copiar essa condição que criamos no tutorial. Dentro da condição, você coloque a imagem do Carregar como a dos outros cursores. Mas, em Exceção, basta colocar ela mais acinzentada.
Considerações Finais:
Base do Sistema: math2607
Forneceu alguns códigos: Shiroyasha
Postar no E.R.M.: Davyd Maker
Organizar o tópico: Davyd Maker
Criar o APP Tutorial: Davyd Maker

OBS.: Alguns spoliers estão bugados.
avatar
Davyd Maker
Membro
Membro

Mensagens : 102
Data de inscrição : 04/04/2015
Idade : 16

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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