Help - Search - Members - Calendar
Full Version: + [ Database Limit Breaker XP ] +
RPG RPG Revolution Forums > Scripting > Script Submissions > RGSS-Submissions
woratana
Database Limit Breaker XP
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. smile.gif

I finished this script for a while, but haven't post it till there is request in here:
http://www.rmxp.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~ laugh.gif


Script
Place it above main
Click to view attachment



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. smile.gif
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?
YanXie
I just noticed this script in this section >.>

I think this would be helpfull for big scaled projects

cheers, puppeto4. smile.gif
Zeldaknight
Nice script biggrin.gif ! And it actually works (I had my doubts...) and it's one that you do in RMXP, not in the script database.
Blizzard
This is nice. People often ask me for this type of script and sometimes they complain that they tried other scripts already, but they were buggy. This is very useful. I'll consider linking here directly. Or you can post the script at my forum as well (link is in my profile). smile.gif
NOWAYLARRY
Hey I'm a real noob at scripting. To change HP and SP what would I type and on which line of code would I put it?
woratana
QUOTE (Blizzard @ Nov 4 2008, 05:22 AM) *
This is nice. People often ask me for this type of script and sometimes they complain that they tried other scripts already, but they were buggy. This is very useful. I'll consider linking here directly. Or you can post the script at my forum as well (link is in my profile). smile.gif

I think I have an account there. I will post it at your webboard soon. ^^

QUOTE (NOWAYLARRY @ Nov 5 2008, 09:34 AM) *
Hey I'm a real noob at scripting. To change HP and SP what would I type and on which line of code would I put it?

Unfortunately, this is not a script for you. I think there is KGC script can do that.
Zever
I'm not sure if this is the script for me but I'm looking to change the amount of pictures that can be open at one time. You have to give each a number and it maxes out at 50. For the project I'm working on I'm going to need many more. Say 100+. Can you help me, because there was nothing about pictures in your code?
Night5h4d3
while that cant be done with a limit breaker, it can be done with a script call, simply use this method:
CODE
$game_screen.pictures[number].show(@parameters[1], @parameters[2], x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
Zever
Thank you for your help, but scripting isn't my best aspect. I'm not completely lost, but I'll need some help to get it to work. I understand how to use a script call, and that I should copy and paste that into the script box, but I'm pretty much lost after that. I don't know what the paramaters 1, 2, 6, 7, 8, and 9 are. I also don't know why you skipped 5. I assume you skipped 3 and 4 because of x and y. And in the very fist part where it says $game_screen.pictures[number].show I'm not sure how to replace the number part because the picture isn't given a number (that I know of) until it is being displayed and if that's the number you're reffering to I'm still limited to 50 pictures. I appreciate your help and I'm sorry I'm making this difficult, but thank you for working with me.
Night5h4d3
okay, im sorry for not describing in full detail earlier..

1) you choose the pictures number (most likely out of the 50 range)
2) subtract 1 from that number (because in coding, counting starts with 0) and that's the number that you put in
"$game_screen.pictures[number]"

parameters1: file name in "Graphics/Picture/<filename>" format
parameters2: origin from upper-left/center (leave true?)
parameters3: if the x/y location is determined by variable
parameters4: variable for x location
parameters5: variable for y location
parameters6: x zoom (0-2000)
parameters7: y zoom (0-2000)
parameters8: opacity (0-255)
parameters9: blending (0 = normal, 1 = add, 2 = sub)

so, if i wanted to call a full opacity, regular sized, normal picture called "this" from variable's 4/5,x/y respectively, that isnt in the 50 limit, i'd call this:
$game_screen.pictures[51].show("Graphics/pictures/this", true, $game_variables[3], $game_variables[4], 100, 100, 255, 0)

Zever
Thank you for explaining that. I thought I understood it until I tried it. What you have makes sense, but it didn't work for me. This is what I put.

$game_screen.pictures[51].show(Graphics/Pictures/0White.png, true, $game_variables[0001], $game_variables[0001], 100, 100, 255, 0)

I tried a few variations to it like using two seperate variables, using just 1 instead of 0001, changing the picture's number, etc. But nothing worked. I kept getting this error.

SyntaxError occurred while running script.

I have no clue what's wrong or where I messed up. Could you please help me.
Night5h4d3
Keep the variables as a 0-whatever not a 000whatever.
Here is where you went wrong:
remember this line?
CODE
[i]parameters1: file name in "Graphics/Picture/[b]<filename>[/b]" format[/i]

Well, whenever you type a file directory, it will ALWAYS be in a string format. To fix your code, simply apply quotation marks arround the file's loctaion:
CODE
"Graphics/Pictures/0White.png"


if that doesn't work do this also:
change parameters2: origin from upper-left/center (leave true?) to a 0/1 value. 0/1 is the same as false/true respectively, but in some occasions only a number rather than boolean is alowed.
Zever
I'm sorry for all the trouble. I still can't get this to work. I really don't know how to explain it this time. I tried everything you told me to, but it still won't work. Again sorry for a ll the trouble.

Edit: This is what I put in the call script.
CODE
$game_screen.pictures[51].show ("Graphics/pictures/Blue0", 1, $game_variables[1], $game_variables[2], 100, 100, 255, 0)
Night5h4d3
the problem now most likely is that the call script is getting confused due to it;s lack of text space. the snippit you have looks
like this:
CODE
$game_screen.pictures[51].show
("Graphics/pictures/Blue0", 1,
$game_variables[1], $game_variables
[2], 100, 100, 255, 0)

a simple fix would be to make it end up looking like this in the call script box:
CODE
$game_screen.pictures[51].show(
"Graphics/pictures/Blue0", 1,
$game_variables[1],
$game_variables[2], 100, 100, 255, 0)


also note, that when calling a function with arguments (usually will have '(' and ')' the opening parinthesis '(' is not spaced from
the function it is being called by. such as this:
$game_screen.pictures[51].show("Graphics/pictures/Blue0", 1, $game_variables[1], $game_variables[2], 100, 100, 255, 0)
but not this:
$game_screen.pictures[51].show ("Graphics/pictures/Blue0", 1, $game_variables[1], $game_variables[2], 100, 100, 255, 0)
Such a difference is hard to notice, but noticing small errors are key to being a good scripter, so try it now, without that space and make
it look like this when it's in the call script box:
CODE
$game_screen.pictures[51].show(
"Graphics/pictures/Blue0", 1,
$game_variables[1],
$game_variables[2], 100, 100, 255, 0)

basicaly, if the first argument (pictures filename) cant fit all the way to the comma ',' then make the first line with just the function and the opening parinthesis:
function(
And UNLESS you can fit whatever argument your trying on the line ALL the way to the comma, then start the rest on a new line instantly after the last comma you can fit on that line.
one last note: if the closing parinthesis ')' cannot fit on the line, then a new line will not hurt, so long as it's AFTER the nearest fitting comma.
Zever
Okay, I have a few problems to report this time.
But let me start by saying I'm sorry for this being such a pain.

I fixed the code like you said to and I got this error:
QUOTE
NoMethodError occurred while running script.

undefinded method 'picture51' for #<Game_Screen:0x3fac4e0>


Shot in the dark, but I think this means I got it to work semi-correctly, but there is something wrong with my Game_Screen portion of my main scripts. So I messed around with it a little bit.

I made a new project (so it wouldn't be a big deal if it gets screwed up) and changed my Game_Screen to look like this:
CODE
#--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @tone = Tone.new(0, 0, 0, 0)
    @tone_target = Tone.new(0, 0, 0, 0)
    @tone_duration = 0
    @flash_color = Color.new(0, 0, 0, 0)
    @flash_duration = 0
    @shake_power = 0
    @shake_speed = 0
    @shake_duration = 0
    @shake_direction = 1
    @shake = 0
    @pictures = [nil]
    for i in 1..999
      @pictures.push(Game_Picture.new(i))
    end
    @weather_type = 0
    @weather_max = 0.0
    @weather_type_target = 0
    @weather_max_target = 0.0
    @weather_duration = 0
  end

and this:
CODE
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
...
    for i in 1..999
      @pictures[i].update
    end

The last part was a replacement of the picture update portion.
Then I got this error:
QUOTE
NoMethodError occurred while running script.

undefinded method 'picture51' for #<Game_Screen:<0x177deb0>


I have no clue what those error messages mean, other than I screwed up somewhere. Any suggestions?
Hall Of Famer
Oh my god this script looks great! I will probably use it together with the disk changer script.
ambrosecool
Wora,I'm going to be taking this thing to my site,with your permission of course.Credits and link to this site will be provided.I don't think I'll do that though...It's your script..
mast3rshake2049
Hey, this looks awsome. but i cant seem to be able to get it to work sad.gif Here is a copy and paste of how i typed the values:

#==============================================
# ** [List] Database_File
#----------------------------------------------
# 'switch' => 5000,
# 'variable' => 5000,
# 'actor' => 10,
# 'class' => 1000,
# 'skill' => 5000,
# 'item' => 5000,
# 'weapon' => 5000,
# 'armor' => 5000,
# 'enemy' => 5000,
# 'troop' => 5000,
# 'state' => 5000,
# 'tileset' => 1000,
# 'animation' => 1000,
# 'commonev' => 5000,
#======================================================
# * START to setup from here!
#======================================================
'actor' => 1011,
#========================================================
# * [END] Database Limit Breaker Setup Part



I have tryed diffrent values or leaving some as default but nothing. when i play test it says finished in 0.7 second or 0.8. this seems normal from the instructions. but when i close the project and open it again and try to add more than 999 items it just says please enter an integer between 0 and 999 like normal. so i dont know what im doing wrong.

I have tried both saving and not saving before and after play testing and none seem to work. it always says to enter between 0 and 999. any help would be wonderful as this script looks awsome. Exactly what i need (i like doing things on an epic scale biggrin.gif ) Also on a side note. would it be possible the break the self switch limit as well? instead of just the normal ABCD?

thanks again!
Night_Runner
I'll sign up for a youtube account for you then happy.gif



Sorry about the quality, hopefully I've talked though enough of it so you can follow.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.