Database Limit Breaker - woratana - 01-22-2009
Database Limit Breaker
Version 1.0
by Woratana
Release Date: 22/05/2008
Introduction
It is the script for the big game that need more than 5000
variables/switches,
or more than 999 weapons, skills, and anything in Database window. :)
I finished this script for a while, but haven't post it till there is
request in here:
http://www.hbgames.org/forums/index.php?topic=47546.0
I have 2 versions of this script, XP and VX version.
Actually, I'm not sure how many people will use this script.
But I hope it will at least ensure people who want to make big game,
that they don't have to worry about the database limit.
However, this script cannot make more than 999 maps.
Enjoy~ :lol:
Script
Place it above main
XP Version:
Code: #===============================================================
# ? [XP] ? Database Limit Breaker ? ?
# * Break limit of data number in database files *
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 22/05/2008
# ? Version: 1.0
#--------------------------------------------------------------
#==========================================
# ** HOW TO USE
#------------------------------------------
# 0. Open your project (Recommend to backup your database files first~)
# 1. Paste this script in above 'Main'.
# 2. Set DLB_USE_IT = true
# 3. Setup database files you want to change, in DLB_DATA
# 4. Run your game...
# 5. When it finished, game will close itself
# 6. Close your project *without save*
# 7. Open your project again. Done!
# 8. You can either remove this script, or set DLB_USE_IT = false
#==========================================
#===========================================================================
# Use limit breaker? (set this to false after you run this script,
# and haven't change anything in DLB_DATA after that)
# or REMOVE this script when finished~
#===========================================================================
DLB_USE_IT = true # (true / false)
DLB_DATA = {
#======================================================
# Database file you want to change their number:
# * Limit of normal database files are 999
# * Limit of variables and switches are 5000
# This script will allow you to change their number over their limit~
#===============================
# ** How to setup **
#-------------------------------
# Add 1 line below per 1 database file you want to change.
# Structure: 'Database_File' => (number),
# e.g. 'switch' => 5500,
# (* Don't forget to put , behind the line!)
#==============================================
# **
[list] Database_File
#----------------------------------------------
# 'switch' for Game Switches
# 'variable' for Game Variables
# 'actor' for Actors
# 'class' for Classes
# 'skill' for Skills
# 'item' for Items
# 'weapon' for Weapons
# 'armor' for Armors
# 'enemy' for Enemies
# 'troop' for Troops
# 'state' for States
# 'tileset' for Tilesets
# 'animation' for Animations
# 'commonev' for Common Events
#======================================================
# * START to setup from here!
#======================================================
'actor' => 1011,
#========================================================
# * [END] Database Limit Breaker Setup Part
#========================================================
'end' => nil # End
}
if DLB_USE_IT
start_time = Time.now
DLB_DATA.each do |k,v|
dvar = nil
case k
when 'switch'; dname = 'System'; dvar = 'switches'; dnewdata = ''
when 'variable'; dname = 'System'; dvar = 'variables'; dnewdata = ''
when 'actor'; dname = 'Actors'; dnewdata = 'RPG::Actor.new'
when 'class'; dname = 'Classes'; dnewdata = 'RPG::Class.new'
when 'skill'; dname = 'Skills'; dnewdata = 'RPG::Skill.new'
when 'item'; dname = 'Items'; dnewdata = 'RPG::Item.new'
when 'weapon'; dname = 'Weapons'; dnewdata = 'RPG::Weapon.new'
when 'armor'; dname = 'Armors'; dnewdata = 'RPG::Armor.new'
when 'enemy'; dname = 'Enemies'; dnewdata = 'RPG::Enemy.new'
when 'troop'; dname = 'Troops'; dnewdata = 'RPG::Troop.new'
when 'state'; dname = 'States'; dnewdata = 'RPG::State.new'
when 'animation'; dname = 'Animations'; dnewdata =
'RPG::Animation.new'
when 'tileset'; dname = 'Tilesets'; dnewdata = 'RPG::Tileset.new'
when 'commonev'; dname = 'CommonEvents'; dnewdata =
'RPG::CommonEvent.new'
when 'end'; next
else; p 'unknown DLB_DATA!', 'Check carefully what you typed in
DLB_DATA'
end
base_data = load_data('Data/' + dname + '.rxdata')
data = dvar.nil? ? base_data : eval('base_data.' + dvar.to_s)
unless data.size > v and v - (data.size - 1) <= 0
add_data = Array.new(v - (data.size - 1)) { eval(dnewdata) }
data.push *add_data
save_data(base_data, 'Data/' + dname + '.rxdata')
end
end
p 'Finished in ' + (Time.now - start_time).to_s + ' sec'
exit
end
VX Version:
Code: #===============================================================
# ? [VX] ? Database Limit Breaker ? ?
# * Break limit of data number in database files *
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 22/05/2008
# ? Version: 1.0
#--------------------------------------------------------------
#==========================================
# ** HOW TO USE
#------------------------------------------
# 0. Open your project (Recommend to backup your database files first~)
# 1. Paste this script in above 'Main'.
# 2. Set DLB_USE_IT = true
# 3. Setup database files you want to change, in DLB_DATA
# 4. Run your game...
# 5. When it finished, game will close itself
# 6. Close your project *without save*
# 7. Open your project again. Done!
# 8. You can either remove this script, or set DLB_USE_IT = false
#==========================================
#===========================================================================
# Use limit breaker? (set this to false after you run this script,
# and haven't change anything in DLB_DATA after that)
# or REMOVE this script when finished~
#===========================================================================
DLB_USE_IT = true # (true / false)
DLB_DATA = {
#======================================================
# Database file you want to change their number:
# * Limit of normal database files are 999
# * Limit of variables and switches are 5000
# This script will allow you to change their number over their limit~
#===============================
# ** How to setup **
#-------------------------------
# Add 1 line below per 1 database file you want to change.
# Structure: 'Database_File' => (number),
# e.g. 'switch' => 5500,
# (* Don't forget to put , behind the line!)
#==============================================
# **
[list] Database_File
#----------------------------------------------
# 'switch' for Game Switches
# 'variable' for Game Variables
# 'actor' for Actors
# 'class' for Classes
# 'skill' for Skills
# 'item' for Items
# 'weapon' for Weapons
# 'armor' for Armors
# 'enemy' for Enemies
# 'troop' for Troops
# 'state' for States
# 'animation' for Animations
# 'commonev' for Common Events
#======================================================
# * START to setup from here!
#======================================================
'actor' => 1011,
'class' => 1011,
'skill' => 1011,
'item' => 1011,
'weapon' => 1011,
'troop' => 1011,
'enemy' => 1011,
'state' => 1011,
'armor' => 1001,
'animation' => 1011,
'commonev' => 1011,
'switch' => 6000,
'variable' => 6000,
#========================================================
# * [END] Database Limit Breaker Setup Part
#========================================================
'end' => nil # End
}
if DLB_USE_IT
start_time = Time.now
DLB_DATA.each do |k,v|
dvar = nil
case k
when 'switch'; dname = 'System'; dvar = 'switches'; dnewdata = ''
when 'variable'; dname = 'System'; dvar = 'variables'; dnewdata = ''
when 'actor'; dname = 'Actors'; dnewdata = 'RPG::Actor.new'
when 'class'; dname = 'Classes'; dnewdata = 'RPG::Class.new'
when 'skill'; dname = 'Skills'; dnewdata = 'RPG::Skill.new'
when 'item'; dname = 'Items'; dnewdata = 'RPG::Item.new'
when 'weapon'; dname = 'Weapons'; dnewdata = 'RPG::Weapon.new'
when 'armor'; dname = 'Armors'; dnewdata = 'RPG::Armor.new'
when 'enemy'; dname = 'Enemies'; dnewdata = 'RPG::Enemy.new'
when 'troop'; dname = 'Troops'; dnewdata = 'RPG::Troop.new'
when 'state'; dname = 'States'; dnewdata = 'RPG::State.new'
when 'animation'; dname = 'Animations'; dnewdata =
'RPG::Animation.new'
when 'commonev'; dname = 'CommonEvents'; dnewdata =
'RPG::CommonEvent.new'
when 'end'; next
else; p 'unknown DLB_DATA!', 'Check carefully what you typed in
DLB_DATA'
end
base_data = load_data('Data/' + dname + '.rvdata')
data = dvar.nil? ? base_data : eval('base_data.' + dvar.to_s)
unless data.size > v and v - (data.size - 1) <= 0
add_data = Array.new(v - (data.size - 1)) { eval(dnewdata) }
data.push *add_data
save_data(base_data, 'Data/' + dname + '.rvdata')
end
end
p 'Finished in ' + (Time.now - start_time).to_s + ' sec'
exit
end
Instruction
There is instruction step-by-step in the script.
Quote:#==========================================
# ** HOW TO USE
#------------------------------------------
# 0. Open your project (Recommend to backup your database files first~)
# 1. Paste this script in above 'Main'.
# 2. Set DLB_USE_IT = true
# 3. Setup database files you want to change, in DLB_DATA
# 4. Run your game...
# 5. When it finished, game will close itself
# 6. Close your project *without save*
# 7. Open your project again. Done!
# 8. You can either remove this script, or set DLB_USE_IT = false
#==========================================
* I'm not sure if there's limit in database size.
As far as I test, 20000 weapons works fine~*
* You may run to 'Script is hanging' error, if the script use too long
time to process.
(e.g. when you create 20000 actors, and you already have only 10 in
database)
My suggestion to fix this is to create new actors about 1000 - 5000 at a
time. :)
Do that again and again until you get the number you want.
Mostly, it takes overall about 1 - 3 seconds when I tested to create
1000 data for all database files,
and 6000 for switches and variables.
Author's Notes
Free for use in your work if credit is included.
Bug Report?
Please give me these informations:
Quote:- What is it says in error window?
- When is it get error? (Right after run game, when you choose
something, etc.)
- Do you have any other scripts running in your game that may crash with
this script?
|