Advertisement
Rafael_Sol_Maker

RAFAEL_SOL_MAKER's VX GENERAL SCRIPT EVALUATOR v1.0a

Nov 17th, 2011
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.98 KB | None | 0 0
  1. #===============================================================================
  2. #            RAFAEL_SOL_MAKER's VX GENERAL SCRIPT EVALUATOR v1.0a
  3. #          Baseado no 'Detailled Call Script Error Message' do ERZVX.
  4. #-------------------------------------------------------------------------------
  5. # Descrição:    Faz com que todos os scripts rodando a partir do jogo, seja pelo
  6. #               comando 'Executar Scripts' dos eventos, das rotas de movimentos,
  7. #               ou até mesmo de condicionais passe por esse avaliador, que dá
  8. #               informações mais detalhadas a respeito do erro. Nessa nova
  9. #               revisão do script apenas os scripts gerados pelo jogo e alguns
  10. #               scripts do editor (que possuam 'eval') serão afetados.
  11. #-------------------------------------------------------------------------------
  12. # Modo de usar: Configure no módulo o uso (ou não!) dessa função.
  13. #-------------------------------------------------------------------------------
  14. # Agradecimentos Especiais: ERZVX
  15. #-------------------------------------------------------------------------------
  16. #===============================================================================
  17.  
  18. #===============================================================================
  19. # UPDATES
  20. #-------------------------------------------------------------------------------
  21. # VX GENERAL SCRIPT EVALUATOR -> v1.0a
  22. # * Agora somente os scripts de 'eval' que possuam um único argumento, como os
  23. #   gerados pelo jogo passarão por esse tratamento de erros básico. Mesmo assim
  24. #   é recomendável só usar depois de livrar os bugs do Editor de Scripts, já que
  25. #   alguns poucos scripts ainda podem usar o comando internamente.
  26. # * Agora a linha com erro é exibida corretamente na mensagem, caso o script só
  27. #   tenha uma única linha.
  28. # * Outras coisinhas mais...
  29. #-------------------------------------------------------------------------------
  30. #===============================================================================
  31.  
  32. module PowerPackVX_General_Configs
  33.  
  34.   # Avaliar os scripts gerados pelo jogo?
  35.   Use_Script_Evaluator = true
  36.  
  37. end
  38.  
  39. #===============================================================================
  40.  
  41. class Game_Interpreter
  42.   attr_reader :event_id
  43. end
  44.  
  45. if PowerPackVX_General_Configs::Use_Script_Evaluator == true
  46.  
  47.   alias rsmaker_script_eval eval unless $@
  48.   def eval(*args)    
  49.     n = *args.size; return rsmaker_script_eval(*args) if n > 1
  50.     begin
  51.       return rsmaker_script_eval(*args)
  52.     rescue Exception
  53.       exit if $!.class == SystemExit
  54.       desc = $!.message.split(/['\n]/)[1].sub('`'){'\''}
  55.      desc +=  "'" if $!.class == NameError      
  56.      line = $!.message.split(':')[1].to_i    
  57.      lines = *args[0].split(/\n/)
  58.      if lines.is_a? (Array)
  59.        errline = lines[(line - 1)]
  60.      else
  61.        errline = lines
  62.      end      
  63.      print "Houve um erro durante a execução do script!\n",
  64.      " Por favor entre em contato com o criador do jogo e informe o seguinte:\n",
  65.      "----------------------------------------------------------------------\n",
  66.      "----------------------------------------------------------------------\n",
  67.      "ID do Mapa: #{$game_map.map_id}\n",
  68.      "ID do Evento: #{$game_map.interpreter.event_id}\n",
  69.      "----------------------------------------------------------------------\n",
  70.      "----------------------------------------------------------------------\n",
  71.      "Tipo do Erro: #{$!.class}\n",
  72.      "Descrição: \"#{desc}\"\n",
  73.      "----------------------------------------------------------------------\n",
  74.      "----------------------------------------------------------------------\n",
  75.      "Número da Linha com Erro: #{line}\n",      
  76.      "Linha com Erro: \"#{errline}\"\n",
  77.      "----------------------------------------------------------------------\n",
  78.      "----------------------------------------------------------------------\n"
  79.    end
  80.    return nil
  81.  end
  82.  
  83. end
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement