Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3761 miembros registrados.
El último usuario registrado es Abraham 331.

Nuestros miembros han publicado un total de 85756 mensajes en 12212 argumentos.

[XP] Database Limit Breaker

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Database Limit Breaker

Mensaje por Wecoc el 2016-08-22, 19:57

Hice éste script basándome en uno de Shdwlink1993 & Blizzard.
No requiere créditos, y tras usarlo se puede borrar. Lo que hace es permitir romper los límites de las listas de la base de datos del RPG maker XP.
Sirve para todas las listas excepto para la de los mapas (que su límite es 999)

Código

Código:
#==============================================================================
# Database Limit Breaker XP
# Author: Wecoc, based on a script by Shdwlink1993 & Blizzard
# No credits needed. Plug, Play & Delete after using
# Version: 1.0
#==============================================================================

  Actors = 0            # Default max: 999
  Animations = 0        # Default max: 999
  Armors = 0            # Default max: 999
  Classes = 0           # Default max: 999
  CommonEvents = 0      # Default max: 999
  Enemies = 0           # Default max: 999
  Items = 0             # Default max: 999
  Skills = 0            # Default max: 999
  States = 0            # Default max: 999
  Troops = 0            # Default max: 999
  Tilesets = 0          # Default max: 999
  Weapons = 0           # Default max: 999
  
  Elements = 0          # Default max: 999
  Switches = 0          # Default max: 5000
  Variables = 0         # Default max: 5000

def set_data(num, filename, st)
  return if num == 0
  data = load_data(filename)
  num = (num - data.size) + 1
  struct = eval(st)
  num > 1 ? num.times { data.push(struct) } : (-num).times { data.pop }
  File.open(filename, 'wb') {|f| Marshal.dump(data, f) }
end

def set_system_data(num, filename, st)
  return if num == 0
  data = load_data(filename)
  current_array = data.send(st)
  num = num - current_array.size
  num > 1 ? num.times { data.send(st).push("") } : (-num).times { data.send(st).pop }
  File.open(filename, 'wb') {|f| Marshal.dump(data, f) }
end

#==============================================================================

begin
  set_data(Actors,       'Data/Actors.rxdata',       'RPG::Actor.new')
  set_data(Animations,   'Data/Animations.rxdata',   'RPG::Animation.new')
  set_data(Armors,       'Data/Armors.rxdata',       'RPG::Armor.new')
  set_data(Classes,      'Data/Classes.rxdata',      'RPG::Class.new')
  set_data(CommonEvents, 'Data/CommonEvents.rxdata', 'RPG::CommonEvent.new')
  set_data(Enemies,      'Data/Enemies.rxdata',      'RPG::Enemy.new')
  set_data(Items,        'Data/Items.rxdata',        'RPG::Item.new')
  set_data(Skills,       'Data/Skills.rxdata',       'RPG::Skill.new')
  set_data(States,       'Data/States.rxdata',       'RPG::State.new')
  set_data(Troops,       'Data/Troops.rxdata',       'RPG::Troop.new')
  set_data(Tilesets,     'Data/Tilesets.rxdata',     'RPG::Tileset.new')
  set_data(Weapons,      'Data/Weapons.rxdata',      'RPG::Weapon.new')
  
  set_system_data(Elements,    'Data/System.rxdata',       'elements')
  set_system_data(Switches,    'Data/System.rxdata',       'switches')
  set_system_data(Variables,   'Data/System.rxdata',       'variables')
  exit
end

Instrucciones

1. Copia el script encima de main.

2. Busca en la lista del principio del script el tipo de lista que quieres modificar. Cambia el 0 por el nuevo máximo. Deja los demás con valor 0 tal como vienen en el script.

Imagen:


¡Exagerao! ¡Donde vas con tantos héroes!

3. Cierra el editor de scripts y guarda el proyecto.

4. Cierra el programa (imprescindible para que lea los cambios)

5. Ejecuta el proyecto desde su archivo Game.exe
Se cerrará solo.

6. Vuelve a abrir el programa. Comprueba que los cambios se hayan efectuado correctamente.

Imagen:


Alexis, los 'amigos' de facebook y database no cuentan todos como amigos de verdad...

7. Borra el script para que el juego vuelva a funcionar con normalidad.

Caso especial

Las variables e interruptores son un caso especial; pese a aumentar su máximo no se leen los cambios de los que tienen índice mayor a 5000 por script.
Para ello hay que usar otro pequeño script encima de main, éste sí conservarlo a lo largo del juego. Lo pongo aquí:

Código:
#==============================================================================
# ** Switch & Variable Limit Breaker
# Author: Wecoc, no credits needed
#==============================================================================

class Game_Switches
  def [](switch_id)
    if @data[switch_id] != nil
      return @data[switch_id]
    else
      return false
    end
  end

  def []=(switch_id, value)
    @data[switch_id] = value
  end
end

#==============================================================================

class Game_Variables
  def [](variable_id)
    if @data[variable_id] != nil
      return @data[variable_id]
    else
      return 0
    end
  end

  def []=(variable_id, value)
    @data[variable_id] = value
  end
end

Ojalá no tengáis que usar nunca éste script xD

PD.- Si os interesan otros scripts similares, por la red hay varios, muy parecidos. Os enlazo aquí algunos otros:

Woratana's Database Limit Breaker + VXAce Port (Mr. Bubble) XP VX VX Ace
Database Limit Breaker XP VX
avatar
Wecoc
Administrador
Administrador



Créditos 9360

Gracias : 516

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.