Pedido Script "Debug Log" RGSS3

5 Respostas   490 Visualizações

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

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Tópico criado em: 08/03/2016 às 14:27 - Última modificação por Ludovic em 08/03/2016 às 23:17

Gostaria de um script o qual eu ativasse ele por script call.
Ao ativar ele gerasse um documento .txt contendo as informações de todas as switches (se estão ON ou OFF) e variáveis (valor).
Isso ajudaria quando alguém encontrar erros ou bugs no jogos que irei lançar daqui a alguns dias. E corrigir mesmo depois de lançado. Sendo que o jogador irá chamar o comando num menu que eu criarei e me enviará pra avaliação e criação de um patch.
Clique e conheça o meu canal - Canal RPG Maker Zone

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 1: 08/03/2016 às 15:52

Então, pelo que vi aqui não precisaria de um script inteiro para fazer isso não (a menos que tu queira algo
bonitinho e, sei lá, mais organizado), porque o ruby já tem essas funções.
Eu só não sei se fiz o uso correto delas, até porque aprendi agora, mas poderia testar o código abaixo
em um Chamar Script num evento normal. Em tese, acho que o arquivo vai ser criado na pasta-raiz do jogo.
Só fiz com variáveis até 1000. Se funcionar faço com as switches também.


Código: [Selecionar]
backup = File.open('backupData.txt', 'w')
n = 1
while n < 1000 do
 value = $game_variables[n]
 backup.puts n.to_s + " = " + value.to_s
 n += 1
 p n
end
backup.close

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 2: 08/03/2016 às 18:16

Primeiramente muito obrigado pela ajuda.
Eu testei, ele gerou mesmo o arquivo tudo perfeito, fiz um para switches e um para variáveis.

Não sei se isso é fácil, mas teria como incluir o nome da switch dado no database na composição do nome????
Clique e conheça o meu canal - Canal RPG Maker Zone

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: 08/03/2016 às 19:24

Acho que dá. Fiz aqui e funcionou, porém nomeei poucas variáveis no projeto que fiz para teste.
Vê se consegue fazer o de switches, acho que sim, só substituir as paradas.
O tenso é o espacinho pequeno pra escrever no comando x_x


Código: [Selecionar]
backup = File.open('backupData.txt', 'w')
n = 1
while n < 1000 do
 txt = n.to_s + " : "
 txt += $data_system.variables[n].to_s
 txt += " = " + $game_variables[n].to_s
 backup.puts txt
 n += 1
end
backup.close

Kvothe

  • *
  • Posts: 652
  • Ouros: 1423
  • Maker Geral
Resposta 4: 08/03/2016 às 19:54

Faz assim ó, aproveitando o code do rei, ponha isso no DataBase do Script e só chame o comando: DebugVS.call

Código: [Selecionar]
module DebugVS
 
  # Exceção, se tiver.
  Exec = [3, 4]
 
  # Limite máximo que irá cobrir.
  Limit = 100
 
  # Nome do arquivo.
  Filename = "debugvs.txt"

  # Diretório
  Dir = "./"
 
  # Quando não há nome definido
  Unnamed = "UNNAMED"
 
  def self.call
    time = Time.now
    Dir.mkdir(Dir) unless FileTest.directory?(Dir)
    file = File.open(Dir+Filename, "w")
    run = ->(var, var2, name) {
      (0..(Limit)).each { |id|
        next if Exec.include?(id)
        nVar = "#{name} <#{id}> : #{(var[id] == "" or var[id].nil?) ?  Unnamed : var[id]} = #{var2[id]}"
        file.puts nVar rescue next
      }
    }
    run[$data_system.variables, $game_variables, "Variables"]
    file.write(("="*64)<<"\n\r")
    run[$data_system.switches, $game_switches, "Switches"]
    file.write(("="*64)<<"\n\r")
    file.write("Result in #{Time.now - time}")
    file.close
    puts "Ready"
  end
 
end



Não testei, então...


Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 5: 08/03/2016 às 23:17

Agradeço aos Dois, você me ajudaram bastante, gataram tempo comigo.
Valeu
Clique e conheça o meu canal - Canal RPG Maker Zone