Alright. I dislike all the other tutorials on here that support event-based action battle systems. They are quite buggy frequently, and frankly, don't make much sense. I think I've come up with the easiest formula for making the framework to an ABS. My game uses this framwork, but I've added a heck of a lot more, but I won't be posting that for the public. For now, here's how you make a very basic ABS with events.
First of all, my favorite type of action battle system is similar to Quintessence. Where you encounter an enemy then flash to a new screen with an enemy and the battle commences. This is what this supports. Of course, if you want, you can make this battle system on a large map with 50 monsters. Have fun writing the 50 event pages that are long enough with one monster. Sounds like fun. Anyway, here's the set-up.
So far so simple, huh? Just setting up four variables and about one switch is all this ABS needs. When you've finished that and got a snack, move on to part 2.
So far, we have three events, one switch, and about 5 or so variables, and we're almost done! The hardest part is done. The net part is boring and time-consuming, but it isn't hard. One more event to make, kiddies.
When setting up another fight, copy the events, but switch the two enemy variables for a new enemy event coordinates, and switch the battling enemy location variables to the new ones.
Easy. Peasy. -_-
RPG MAKER XP VERSION:
http://www.box.net/shared/j5qegs78k8
RPG MAKER VX VERSION:
http://www.box.net/shared/5z73sjiqsc
First of all, my favorite type of action battle system is similar to Quintessence. Where you encounter an enemy then flash to a new screen with an enemy and the battle commences. This is what this supports. Of course, if you want, you can make this battle system on a large map with 50 monsters. Have fun writing the 50 event pages that are long enough with one monster. Sounds like fun. Anyway, here's the set-up.
For starters, make a basic map with a roaming monster. When you touch it, make a transition to a new map where you turn on any health HUDS you have and whatnot. Now, put any random foliage and do the mapping. Leave enough open space so the battle can actually take place, though.
Near the lower right or left part of the screen or wherever you want, start a new event. Call it "Positioning", and make it Parallel Process.
Bring up the event commands, and go to "Control Variables"
Create a new variable and call it "Hero X" or "Player X". Whatever you prefer.
Operation: SET
Operand: Character > Player > Map X
Click ok.
Make another new variable. Call it "Hero Y"
Operation: SET
Operand: Character > Player > Map Y
OK.
Make a fourth variable. Call it "ABS Monster X"
At this time, go ahead and make a random event away from the hero. give it a Ghost or whatever character graphic, and name it "Monster".
Go back to your variable event. In your ABS Monster X, do the following:
Operation: Set
Operand: Character > [monster event name] > Map X
Do the same thing, but do it with Map Y instead for your monster.
Go ahead and finish that event.
you have now completed the set-up of your ABS!
Near the lower right or left part of the screen or wherever you want, start a new event. Call it "Positioning", and make it Parallel Process.
Bring up the event commands, and go to "Control Variables"
Create a new variable and call it "Hero X" or "Player X". Whatever you prefer.
Operation: SET
Operand: Character > Player > Map X
Click ok.
Make another new variable. Call it "Hero Y"
Operation: SET
Operand: Character > Player > Map Y
OK.
Make a fourth variable. Call it "ABS Monster X"
At this time, go ahead and make a random event away from the hero. give it a Ghost or whatever character graphic, and name it "Monster".
Go back to your variable event. In your ABS Monster X, do the following:
Operation: Set
Operand: Character > [monster event name] > Map X
Do the same thing, but do it with Map Y instead for your monster.
Go ahead and finish that event.
you have now completed the set-up of your ABS!
So far so simple, huh? Just setting up four variables and about one switch is all this ABS needs. When you've finished that and got a snack, move on to part 2.
Here's where it can get a little tricky. Hold on, though. I got ya covered.
Next to your variable event, make a new event, and title it "Enemy HP". Make it parallel process.
In it, start a variable. Call it : "Enemy Health"
Operation: SET
Operand: Constant > 8
You can edit the Constant to whatever you want, depending on the monster or whatnot.
After that, put Control Self Switch: A on. Make a new page in your event.
On page two, start a conditional branch. Set it to Variable: Enemy Health is Less than or equal to Constant: 0.
Inside the conditional branch, not where it says "Else", make a switch called "Enemy Dead" turn on. Then, put any victory ME you want and a teleport back to where the player was on the previous map.
Ta-da! Now when the player kills the monster, everythings set up. Easy as pie, wasn't it?
Time to actually set up the monster. In your monster's event page, set the Autonomous Movement to approach. I like to set the frequency to 6 so the monsters movement looks fluid, but you can set the speed to whatever. Now, for a ranged monster, the programming would be different, but thats for advanced eventing that I don't plan on doing, so keep it to approach for now.
Now, in Trigger, click Event Touch. That way, the player only gets hit when the enemy touches him, not vise-versa.
In the enemies' event commands, go to page 2 and click "Show Animation"
If you are using a ghost or something, probably just use "Hit"
Anyway, make the animation on the player, and pick whatever animation you want to be used for when the player gets hit. Click OK. Then, head to page 3, and choose "Change HP". Make it Entire Party. It shouldn't matter, because you will probably use a one player party because events don't do squad based ABS. Operation: DECREASE.
Operand: constant > ~100. Pick whatever. Aluxes starts with like 770...so 8 hits should suffice, no?
Then, click OK. Head back to page two with a new command. Put "set move route" the move route is for "This Event". Then, click "Move Away form Player" two times. Then make Self Switch A turn on. Make a new page (make the graphic the same as your monster graphic), and then put Self Switch A activates it (MAKE IT PARALLEL PROCESS). Make a wait command for about 15 frames, then Self Switch A > Off. you should have three pages for the the enemy now. (commands, waiting, and dead)
Don't forget, though, to make a second event page and make it completely blank. Make the event page only be used if Switch: Enemy Dead..is on. Yay!!
Next to your variable event, make a new event, and title it "Enemy HP". Make it parallel process.
In it, start a variable. Call it : "Enemy Health"
Operation: SET
Operand: Constant > 8
You can edit the Constant to whatever you want, depending on the monster or whatnot.
After that, put Control Self Switch: A on. Make a new page in your event.
On page two, start a conditional branch. Set it to Variable: Enemy Health is Less than or equal to Constant: 0.
Inside the conditional branch, not where it says "Else", make a switch called "Enemy Dead" turn on. Then, put any victory ME you want and a teleport back to where the player was on the previous map.
Ta-da! Now when the player kills the monster, everythings set up. Easy as pie, wasn't it?
Time to actually set up the monster. In your monster's event page, set the Autonomous Movement to approach. I like to set the frequency to 6 so the monsters movement looks fluid, but you can set the speed to whatever. Now, for a ranged monster, the programming would be different, but thats for advanced eventing that I don't plan on doing, so keep it to approach for now.
Now, in Trigger, click Event Touch. That way, the player only gets hit when the enemy touches him, not vise-versa.
In the enemies' event commands, go to page 2 and click "Show Animation"
If you are using a ghost or something, probably just use "Hit"
Anyway, make the animation on the player, and pick whatever animation you want to be used for when the player gets hit. Click OK. Then, head to page 3, and choose "Change HP". Make it Entire Party. It shouldn't matter, because you will probably use a one player party because events don't do squad based ABS. Operation: DECREASE.
Operand: constant > ~100. Pick whatever. Aluxes starts with like 770...so 8 hits should suffice, no?
Then, click OK. Head back to page two with a new command. Put "set move route" the move route is for "This Event". Then, click "Move Away form Player" two times. Then make Self Switch A turn on. Make a new page (make the graphic the same as your monster graphic), and then put Self Switch A activates it (MAKE IT PARALLEL PROCESS). Make a wait command for about 15 frames, then Self Switch A > Off. you should have three pages for the the enemy now. (commands, waiting, and dead)
Don't forget, though, to make a second event page and make it completely blank. Make the event page only be used if Switch: Enemy Dead..is on. Yay!!
So far, we have three events, one switch, and about 5 or so variables, and we're almost done! The hardest part is done. The net part is boring and time-consuming, but it isn't hard. One more event to make, kiddies.
Make your third event down where your other two are. Set this one to, you guessed it, Parallel Process.
Make a conditional branch, on page four, and make it so Button: "Y" is being pressed. With RMXP's resetted controls, this means the "S" key, basically.
Inside the conditional branch, make ANOTHER conditional branch. Page 3, Character > Player > is facing UP.
Inside that second conditional branch, do the following:
Control Variables: Player Y Subtract 1
Conditional Branch: Variable Player Y is equal to Variable Enemy Y.
Conditional Branch: Variable Player X is equal to Variable Enemy X.
Show Animation: [enemy event], Sword, Spear, whatever your main character's weapon is
Control Variables: [Enemy HP] Subtract 2
wait: 3 frames
Self Switch A > off
then stop.
took a while, didn't it. Yeah, well, life isn't a bag of chips. That made no sense. Oh well, don't give up. Only three more sections of that and you are DONE.
After the Conditional Branch: player facing Up is finished, go directly below that. Start a new conditional branch.
Player is facing: Right
Control Variables: Player X add 1
conditional branch: player x is equal to enemy x
conditional branch: player y is equal to enemy y
show animation
variables: enemy HP -2
wait: 3 frames
Self Switch A > off
there. now, do the same thing again beneath that section.
conditional branch: player is facing left
variables: player x subtract 1
conditional branch: player x equal to enemy x
conditional branch: player y = enemy y
animation
enemy HP -2
wait: 3 frames
Self Switch A > off
Alright. Almost done.
player is facing down
player y +1
player y = enemy y
player x = enemy x
animation
HP -2
wait: 3 frames
Self Switch A > off
Guess what. YOU ARE DONE!
Make a conditional branch, on page four, and make it so Button: "Y" is being pressed. With RMXP's resetted controls, this means the "S" key, basically.
Inside the conditional branch, make ANOTHER conditional branch. Page 3, Character > Player > is facing UP.
Inside that second conditional branch, do the following:
Control Variables: Player Y Subtract 1
Conditional Branch: Variable Player Y is equal to Variable Enemy Y.
Conditional Branch: Variable Player X is equal to Variable Enemy X.
Show Animation: [enemy event], Sword, Spear, whatever your main character's weapon is
Control Variables: [Enemy HP] Subtract 2
wait: 3 frames
Self Switch A > off
then stop.
took a while, didn't it. Yeah, well, life isn't a bag of chips. That made no sense. Oh well, don't give up. Only three more sections of that and you are DONE.
After the Conditional Branch: player facing Up is finished, go directly below that. Start a new conditional branch.
Player is facing: Right
Control Variables: Player X add 1
conditional branch: player x is equal to enemy x
conditional branch: player y is equal to enemy y
show animation
variables: enemy HP -2
wait: 3 frames
Self Switch A > off
there. now, do the same thing again beneath that section.
conditional branch: player is facing left
variables: player x subtract 1
conditional branch: player x equal to enemy x
conditional branch: player y = enemy y
animation
enemy HP -2
wait: 3 frames
Self Switch A > off
Alright. Almost done.
player is facing down
player y +1
player y = enemy y
player x = enemy x
animation
HP -2
wait: 3 frames
Self Switch A > off
Guess what. YOU ARE DONE!
When setting up another fight, copy the events, but switch the two enemy variables for a new enemy event coordinates, and switch the battling enemy location variables to the new ones.
Easy. Peasy. -_-
RPG MAKER XP VERSION:
http://www.box.net/shared/j5qegs78k8
RPG MAKER VX VERSION:
http://www.box.net/shared/5z73sjiqsc