6 hours ago
(This post was last modified: 6 hours ago by DerVVulfman.)
After Battle EXP for Tough Fights
Not mine. Initial work by Iishinron (2002)
Not mine. Initial work by Iishinron (2002)
For RPGMaker 2000-2003
This is an evented system (Duh) that gauges how tough your opponent(s) are after having defeated them, and will only give the defined actors in the party XP if the fight was tough enough.
"You mean, I can go on a slime killing rampage and not go beyond level 2 no matter what?"
"Yup. They'd be too weak at that point."
THIS IS THE BASELINE for the system, not accounting for any enemies leaving battle, nor whether the party won or not. IF you allow for gameplay to continue in certain battles even after loss, then the Battle Triggered switch described below will need to instead be within the Won/Defeated conditional branch permitted by the Battle Processing event.
The system relies upon:
- One Switch
- 19 Variables
- Edit to the Troops database to apply values
- Four 'reusable' Common Events
- One Common Event per actor in use
SWITCHES:
- 0001 - Battle Triggered:
Turned on at Battle Turn 0 - Triggers the After Battle XP system in the field map
VARIABLES:
- 0001 - Troop Cumulatives: Estimated difficulty scores for all enemies in the party
- 0002 - Troop XP: Total XP given for the whole party (divided among party members)
- 0003 - Troop Difficulty: A multiplier actually, if your cumulative scores are a bit weak
- 0004 - PARTY Size: Size of the party
- 0005 - HERO ID: Database ID of the hero
- 0006 - HERO WeapID
- 0007 - HERO ShieldID
- 0008 - HERO BodyID
- 0009 - HERO HelmID
- 0010 - HERO AccessID
- 0011 - HERO MaxHP
- 0012 - HERO MaxSP
- 0013 - HERO - Attack
- 0014 - HERO - Defense
- 0015 - HERO - Mind'
- 0016 - HERO - Agility
- 0017 - Randomization: Generates a variable 1-10 point spread
- 0018 - HERO - Troop Cumulative
- 0019 - TROOP - To Beat
Values in RED are meant to be Game Dev editable
XP ONLY BY THE EVENT SYSTEM:
I personally REMOVE the XP from the enemies themselves. The XP gained will only happen after the battle has been fought.
BATTLE START:
Depicted here is a TROOP that has been set for the event system.
Upon battle start (Turn Count 0), it contains the values used by the event system and the switch/trigger that activates it. That is, if the troop is used for battles the player cannot walk away from. If you can escape battle and/or escape a loss, then the Battle Triggered switch shown above must be in the Battle Processing event's conditional branch instead.
The way I worked out the Troop Cumulative score was the total Attack, Mind, Defense, Agi, HP and MP scores of EACH enemy... all added up. That's 98 per Slime and 195 per Sylph.
But its not that strong a fight given this score will be divided by the total number in the party. Ergo the Troop Difficulty variable. Meh, I probably should have called it Troop Score Multiplier or something. Because a value of 684 is just too low for all four party members by default.
So now to the MECHANICS!
THE MECHANICS
Common Event #1
Above is the main event. It is a parallel process, but only activates when the Battle Triggered switch is turned ON. And once it has been triggered, the switch is immediately turned OFF.
It immediately cuts the values of the Troop Cumulative and Troop XP scores by the size of the party. Obviously, the more members in the party, the fewer shares of XP and so on.
Then my Troop Difficulty (ugh) value multiplies/increases the Troop Cumulative variable.
After that, the system performs CONDITIONAL BRANCHES. Each Branch is keyed to a different Actor in your database, and will run nearly the same common events for each:
- Get the data from the defined actor (must have one common event per actor)
- Perform Calculations
- Re-equip the actor (you'll see why)
- Get the result for the actor
Again, this needs to be done for each actor. So if you have a game with twelve rotating actors, you will need twelve conditional branches. and one unique Common Event providing actor info for each.
Common Event #2
This is NOT the first common event to run, but it is the first one within the common event list.
Executed right after the stats data of an actor is retrieved, it cuts the HP score of an actor in half and reduces the MP score to 2/3rds of the norm.
After that, it creates a singular value (0018: Hero Cumulative) and adds the critical scores of the actor into one; the HP, Attack, Agility and so on.
Again, this this is not the first common event, but the one performed after the actor's data has been grabbed.
Common Event #3
This is a necessary event. Before the hero's stats are acquired, the hero's equipment is removed. The stats that the system temporarily records is their unadjusted scores.
This event re-equips the actor.
Do note that the Change Equipment command is targeting an actor by Variable #5 and not by a specifically named actor. This makes it re-usable for EVERY actor.
Common Event #4
This is the LAST event to run per actor. It COPIES the Troop's cumulative score and reduces it by the individual actor's cumulative stats score. And after that, gives a little randomness to see if the actor's fight was sufficiently tough enough to get any XP.
And do note that the updated XP is going to an actor designated by a variable. Again, this makes it reusable among all actors involved.
Ah, but while this is the last common event to run for every actor, it is not the last common event on our list...
Common Event(s) #5 on up
Above is the last in our list, but the first within each actor's common event to run.
This common event is very much specific to one actor and one alone. In the above example, it is specific to Zack.
Here, we get the ID values to each and every piece of gear he has, and then use the Change Equipment command to remove all the gear. But don't worry as I already explained that Common Event #3 will return/re-equip him when it is done.
Once he is un-equipped, the system grabs all his stats.
And lastly, you set his Database ID value (1) into Variable #5 Hero ID. While you must target the Hero itself in the commands to get the equipment IDs and the stats, Hero ID is the only variable you need to actively set within the events.

![[Image: QrnbKlx.jpg]](https://i.imgur.com/QrnbKlx.jpg)
![[Image: sGz1ErF.png]](https://i.imgur.com/sGz1ErF.png)
![[Image: liM4ikn.png]](https://i.imgur.com/liM4ikn.png)
![[Image: fdzKgZA.png]](https://i.imgur.com/fdzKgZA.png)
![[Image: sj0H81z.png]](https://i.imgur.com/sj0H81z.png)
![[Image: QL7oRau.png]](https://i.imgur.com/QL7oRau.png)
![[Image: uSqjY09.png]](https://i.imgur.com/uSqjY09.png)
![[Image: GAA3qE9.png]](https://i.imgur.com/GAA3qE9.png)
![[Image: 2Hmnx1G.png]](https://i.imgur.com/2Hmnx1G.png)
![[Image: BwtNdKw.png%5B]](https://i.imgur.com/BwtNdKw.png%5B)