MBS - Quebrador de limites do database Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

MBS - Quebrador de limites do database

2 participantes

Ir para baixo

MBS - Quebrador de limites do database Empty MBS - Quebrador de limites do database

Mensagem por Valentine Ter maio 22, 2018 1:07 pm

Características
O script altera os arquivos da pasta Data de forma a permitir a criação de mais de [s]8000[/s] 999 heróis, habilidades, itens, animações...

Screens
Spoiler:

Script
Código:
#==============================================================================
# MBS - Quebrador de limites do database
#------------------------------------------------------------------------------
# por Masked
#==============================================================================
module MBS
  module LimitBreaker
#==============================================================================
# Configurações
#==============================================================================
 
    #--------------------------------------------------------------------------
    # Caso queira ativar o script, deixe como true, se não, mude para false
    #--------------------------------------------------------------------------
    BREAK_LIMITS = true
    
    #--------------------------------------------------------------------------
    # Caso queira criar um backup dos dados na pasta Data/Backup, deixe como
    # true, se não, mude para false
    #--------------------------------------------------------------------------
    BACKUP = true
 
    #--------------------------------------------------------------------------
    # Definição do limite de itens para cada parte do database
    #--------------------------------------------------------------------------
    LIMITS = {
      actors:        999, # Heróis
      classes:       999, # Classes
      skills:        999, # Habilidades
      items:         999, # Itens
      weapons:       999, # Armas
      armors:        999, # Armaduras
      enemies:       999, # Inimigos
      troops:        999, # Grupos de inimigos
      states:        999, # Estados
      animations:    999, # Animações
      tilesets:      999, # Tilesets
      common_events: 999, # Eventos comuns
    }
    
#==============================================================================
# Fim das configurações
#==============================================================================
 
    #------------------------------------------------------------------------
    # Carregamento dos dados do database
    #------------------------------------------------------------------------
    DataManager.load_database
 
#==============================================================================
# Funções das janelas
#==============================================================================
    FindWindow = Win32API.new('user32', 'FindWindow', 'vp', 'i')
    MessageBox = Win32API.new('user32', 'MessageBox', 'ippi', 'v')
    
    #--------------------------------------------------------------------------
    # Transformação do texto em ASCII
    #--------------------------------------------------------------------------
    def self.ascii(txt)
      txt.unpack('U*').pack('C*')
    end
    
    #--------------------------------------------------------------------------
    # * Caixa de aviso
    #--------------------------------------------------------------------------
    def self.warnbox(message)
      MessageBox.call(FindWindow.call($data_system.game_title), ascii(message), $data_system.game_title, 0x2030)
    end
    
    #--------------------------------------------------------------------------
    # * Caixa de aviso
    #--------------------------------------------------------------------------
    def self.infobox(message)
      MessageBox.call(FindWindow.call($data_system.game_title), ascii(message), $data_system.game_title, 0x2040)
    end
    
    #--------------------------------------------------------------------------
    # * Caixa de erro
    #--------------------------------------------------------------------------
    def self.errorbox(message)
      MessageBox.call(FindWindow.call($data_system.game_title), ascii(message), $data_system.game_title, 0x2010)
    end
    
#==============================================================================
# Parte funcional
#==============================================================================
#------------------------------------------------------------------------------
# Condição para evitar que todos os dados do jogo sejam salvos a menos que ele
# esteja sendo usado no modo de teste
#------------------------------------------------------------------------------
    if $TEST && BREAK_LIMITS
      1.times do      
        #------------------------------------------------------------------------
        # Aviso antes de começar...
        #------------------------------------------------------------------------
        warnbox( 'O script MBS - Quebrador de limites do database está ativado,' +
                ' se não salvou suas alterações, feche o jogo e salve-as.' )
        
#==============================================================================
# Variáveis úteis
#==============================================================================
        #------------------------------------------------------------------------
        # Associação dos símbolos do LIMITS com as variáveis do banco de dados
        #------------------------------------------------------------------------
        Data = {
          actors:        $data_actors,
          classes:       $data_classes,
          skills:        $data_skills,
          items:         $data_items,
          weapons:       $data_weapons,
          armors:        $data_armors,
          enemies:       $data_enemies,
          troops:        $data_troops,
          states:        $data_states,
          animations:    $data_animations,
          tilesets:      $data_tilesets,
          common_events: $data_common_events,
        }
        
        #------------------------------------------------------------------------
        # Associação dos símbolos do LIMITS com as classes usadas pelas variáveis
        # do banco de dados
        #------------------------------------------------------------------------
        Data_S = {
          actors:        RPG::Actor,
          classes:       RPG::Class,
          skills:        RPG::Skill,
          items:         RPG::Item,
          weapons:       RPG::Weapon,
          armors:        RPG::Armor,
          enemies:       RPG::Enemy,
          troops:        RPG::Troop,
          states:        RPG::State,
          animations:    RPG::Animation,
          tilesets:      RPG::Tileset,
          common_events: RPG::CommonEvent,
        }
        
        #------------------------------------------------------------------------
        # Associação dos símbolos do LIMITS com os arquivos da pasta Data
        #------------------------------------------------------------------------
        Data_F = {
          actors:        'Actors.rvdata2',
          classes:       'Classes.rvdata2',
          skills:        'Skills.rvdata2',
          items:         'Items.rvdata2',
          weapons:       'Weapons.rvdata2',
          armors:        'Armors.rvdata2',
          enemies:       'Enemies.rvdata2',
          troops:        'Troops.rvdata2',
          states:        'States.rvdata2',
          animations:    'Animations.rvdata2',
          tilesets:      'Tilesets.rvdata2',
          common_events: 'CommonEvents.rvdata2',
        }
      
#==============================================================================
# Criação do backup
#==============================================================================
        if BACKUP
          begin
            Dir.mkdir('Data/Backup') unless FileTest.directory?('Data/Backup')
            Data_F.each do |key, filename|
              save_data(Data[key], 'Data/Backup/' + filename)
            end
          rescue
            errorbox( 'Um erro aconteceu enquanto o backup era salvo, para evitar ' +
                      'perda de dados, o script será encerrado.')
            break
          end
        end
 
#==============================================================================
# Ajuste dos itens das arrays do banco de dados
#==============================================================================
        begin
          LIMITS.each do |key, max|
            max.times do |i|
              next if Data[key][i+1]
              Data[key][i+1] = Data_S[key].new
            end
          end
        rescue
          errorbox( 'Um erro aconteceu durante o ajuste dos itens das arrays ' +
                    'do banco de dados, para evitar perda de dados, o script ' +
                    'será encerrado')
          break
        end
#==============================================================================
# Salvamento dos dados nos arquivos da pasta Data
#==============================================================================
        begin
          Data.each do |key, data|
            save_data(data, 'Data/' + Data_F[key])
          end
        rescue
          errorbox( 'Um erro aconteceu durante o salvamento dos dados, para ' +
                    'evitar problemas, o script será encerrado')
          break
        end
 
#==============================================================================
# Finalização
#==============================================================================
        infobox( 'O script terminou as alterações no banco de dados, para que as'  +
                 ' alterações façam efeito, feche o RPG Maker sem salvar e depois' +
                 ' abra-o novamente')
        
        infobox( 'É recomendável desativar o script após usá-lo, para isso, mude' +
                ' a constante BREAK_LIMITS nas configurações' )
                
        if BACKUP
          infobox( 'Um backup foi salvo na pasta Data/Backups' )
        end
        
      end
    end
  end
end

Créditos e agradecimentos
Masked
Valentine
Valentine
Administrador
Administrador

Medalhas : MBS - Quebrador de limites do database ZgLkiRU
Mensagens : 5343
Créditos : 1164

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

MBS - Quebrador de limites do database Empty Re: MBS - Quebrador de limites do database

Mensagem por Kies Sex maio 25, 2018 5:51 am

na época que eu usava o vx ace, nem pensava em fazer isso. pô 255 é muita coisa vei
Kies
Kies
Diva
Diva

Mensagens : 1155
Créditos : 124

Ficha do personagem
Nível: 1
Experiência:
MBS - Quebrador de limites do database Left_bar_bleue0/0MBS - Quebrador de limites do database Empty_bar_bleue  (0/0)
Vida:
MBS - Quebrador de limites do database Left_bar_bleue30/30MBS - Quebrador de limites do database Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos