Charas-Project

Game Creation => Requests => Tutorials => Topic started by: TryEka on March 31, 2009, 11:22:50 AM

Title: Combo System
Post by: TryEka on March 31, 2009, 11:22:50 AM
If you know...how to make combo system or Limit Break in RPG maker 2003 please help me...!
Title: Re: Combo System
Post by: Prpl_Mage on March 31, 2009, 12:09:09 PM
Battle combo
Quote from: Zuhane
Ive never really known my purpose on charas... until now! I've never realy given a tutorial... until now!
Yeah, the reason I never made a tutorial is plainly because I had nothing to teach. This tutorial will enlighten
people to a much overlooked event which allows combos in battle.

=========What this tutorial does===========
You character gains a bit of charge for attacking. If he or she attacks 3 times,
the next time, the charge will reset and the character will attack twice in a row.
It's very simple and looks great.
==================================

(People who are advanced with RPG Maker need not read this tutorial)

First, we need a switch to be activated. Once activated, the combo effect will work
in all battles with this page of coding in.

1. Make a switch get turned on. This can be in the storyline so you start with it,
or be an ability you must purchase.

2. The event for the battle must be activated by 2 things, the switch must be on
and the character you want to have the ability must select attack. (don't worry,
you can make a battle event have more than 1 trigger.)

3. Here's the tricky bit. You must make a conditional branch inside the page activated
by the switch and character attack. So make a conditional branch, give it an else handler
(meaning if the condition has not been met, the "else" will take place.) Only 1 variable
has to be used (thank god!) Have the conditional branch set with a variable called...
I dunno... "Attack Charge" and set it to three.

4. This means that something will take place if the variable "Attack Charge"
is 3, and the thing in the else handler will take place if it's below 3. In the
main area in the conditional branch (not the else handler), add the instructions in 5.

5. a.) Insert a nice battle animation which shows you are about to do a combo.
It can be something exciting, or a simple green character flash.

b.) Enable the combo for that character by selecting... duhhhh.... "Enable Combo"
and setting it to 2.

c.) Set "Attack Charge" to 0 again.

This means that the character will do somthing cool, attack twice in a row and
then attack charge will be set back to 0. You will have to then attack 3 times again
to get this combo back, you won't permanently attack twice in a row.. and I'll
show you why in this next step...

6. You now need to put some events in the "else handler". These take place
if you do not have full attack charge. They are designed to charge your "Attack
Charge" up.

a.) Set "Enable Combo" to 1. That means that when you attack you
only attack once with the exception of when "Attack Charge" is 3 on step 5 that
I just showed you! Basically, you just attack once.

b.) Show a battle animation that demonstrates that you are gaining some
charge. Maybe an animation that says "+1 Charge!" or make the character
flash.

c.) Add 1 to "Attack Charge"!

7. That's it! Test your game and work on it if you want. Improve it, tamper with it, do whatever!
I don't want crediting but I don't want to be accused of copying other people's
games when I made this tutorial! That's it... hope it works...


Limit break
Quote from: Tomp
Hello and welcome to my first tutorial, this is about creating limit breaks that featured in FF3/6j, FFVII, FFVIII and FFIX. The over all tutorial level is about average, at most. A newbie could understand this. This tutorial is aimed at people using Rm2k3, but one or two of these sections can be implemented into rm2k.

Contents
FF3/6j Style Desperation Attack
FFVIII Style Limit Break
FFIX Style Limit Break
FFVII Style Limit Break


FF3/6j- Style limit break.

Ok, you might be thinking, FFVI didn't have any limit breaks, in a way, you might be right but they did have desperation attacks. Basically, if their hp were in the critical area (in yellow) then that character would have a 1 in 64 chance of pulling off a desperation attack with 'jawesome' animations. You can do this in two ways; I'll explain both of them.

The Easy Way

Open up the database. Go to the Hero Tab; check the box with Critical Probability (rm2k3) or Critical Hit Chance (rm2k) then change the chances of landing a critical hit to 64. However, there are problems with this. First off, this is always going to pull of a successful critical hit. Second, this is so easy many of you wouldn't even regard this as a tutorial. Well, I was only showing possibilities for this time of system.

The Harder Way

This consists of using variables & branch conditions and battle events, this part is not recommended for newbies but it is still possible for them to understand. This is really that hard to understand. Ok, first I'll show you the code and I'll explain it. Battle Events can be accessed by opening up your database, and going to the monster parties tab.

Trigger if Alex Hp is 1% More & 10% Less
<>Variable Change:[XXXX]: Slime1HP Set1:? HP
<>Variable Change:[XXXX]: Slime2HP Set 2:? HP
- We assigned the enemy’s hp to a variable each, even though they have exactly the same hp, for monsters that are like this only assign one, but however, if they are different varieties of monsters you will need a variable for each monster in the party.
<>Variable Change:[XXXX]: Slime1HP /7
<>Variable Change:[XXXX]: Slime2HP /7
- This takes the variable and divides it by 7 (Rounding up to the nearest number) which shows the damage by Alex’s desperation attack.
<>Variable Change:[XXXX]: AlexLimit Set randm [1*64]
Fork if [XXXX]: AlexLimit is 37
- Then it sets off a random variable, if the number lands on 37, then it decreases the Slime’s Hp each by what is in the variable.
<> Change Enemy HP 1:Slime V[XXXX] Decr.
<> Change Enemy HP 2: Slime V[XXXX] Decrs
<> Show Battle Anim: Axe A: Whole Group.
- The battle animation is purely for show, you don’t need this but this is to show the player that there is a desperation attack. Otherwise, S/he would have no clue.

That was rm2k code, rm2k3 is fairly similar so I won’t bother posting code for it again. Of course, if you want every character to have a different desperation attack, you’re going to have to create a new page for each person on battle events, which will have to be in every monster party. I know it sucks.

Ok, that section wasn’t very hard, but now for the FFVIII Style Limit Break. This will only work for rm2k3 or I should they way, I’m going to display it will be for rm2k3.

FFVIII – Style Limit Break

Again, this is for rpgm2k3 only. Sorry, rm2k’ers, but this is because of the more freedom that came with rm2k3, like more buttons & side view battle system as well as the ability to have more than 4 battle commands.

Unlike all other Final Fantasy where you could see when a limit break is going to happen (apart from, FF3/6j) this one was totally random, some rumours are spread about pressing circle a lot brings it up. But a better way to get a limit is to have low hp, which is what this section is about.

Ok, this is fairly simple like the FFVI One, but deserves a section of it’s own since I’ll make it a lot like FFVIII. How nice am I?

Create a new Battle event
Trigger: Hero [Squall]’s HP between [25-100]
<> Variable oper: [XXXX]: RndLimitBreak, Rand. [1-150]
<> Branch if. Variable[XXXX]: RndLimit Break is 68
<> Change Cond. Squall Limit Inflict
-If the Variable, which is random between 1 and 150 lands on 68, then it inflicts the limit break on Squall, who will then be able to use his Limits, and it won’t be Renozuken type (Sorry, maybe for my next tutorial)

Now Create a New Page for the battle event
Trigger: Hero [Squall]’s HP between [1-25]
<> Variable Oper: [XXXX]: RndLimitBreak, Rand. [1-5]
<>Branch if. Variable [XXXX]: RndLimitBreak is 3
<>Change Cond. Squall Limit Inflict
- If the hp is below 25% of max hp then, the random variable is much smaller therefore a larger chance of getting a limit.

Create a new battle command, for the sake of the tutorial, Limit. Don’t make it a default battle command. Just don’t otherwise the game will be far too easy. Make sure the new command is a skill subset. Now make a new condition, call it Limit, Rage, Pissed whatever. Now change the character pose to the first one, Fine. Now change the Recovery Box; Condition always rebates after 1 or 2 turns if you want.



It should look something like that. The reason, we have E as 0% is because enemies don’t get limit breaks, but you could change it if you want but it would involve have battle events, and creating more special attacks. I’m just saying do this if you truly want to, I don’t want any e-mails about how to create monster limits. So don’t ask, use this tutorial as help.

Ok, To learn the skills, set them up under the type ‘Limit’ Here’s an example.



As you may see, it has a hint towards my friend’s username. Do you remember how Squall learnt his Limits? By equipping various forms of Gunblades. I’ll give you an example of how to learn a skill of a gunblade.

First create your weapon call it: LionHeart
Set its price as 0
Change the attack value to say 50.
Give it an animation, a sword slashing for example.

Now create a Common event
Call it Squall’s Overdrives.
Set it as a parallel Process

<>Branch If. Squall Lionheart Equipped
<> Branch. If Squall Lionheart Useable
<>
ELSE Handler
<> Change Skills: Squall Lionheart Add
- Obviously, you’re going to need to do this for every weapon, Thank god FFVIII, only had a few.

That’s all for this section…Now onto the longer & more difficult FFVII/FFIX Style Limit Break section.

FFVII – FFIX Style Limit Breaks

For those who haven’t played FFVII/IX, these had very similar limits, They both used a limit bar (trance, FFIX) And everytime, the hero was hit by magic or physical force, the bar would fill up, (FFIX at a much slower speed)

A lot of the stuff is covered in the FFVIII Section, so you may want to look at it every now and again to make sure it’s right. This area isn’t too hard but the code is long and sometimes a pain in the ***.

Now for the actual skills, created a new Skill called it Braver, have a cool animation, and make sure it’s type is Limit or whatever you called your new command. Give it a description. Make it use MP if you want like FFIX. Choose an effect rating, how it’s influenced. The example is used in the FFVIII Style Tutorial.

Trigger: [Monster1:?] Has taken 100X + 1 Turns
Branch. If Enemy1? Can Act
<>Variable Oper[XXXX]: ALCounter, + 1
<>Variable Oper[XXXX]: Limitover to 1
- This checks if the first monster can act, and every turn he does act, we add one onto the Alex’s Limit Counter, and it also sets Limitover variable to 1, this comes into use later.
Branch. If Variable[XXXX]: ALCounter = 89
<> Inflict Limit Condition on Alex
- If the variable is equal to 89, then we inflict the Limit condition onto Alex.
<>Change Battle Commands
- Remove all of the commands, and then build them from the top {With the ‘Limit’ Command} and the other’s in the order they were in.
- Branch. If Alex uses the Limit Command
<> Variable Oper[XXXX]: Limitover - 1
<> Branch if. Variable [XXXX]: Limitover is 0
<> Change Character Condition: Alex to Normal
<>Variable Oper[XXXX]: ALCounter is 0
- When the variable Limitover is equal to 0, then it resets itself, and begins from the bottom for ALCounter.

There are drawbacks with this system, it fills up when the monster acts, but it doesn’t have to necessarily attack, he could be sleeping and the counter still fills. But it’s a little more realistic than if you’re really tired but you have the energy to pull of an amazing sword technique skill. Second of all, the condition goes away after 2 turns but limit is still there, so you could save limit until you have a really hard boss or something. And you’re going to have to create a new page in every battle event depending upon the number of monsters there are, and how many people are in your party.

If you look at the commands in the limit break menu, you’ll notice that there are all stacked together like FFIX. Now I will show the skill of how to create a limit system like FFVII.

Sort out, your skills, group them like the two weakest ones, called them Level 1 Limits. The next two, call them Level 2 Limits. Etc. Until all of your skills are sorted, with any luck you should have one Ultimate skill, if you don’t that’s fair enough. Just make sure;

1) Does more damage than the other.
2) One does less damage than the other but inflicts a major status like Doom on nearly everyone.
3) One heals your party and attacks, while the other devastates opponents.

Or something along those lines

Ok, now create a new command, just call it Limit Lvl 1, if you want to keep track. Then do the same for Limit Lvl 2, Limit Lvl 3 and so for how many Level Limits you want.

Now how do you actually create them so the heroes can learn the limits by using them so many times.
This area can be repetitive and boring, so please bare with me.
Create a new variable for every limit break except for the final Lvl 3/4 depending on how many skills you have.

I’ll Use Cloud as an example.

Level 1 Limits
Create new variables for both of them

Level 2 Limits
Create new variables for both of these

Level 3 Limits
Create a new variable for the first one of this level.
However, don’t create a new variable for the second limit of this level

Level 4
Again, don’t create a variable for this one.

The reasoning for this, is that the limit break you are using, will be used to indicate how you learn limit breaks. So say, you want to learn doom of the living but you only have greased lightning and you’re going to have to learn the next limit break, then learn the limit level after.

Create a new Common Event. Call it Alex’s Limit Breaks.

Let’s say we are using one variable…We’ll call this, LmtBCounter. This will be used to check whether a certain skill has been learned or not.
Ok, Create a new battle event.
In Battle events use this as a guideline.

Trigger: [Alex] uses Limit Command
<>Variable Oper: [XXXX]LmtBCounter, + 1

That was fairly simple…For those who are interested in the code and what it does, read this part.
Everytime, Alex uses the Limit Command, it adds one number onto the variable LmtBCounter, which we are going to use to indicate which skills are learnt. Ok, We’re going to create a NEW Common Event, this is used to check whether Alex Limit command will be Lvl 1,2,3 etc.

Name it Alex Limit Check
Set it as parallel Process
<>Branch. If Alex Limit Condition
<>Branch. If (Switch) [XXXX] Lvl 1 Limit ON
<>Change Battle Commands: All Remove
<>Change Battle Commands: Limit Lvl 1 Add
- Set all of the commands the way they were.
ELSE Handler
<>Branch. If Alex Normal Condition
<>Branch. If (Switch) [XXXX] Lvl 1 Limit ON
<>Change Battle Commands: Limit Lvl 1 Remove
<>Change Battle Commands: Limit Fight Add
- Set all of the commands the way they were.
ELSE Handler
<>Branch. If (Switch) [XXXX] Lvl 2 Limit ON
<>Change Battle Commands: All Remove
<>Change Battle Commands: Limit Lvl 2 Add
- Set all of the commands the way they were.
ELSE Handler
<>Branch. If Alex Normal Condition
<>Branch. If (Switch) [XXXX] Lvl 2 Limit ON
<>Change Battle Commands: Limit Lvl 2 Remove
<>Change Battle Commands: Limit Fight Add
- Set all of the commands the way they were.
ELSE Handler
<>Branch. If (Switch) [XXXX] Lvl 3 Limit ON
<>Change Battle Commands: All Remove
<>Change Battle Commands: Limit Lvl 3 Add
- Set all of the commands the way they were.
ELSE Handler
<>Branch. If Alex Normal Condition
<>Branch. If (Switch) [XXXX] Lvl 3 Limit ON
<>Change Battle Commands: Limit Lvl 3 Remove
<>Change Battle Commands: Limit Fight Add
- Set all of the commands the way they were. ELSE Handler
<>Branch. If (Switch) [XXXX] Lvl 4 Limit ON
<>Change Battle Commands: All Remove
<>Change Battle Commands: Limit Lvl 4 Add
- Set all of the commands the way they were.
ELSE Handler
<>Branch. If Alex Normal Condition
<>Branch. If (Switch) [XXXX] Lvl 4 Limit ON
<>Change Battle Commands: Limit Lvl 4 Remove
<>Change Battle Commands: Limit Fight Add
- Set all of the commands the way they were.
END.

There you go…a Whole section on code. Just copy it the best you can.

Ok, we’re going back to that Common Event for those who were wondering.

<>Branch. If Variable [XXXX]Alex’s Limit Breaks is 10 or more
<>Branch. If Alex knows [Lvl 1, 2nd skill]
<>
<> ELSE Handler
<> Change Skills: Alex [Lvl 1, 2nd skill] Add
- For those, who are wondering, this is what is happening so far. If the Limit Break variable is over a certain number (in this example, 10) then it teaches the hero the 2nd skill of the first limit. And if the hero doesn’t wish to change & continues using the Lvl 1 Limits, it doesn’t nothing at all! For each of the Level limits, you need to create an extra switch called “Got Lvl [X]” for the switching back process afterwards.

<>Branch. If Variable [XXXX]Alex’s Limit Breaks is 20 or more
<>Branch. If Alex knows [Lvl 2, 1st skill]
<>
<> ELSE Handler
<> Change Skills: Alex [Lvl 2, 1st skill] Add
<>Switch oper: Lvl 2 Limit ON
<> Switch Oper: Got Lvl 2 ON
- Now, if that same variable is equal to or over 20, it checks to see if Alex already knows the skill, if he doesn’t, it adds the new skill and changes the battle command. Oh, and don’t actually call them Lvl 1 Limit, Lvl 2 limit, lvl 3 limit etc. Unless you want a military type game. {It doesn’t work for spells, which is the opposite of this one guy said, I won’t mention his name} They are called Lvl 1, Lvl 2, Lvl 3 etc. for reference during the making of your game, just take the Lvl off the name before you release it and hit ‘apply’ so it saves it. It will work the same.

Do this so on until you have all of your skills sorted. There you go a FFVII Style Limit Break system.
Oh, for those who want the ability to create an ultimate limit break using an item to learn it, but they can only learn it when they have got all the other limits, here is how to do it.

Create a new item.
Call it Omnislash.
Set its price to 0 (Making it unsellable if you so wish)
Make its type an event.
(Make sure it links to the event which you start the common event with, otherwise bummer)

Create a new Common Event, how we all love these!

Trigger Switch: Lvl 4 Limit
<> Branch. If Alex knows [Lvl 3, 3rd skill]
<> Change Skills: Alex Omnislash Add
<> Switch Oper: Omnislash ON
<>Switch Oper: Lvl 3 Limit OFF
<> Switch Oper: Lvl 4 Limit ON
<> Change Items: Omnislash 1 Remove
ELSE Handler
<> Message: “I can’t learn this skill until I have the others first”
<> Switch oper: Lvl 4 Limit OFF
<>
- What that has done, is checked if Alex knows the 3rd Level, 2nd skill, if he does he has Omnislash added onto the skill list. If he doesn’t, we let the player know but Alex talking, error message, talking cow

Oh, and One last thing to make sure you don’t have to stay on the last limit, like if you made the ultimate limit sucky.

One Common Event
Set to Parallel Process
Call it: Change Back options

Create a Variable call it: Limitoptionkey

<>Key Input Process: 7
- In order to change back use the Shift button. Obviously, if you have already used the shift button put it on another key, 1 or 2 for example.
<> Branch If. Variable Limitoptionkey is 7
<> Message: What level do you wish to change your limit break to?
<> Show Choices: Limit Level 1/Limit Level 2/Limit Level 3/Limit Level 4
[limit Level 1 Handler]
<> Branch If. [XXXX]: Got Lvl 1 ON
<> Switch oper: [XXXX] Lvl 1 Limit ON
<> Switch oper: [XXXX] Lvl 2 Limit OFF
<> Switch oper: [XXXX] Lvl 3 Limit OFF
<> Switch oper: [XXXX] Lvl 4 Limit OFF
ELSE Handler
<> Message: You don’t have Level 1 Yet!”
[limit Level 2 Handler]
<> Branch If. [XXXX]: Got Lvl 2 ON
<> Switch oper: [XXXX] Lvl 2 Limit ON
<> Switch oper: [XXXX] Lvl 1 Limit OFF
<> Switch oper: [XXXX] Lvl 3 Limit OFF
<> Switch oper: [XXXX] Lvl 4 Limit OFF
ELSE Handler
<> Message: You dont have Level 2 Yet!”
[limit Level 3 Handler]
<> Branch If. [XXXX]: Got Lvl 3 ON
<> Switch oper: [XXXX] Lvl 3 Limit ON
<> Switch oper: [XXXX] Lvl 2 Limit OFF
<> Switch oper: [XXXX] Lvl 1 Limit OFF
<> Switch oper: [XXXX] Lvl 4 Limit OFF
ELSE Handler
 Message: You dont have Level 3 Yet!”
[limit Level 4 Handler]
<> Branch If. [XXXX]: Got Lvl 4 ON
<> Switch oper: [XXXX] Lvl 4 Limit ON
<> Switch oper: [XXXX] Lvl 2 Limit OFF
<> Switch oper: [XXXX] Lvl 3 Limit OFF
<> Switch oper: [XXXX] Lvl 1 Limit OFF
ELSE Handler
<> Message: You dont have Level 4 Yet!”
- What this does, is check for each of the level by the Got Level [X]” Switch if it’s on, it will change to the next level. That’s all there is to that.

Phew. Finally the longest section complete I wonder if they ll allow me to submit it, like one big tutorial…ah well….Any problems, come and contact me via e-mail or msn. Bye!
Title: Re: Combo System
Post by: TryEka on April 04, 2009, 05:42:56 AM
Can You show me the Picture?
Title: Re: Combo System
Post by: HobomasterXXX on April 04, 2009, 06:19:47 AM
You wont learn anything from seeing a picture and copying the code, meaning when you go to modify this code in any way, you will have no idea of what to do. Read the turtorial. If  you cant figure it out from that, you arent ready to make this complex a system.
Title: Re: Combo System
Post by: Prpl_Mage on April 05, 2009, 07:04:34 AM
Can You show me the Picture?

I don't have any pictures. These are tutorials.
I've supplied you with step by step "what to do". Now it's up to you to make it work.
Title: Re: Combo System
Post by: SaiKar on April 05, 2009, 08:32:14 PM
You wont learn anything from seeing a picture and copying the code, meaning when you go to modify this code in any way, you will have no idea of what to do. Read the turtorial. If  you cant figure it out from that, you arent ready to make this complex a system.

This man speaks truth. It's a harsh reality when asking for help about programming.