For the "lower percentage" problem:
Well, with very basic scripting you can specific intervalls in events.
Let's create, say, 70%-20%-10%.
Variable: [0001] = Random (1..10) => the same randomizing, as above
Open a conditional branch, look for the entry "script" at the fourth page. Enter this:
( $game_variables[1] >= 1 ) && ( $game_variables[1] <= 7 )
Second condittion:
( $game_variables[1] >= 8 ) && ( $game_variables[1] <= 9 )
Third one:
$game_variables[1] == 10
Now, what does all this mean?
"$game_variables[1]" - the script "word" for the first variable, the [0001]. If you wanted to use [0006], write 6 in the brackets, and so on.
"$gamevariables[1] >= 1 " >= Easy. Greater than one.
( ) && ( ) --> "&&" means "and". The effect will be triggered only when
both condition is met. This is the main reason for the script. There's no "and" in normal events (or just I didn't notice it...
)
Adding all these elements together, we wrote:
"If variable [0001] is between 1 and 7"
"If variable [0001] is between 8 and 9"
"If variable [0001] is 10"
About scripting it:
As far as I know, in the basic system, there's no "treasure chest". It's just an event. You could script it, but you had to place it, trigger it, all the things events already can do. So you probably started with "Game_Event" as a parent class, then writing exactly the same thing what you wrote, just in methodes, and script language.
Of course, if you do "ohmygod, that's awfull much!!!" number of chests (like 2-3000
), it's worth doing it. Otherwise, it's pretty pointless.