Confirmar se o jogo foi salvo

8 Respostas   393 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

fraphael

  • *
  • Posts: 20
  • Ouros: 2
  • LUZ!
Tópico criado em: 31/05/2017 às 02:02 - Última modificação por fraphael em 31/05/2017 às 16:50

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.

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 1: 31/05/2017 às 08:25

O senhor poderia postar o script que desenvolveu?

fraphael

  • *
  • Posts: 20
  • Ouros: 2
  • LUZ!
Resposta 2: 31/05/2017 às 10:08 - Última modificação por fraphael em 31/05/2017 às 10:10

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]

Geraldo de Rívia

  • Mito
  • *
  • Posts: 4452
  • Ouros: 3887
  • O vento está sibilando.
  • Medalhas Vencedor do Protótipo Premiado Participantes do Maps Together 2
Resposta 3: 31/05/2017 às 10:30

[...] 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?

fraphael

  • *
  • Posts: 20
  • Ouros: 2
  • LUZ!
Resposta 4: 31/05/2017 às 10:47

[...] 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

Geraldo de Rívia

  • Mito
  • *
  • Posts: 4452
  • Ouros: 3887
  • O vento está sibilando.
  • Medalhas Vencedor do Protótipo Premiado Participantes do Maps Together 2
Resposta 5: 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í.

fraphael

  • *
  • Posts: 20
  • Ouros: 2
  • LUZ!
Resposta 6: 31/05/2017 às 11:15

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!

fraphael

  • *
  • Posts: 20
  • Ouros: 2
  • LUZ!
Resposta 7: 31/05/2017 às 16:17 - Última modificação por King Gerar em 31/05/2017 às 16:27

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:

Código: [Selecionar]
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.

Geraldo de Rívia

  • Mito
  • *
  • Posts: 4452
  • Ouros: 3887
  • O vento está sibilando.
  • Medalhas Vencedor do Protótipo Premiado Participantes do Maps Together 2
Resposta 8: 31/05/2017 às 16:30

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: