O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Confirmar se o jogo foi salvo

Iniciado por fraphael, 31/05/2017 às 02:02

31/05/2017 às 02:02 Última edição: 31/05/2017 às 16:50 por fraphael
Ola,

Sou novo no forum e estou aprendendo um pouco sobre scripts.
Estou com dificuldade para confirmar se o jogo foi salvo. Quero que o jogador escolha um savefile no inicio do jogo, e quando ele salve va para o inicio do jogo, caso contrario continue na tela de titulo.
Não consigo acertar essa opção, ou ele permanece na tela depois de salvar ou ele vai para o inicio do jogo mesmo sem ter salvo.

O senhor poderia postar o script que desenvolveu?

31/05/2017 às 10:08 #2 Última edição: 31/05/2017 às 10:10 por fraphael
Citação de: Kyo Panda online 31/05/2017 às 08:25
O senhor poderia postar o script que desenvolveu?

Não tenho um script, ainda não estou muito bom em desenvolver telas, meu menu esta por evento, estou chamando  save...

Segue minha tela com o evento de novo jogo


[Anexo excluído pelo administrador]

Citação de: fraphael online 31/05/2017 às 02:02
[...] e quando ele salve va para o inicio do jogo, caso contrario continue na tela de titulo. [...]
Eu não entendi é como tu quer que funcione esta parte. Se o jogador salvar, ele volta pro início do jogo, se ele não salvar, ele vai pra tela de título. Ou seja, o jogador não tem como salvar e continuar jogando não?  :hein:
Ou tu quer, tipo, o jogador clica em Novo Jogo > Abre a tela de save e ele salva o jogo > Jogo inicia e sempre que o jogador salvar, será salvo no slot que ele salvou no começo. Se ele cancelar após abrir a tela de save, ele volta para a tela de título?

Citação de: King Gerar online 31/05/2017 às 10:30
Citação de: fraphael online 31/05/2017 às 02:02
[...] e quando ele salve va para o inicio do jogo, caso contrario continue na tela de titulo. [...]
[...]Ou tu quer, tipo, o jogador clica em Novo Jogo > Abre a tela de save e ele salva o jogo > Jogo inicia e sempre que o jogador salvar, será salvo no slot que ele salvou no começo. Se ele cancelar após abrir a tela de save, ele volta para a tela de título?


Exatamente isso, o jogo ja esta salvando no mesmo slot que eu modifiquei um script simples de autosave pra se adequar a essa função, então ele não vai salvar durante o jogo, vai salvar automaticamente no slot que ele escolher quando ele clicar em novo jogo

Então, tu não tem como fazer isso exclusivamente por meio de eventos, vez que a tela de save roda por código. Tu teria que mudar o método command_new_game na Scene_Title para chamar a tela de save ao invés de iniciar um novo jogo, e mudar o método on_savefile_ok na Scene_Save para salvar esse slot e iniciar um novo jogo a partir daí.

Citação de: King Gerar online 31/05/2017 às 10:58
Então, tu não tem como fazer isso exclusivamente por meio de eventos, vez que a tela de save roda por código. Tu teria que mudar o método command_new_game na Scene_Title para chamar a tela de save ao invés de iniciar um novo jogo, e mudar o método on_savefile_ok na Scene_Save para salvar esse slot e iniciar um novo jogo a partir daí.

Sim, eu tentei editar o script mas não tinha certeza de qual método editar, tentei utilizar um if pra confirmar on_savefile_ok mas não pensei em editar.
Vou fazer um teste e digo se deu certo, obrigado pela ajuda!

31/05/2017 às 16:17 #7 Última edição: 31/05/2017 às 16:27 por King Gerar
Muito obrigado pela dica [user]King Gerar[/user], consegui montar atualizar o script on_savefile_ok pra essa necessidade.

Pra quem quiser dar uma olhada no código:

class Scene_Save < Scene_File
  def on_savefile_ok
    super
    if DataManager.save_game(@index)
      on_save_success
      # Configura o switch local para transportar o jogador
      $game_self_switches[[1, 1, "A"]] = true
    else
      Sound.play_buzzer
      # Retorna se não salvar
      return_scene
    end
  end
end


Lembrando que ele foi feita para um menu por eventos, deve ser modificado para um menu por script.

Muito bom, man!  :clap:

Só tirei o código do spoiler, pois não fica muito bom para visualizar, mas fico muito contente de tu ter conseguido.

No mais, como fora resolvido...  :lock: