How To Use

Published on January 2017 | Categories: Documents | Downloads: 70 | Comments: 0 | Views: 795
of 7
Download PDF   Embed   Report

Comments

Content

Place the three scripts in the order I've numbered them above Main and under Mat
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

battler.spd *= (SPEED_INFLUENCE / 100.0) # (10)
battler.spd += 50 # (11)
1) First, we zero the total just to make sure there's no leftover data.
2) We then total up all the agility values of the battlers.
3) Said total is divided by the number of battlers to get the average agility va
lue of all battlers.
4) We zero the std dev for the same reasons as in (1).
5) This is where things get a little complicated. Basically, it takes each indiv
idual battler's agility, subtracts the average agility of all battlers from it,
squares the remainder, then adds all the results of the individual battlers toge
ther. That's your new std dev.
6) Back to simple stuff. Divide the new std dev by the number of battlers.
7) Simple square root of the calculation in (6).
8) If the new std dev isn't 0, we take the battler's agility and subtract the me
an, then divide it by the std dev and multiply by 10.
9) If it's 0, then meh. It's 0.
10) This is where an option in the configuration block appears. SPEED_INFLUENCE
defaults to 100 (So there's no change), but if it's 150, for example, you multip
ly the result by 1.5.
11) Finally, just in case you have a speed of 0, we chuck a free 50 on for you.
Because we're kind.
This SHOULD mean that the minimum speed for any battler is 50, but if Debug is e
nabled, in the sample demo, the slimes and bat have speeds of under 0 (41 and 45
respectively). I'm not quite sure why this is. But meh, at least now you know h
ow it's calculated.
Yes, I DID open an Excel file and go through all the calculations to see if I've
got everything right. I have. >_>
For those of you not so inclined to go messing around in scripts, here's what th
e sample demo characters have:
Eric: Agi: 15 Speed: 50
Natalie: Agi: 28 Speed: 71
Terence: Agi: 15 Speed: 50
Slimes: Agi: 12 Speed: 41
Bat: Agi: 14 Speed: 45
Play around with them to get a good balanced battle speed.
*******
Delay (Skills, Items, States)
*******
This is pretty much the most important thing about this CBS (Aside from speed).
As with most types of battle systems, doing certain actions have a certain delay
before the actor can act again. Take for instance Final Fantasy X. You can visu
ally see how your actions affect when you can next act. Using a normal attack fo
r instance usually has a shorter delay, while using more powerful skills take lo
nger before you can act again. Of course, speed is also taken into account, but
eh. Details. This is where it all comes together.
The formula given for the default delay in the
, 5].max > What this means is that the default
- the speed of the attacker, then halved > or
s that the lowest your delay can ever go is 5.
Eric and Terence have a normal attack delay of

demo is this: < [(90 - a.spd) / 2
delay for a normal attack is < 90
5, whichever is higher. This mean
In the sample demo, for example,
20.

To assign a delay to a skill, simply place <delay> n in the notebox of a skill,
where n is the formula/value of the delay. For example, the above default delay
is located in the notebox of Skill #1: Attack as:
<delay> [(90 - a.spd) / 2, 5].max
Note that this tag can be used in states as well, in which case when the state i
s applied to a character, ALL of that character's skills take on the delay value
placed in there. For example, having a state with <delay> 0 will cause that sta
te to make any action the character does have no delay, essentially being able t
o act multiple times in succession (Unless skills with <charge> in them are used
, see below).
Finally, this tag can also be used in Item noteboxes.
*******
Charge (Skills, Items, States)
*******
This battle system allows you to have skills that take time to charge. You can c
all it charging or channeling, really, it's the same in concept. Upon using a sk
ill, the user gets knocked back a certain number of units on the order bar and a
symbol pops up on their unit. When it's their turn again, they unleash the skil
l they've been charging. It's that simple. The notetag itself is about as simple
. It's <charge> n, where 'n' is the number of units it takes for the user to cha
rge up or finish channeling the skill. This does NOT take into account stuff lik
e delays and hastes, so a skilled player can prevent enemy skills from executing
by simply delaying the enemy and speeding up their party, squeezing in enough t
urns for their party to take out the enemy before they can execute their skill.
As an example, a spell that takes 5 units to cast (5 turns assuming no delay/has
te shenanigans are going on) will have the following notetag:
<charge> 5
This is the main reason I distinguish between units and turns. <charge> 5 makes
the skill charge for 5 units, BUT it might take 10 turns before the actor can ac
tually unleash the skill.
Nice and simple, no? What's NOT so simple is the array of options available for
a simple <charge> n notetag. Well, it's still simple in theory, but meh. Basical
ly, there are three options that can be placed in a notebox that has the <charge
> n tag. These are:
<chargemsg> n ('n' is a string that pops up in the message log when the characte
r begins charging the skill. Use %s to denote the actor's name.)
<state> n ('n' is the ID of the state that will be placed on the actor while cha
rging the skill. For example, <state> 2 will poison the actor while charging.)
<statescope> n ('n' can be either 'allallies' or 'allenemies', or both by using
<statescope> n n. This is used in conjunction with <state> to affect all allies,
all enemies, or both.)
All three are optional.
What can they be used for? Many things. For example, you could have something li
ke a heroic song that increases the offensive power of your entire team while it
's being sung (charged). Using this example, here're the notetags:
<charge> 10 # The effect lasts for 10 turns, which is how long it takes to finis
h singing the song.
<chargemsg> %s starts singing a song of valor and honor! # This is the message t

hat appears when the song starts.
<state> 21 # This is the ID of a state that increases ATK and MATK. It's not nec
essary to set up Removal Conditions, since it's removed when the song is done.
<statescope> allallies # This causes the effect to hit all allies, but no enemie
s.
Finally, under 'Using Messages' in the skill tab, I'll have:
(User Name)'s song ends! # This message appears after the charge time is over an
d the skill is used, but since the skill's usage is technically the charging bit
, this is now the skill ending message.
And there you have it, a nice song that increases the offense of your party thro
ughout its duration. You can use this to have bards in your game, for example. T
here is a sample skill called Silence Song in the demo that uses the same concep
t, in case you want to see it firsthand.
You can also place formulas in there. So mages with high MAT can channel spells
faster than those with low MAT, for instance, with a formula like this:
<charge> [100-a.mat, 0].max
The above formula means that someone with 50 MAT will take 50 turns to channel t
he spell, while a mage with 80 will take 20 turns. It also has a maximum checker
that will make the charge cost 0 turns if the number goes into the negatives.
It should also be noted that, like the <delay> tag, the <charge> tag can also be
used within states. Having <charge> 0 in a state will cause anyone in that stat
e to charge/channel any skill/spell instantly, which is good for Limit Breaks/Ov
erdrives or a powerful late game skill.
*******
Cancel/Interruption (Skills, Items, Weapons)
*******
So you've got an enemy charging up a powerful skill. How do you stop it, aside f
rom outright killing the git before it unleashes? By cancelling/interrupting it,
of course. For the sake of consistency, I'll stick with interrupt since it soun
ds better. Cancel is used in the notetags though, since I thought it fit better
(And it's easier to type. >_>). Usage of this tag is very, very simple. As in,
there's no configuration for general use. Here's the tag:
<cancel>
That's it. Place that in a skill or weapon and that skill or weapon can now canc
el enemy attacks. Nifty~
Say what? You want that boss to have a skill that cannot be cancelled? Well you
sure ask a lot. Eh. Here're two optional tags that can be used:
<nocancel> (Place this in a skill notebox and it will be impossible to cancel th
at skill short of killing the bugger.)
<cancelrate> n ('n' is the percentage rate that the cancel is successful. For ex
ample, setting this to 50 means that the skill has a 50% chance of cancelling a
skill that's being charged. This tag must be used in conjunction with <cancel>.)
*******
Slow (Skills, Items, Weapons, States)
*******

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.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close