Académique Documents
Professionnel Documents
Culture Documents
erials.
1 - This is a main script. It contains the bulk of the actual data involving the
calculations, notetag readings, battler speeds and so on.
2 - This is a main script. It handles turn order.
3 - This is a main script. It's the eye candy script; modifies the positioning a
nd spacing of the order bar as well as the information text that shows up.
4 - This is a sub script. It adds an escape command into the system.
5 - This is a sub script. It adjusts the window sizes of the battlelogs, help wi
ndows and so on to optimize space.
6 - This is a sub script made by a different scripter. It unlocks the trademark
AT Bonuses of the system, allowing different bonuses to activate on different tu
rns.
Place the images in the System folder into your Graphics/System folder.
(The images that start with AT_BONUS_ are needed only for sub script 6, Rokan's
Ao no Kiseki Style AT Bonus script)
The setup is easy in theory. The only possibly confusing thing is if you're not
too good at maths, since you can use various Ruby syntax and formulas for anythi
ng that has a number value. Here's how things work.
Note: I'll be referring to 'turns' and 'units' here. Each action uses up a turn,
and each slot on the order bar is a unit. Fundamentally, they're the same, but
whenever I refer to a unit, I mean the slots in the order bar and their order. T
urns are overarching throughout the battle.
*******
Speed
*******
The core of an ATB is speed. It determines how often you can act, and is based o
n agility. This is how your speed is calculated (It's a little complicated) in t
he script:
battlers = $game_party.battle_members + $game_troop.members # Gets informati
on of all the members in the battle.
total = 0.0 # (1)
for battler in battlers
total += battler.agi # (2)
end
mean = total / battlers.size # (3)
standard_deviation = 0.0 # (5)
for battler in battlers
standard_deviation += (battler.agi - mean) * (battler.agi - mean) # (5)
end
standard_deviation /= battlers.size # (6)
standard_deviation = Math.sqrt(standard_deviation) # (7)
for battler in battlers
if standard_deviation != 0
battler.spd = ((battler.agi - mean) / standard_deviation) * 10 # (8)
else
battler.spd = 0 # (9)
end
When you're dealing with stuff like speed and turn order, it's always fun to be
able to speed up your allies and slow down your enemies. That's where the <slow>
tag comes in. The usage is exactly the same as with the <charge> tag, except it
works in Weapon noteboxes as well. Simply place an integer or a formula after t
he tag to be able to slow down the target of your spell by that number of units.
For example:
<slow> 2
will slow down the target by 2 units, while
<slow> rand(3) + 1
will slow the target by 1-3 turns [rand(3) picks a random value between 0 and 2,
since Ruby starts counting from 0].
Negative numbers will speed up the target, so
<slow> -1
will speed up the target by 1 unit.
Now, there are two optional notetags that can be used for this. They are:
<slowrate> n ('n' is the percentage rate that the slow is successful. For exampl
e, setting this to 50 means that the skill has a 50% chance of slowing an enemy.
This tag must be used in conjunction with <slow> n.)
<noslow> (Placing this tag in an actor or enemy notebox will make that actor/ene
my immune to the effects of slowing. This works for both positive and negative e
ffects, so you can't speed 'em up either.)
*******
Graphics
*******
This is just a small side section on graphical usage within the script. The scri
pt uses the actor's sprite in the order bar to show which actor's in which unit.
You can also specify a default monster graphic for when you don't specify one i
n lines 65 and 68 in the first main script. But having all those different moste
rs share the same icon is kinda... boring, no? Well, you can specify enemy sprit
es to use in the order bar with a simple line. Here it is (Note that it doesn't
have the brackets that the other notetags do): GRAPHIC n x, where 'n' is the nam
e of the filename with the monster graphic (Located in Graphics\Characters), and
'x' is the index of the monster. Refer to the following grid to see which area
of the image corresponds to which index:
0 1 2 3
4 5 6 7
As an example and as can be seen in the demo, let's assign a custom icon to the
slime. Here's the tag:
GRAPHIC Monster2 2
The slime's graphic can be found in the image file Monster2.png located inside t
he Graphics\Characters folder, and it's the third monster in the top row, which
is an index number of 2.
*******
AT Bonus (by Rokan)
*******
The is a bonus script by Rokan of Kaisou-Ryouiki, whose terms and conditions all
ow me to post this after translating it (modifying it). The other two sub script
s and the three main scripts are all by Saba Kan of PetitRare, so this is a nice
example of a scripter scripting a very nice add-on to a battle system created b
y another scripter.
The AT Bonus is a trademark symbol of the Eiyuu no Kiseki (Legend of Heroes) bat
tle system. Basically, units on the order bar are randomly assigned a bonus that
can range from healing to certain criticals and more, and when the unit reaches
the top, whoever's turn it is gets that bonus. This is the second main reason I
distinguish between units and turns. AT Bonuses do not move around the order ba
r; they are fixed to their unit and slowly move towards the top, upon which they
grant their bonus.
This is the list of AT Bonuses available within the script:
Recover 10% HP at start of turn.
-------------------------------------------------------------------Recover 50% HP at start of turn.
-------------------------------------------------------------------Recover 10% MP at start of turn.
-------------------------------------------------------------------Recover 50% MP at start of turn.
-------------------------------------------------------------------Recover 10% TP at start of turn.
-------------------------------------------------------------------Recover 50% TP at start of turn.
-------------------------------------------------------------------Critical (All damage/healing effectiveness is multipled by 1.5)
-------------------------------------------------------------------Perfect Guard (Cannot be damaged, Cannot be healed, No Cancel, State Immun
ity, No Slow)
-------------------------------------------------------------------Rush (Act twice in a row)
Sadly, these bonuses are hard coded within the script, and are thus are unchange
able to those without sufficient knowledge of RGSS3. What IS changeable though a
re the rates at which these bonuses activate. This is defined in the configurati
on block at the top of the script in a hash array. There is also a variable assi
gnment at line 55: This lets you change the Bonus rates mid-game. Here is an exa
mple array from the demo:
0 => [100, 5, 3, 5, 3, 5, 3, 2, 2, 2],
In order, the array goes like this:
<Variable Number from line 55> => [<Chance of nothing happening>, <Chance of 10%
HP Recovery>, <Chance of 50% HP Recovery>, <Chance of 10% MP Recovery>, <Chance
of 50% MP Recovery>, <Chance of 10% TP Recovery>, <Chance of 50% TP Recovery>,
<Chance of Critical>, <Chance of Perfect Guard>, <Chance of Rush>],
Now, the chances are NOT percentages. To get the actual percentage chance of som
ething happening, this is what you do: (Rate)/(Total Rate)*100 = Actual Rate. Th
is means that:
Actual Rate of Nothing Happening = 100/(100+5+3+5+3+5+3+2+2+2)*100 = 100/130 * 1
00 = 0.77 * 100 = 77%
So with the example given, there's a roughly 77% chance of there being no bonuse
s, about 4% chances of there being 10% heals and 3% chances of 50% heals of HP,
MP and TP, and about 1.5% chances of Critical, Perfect Guard and Rush when the V
ariable defined in line 55 (Default: 10) is 0 (Default).
Feel free to play around with the hash, have higher rates of getting Critical an
d a near impossible chance of getting Rush, eliminate Perfect Guard completely,
or whatever you feel like. Those of you who fancy yourself scripters can try and
modify the default settings, maybe make it so you can define more bounuses or s
omething? xD The sky's the limit (If you know what to do)!
*******
End
*******
And that should be that! Think I've covered everything. It's not really all that
hard. If there're any questions, feel free to pop me a line. I'm not a scripter
though, so don't expect too much on that note, but I might be able to help you
out with debugging and figuring out what's going on.
Kirin, out.