- Pokémon Essentials Version
- v19.1 ➖
Ever wished the game could acknowledge the player's play style in some capacity ? Acknowledge that the player just swept your important NPC's team without breaking a sweat ? Maybe reward them for that with a rare item ? Or instead call them out for spamming healing items to win ? Have recurring opponents note how much the player's team changed since last time they fought ? Have them comment on how this new addition to the player's team totally made the difference, or how it's strange how their once strongest fighter has left the team ? Cool lil bit of immersion ?
Well, I've made a resource that should help with that. This thing allows you to flag specific trainer battles as registerable, from which a couple scripts store data about how the fight went and check a number of corresponding flags. After the fight ends, the fight checks data it pulled from a new type of PBS file, called npcreactions.txt, and checks if the NPCs you fought have responses corresponding to some of the flags that were raised, and if they do, add them to the dialogues to play out before the event resumes...
... is what I would say, except that the part about a custom PBS file doesn't jive very well with Essentials's plugin format. I can't seem to find updated versions of Marin's utilities/custom compiler for V19 that would bypass this, so instead the code relevant to that got commented out and for now i'm using an additionnal script as a glorified text file that holds what the compiled PBS file should look like so you can get the thing working without needing to edit your scripts file (although you could do it to re-enable the original behavior, though.)
Don't worry, the archive folder contains a detailed documentation that should hopefully address most questions about how to use this resource. I've also included a couple of test files so you have an almost plug-and-play demonstration of the capabilities of the resource.
I hope you guys find a use for this, and more importantly, I'd love to get feedback on this! Do you have interactions I didn't think of you'd love to be able to have the world react to ? Do you have better ways to go on about determining who was the MVP of this fight ? I kept some parts of the logic simpler than it probably should be both A) in order to keep things from being more convoluted than they need to be, and B) because I'm not that experimented with Pokémon Battling and I'd love to hear someone better versed in the matter than I am explain what would be the most efficient/less intrusive way to track what pokémon carried a battle. Also bugfixing ! I've tested the thing pretty extensively myself, but I probably tunneled vision at some point and forgot to think about really obvious things. Also, the PBS-File replacement script didn't exactly get thoroughly tested beyond checking that it didn't crashed the game and could land the expected results.
Well, I've made a resource that should help with that. This thing allows you to flag specific trainer battles as registerable, from which a couple scripts store data about how the fight went and check a number of corresponding flags. After the fight ends, the fight checks data it pulled from a new type of PBS file, called npcreactions.txt, and checks if the NPCs you fought have responses corresponding to some of the flags that were raised, and if they do, add them to the dialogues to play out before the event resumes...
... is what I would say, except that the part about a custom PBS file doesn't jive very well with Essentials's plugin format. I can't seem to find updated versions of Marin's utilities/custom compiler for V19 that would bypass this, so instead the code relevant to that got commented out and for now i'm using an additionnal script as a glorified text file that holds what the compiled PBS file should look like so you can get the thing working without needing to edit your scripts file (although you could do it to re-enable the original behavior, though.)
Don't worry, the archive folder contains a detailed documentation that should hopefully address most questions about how to use this resource. I've also included a couple of test files so you have an almost plug-and-play demonstration of the capabilities of the resource.
-Drop the "After-Battle comments" folder in your plugin folder. Careful, this addon adds stuff to the savefile, so it will probably be incompatible with previous savefiles. I reccomend starting from a fresh file to mess with it.
-I have included a test map to showcase the resource's capabilities. If you want to use it to test it out, you need to include the content of the "testing purposes" folder in your game in some way. Add the map file or rewrite one of yours you don't care about (the whole thing only uses essentials assets), and add the PBS files, or at least their content, to your game.
-The resource should have originally included a new type of PBS file to store the various reactions of the NPCs. However, since the plugin system doesn't play nice with that kind of thing, i've had to settle for moving the PBS file to an additionnal script. If you wish to re-enable the PBS file behavior by importing some of my modifications to your core script files, take a look at section IV.
-I have included a test map to showcase the resource's capabilities. If you want to use it to test it out, you need to include the content of the "testing purposes" folder in your game in some way. Add the map file or rewrite one of yours you don't care about (the whole thing only uses essentials assets), and add the PBS files, or at least their content, to your game.
-The resource should have originally included a new type of PBS file to store the various reactions of the NPCs. However, since the plugin system doesn't play nice with that kind of thing, i've had to settle for moving the PBS file to an additionnal script. If you wish to re-enable the PBS file behavior by importing some of my modifications to your core script files, take a look at section IV.
-Assess the overall result of the battle. Was it an easy win for the player ? Maybe even a 6-0 with no items used ? Or was it instead a close match that left the player near-wiped ?
-Tracks the usage of bag items through the battle on both sides of the field, allowing you to know if the player used none, some, but less than the opponent did, or more than the opponent.
-uses a simple scoring system based on mons KO-ed by a given Pokémon to find the "MVP" of the battle, along with it's opposite, the benchwarmer/jobber. Determines this pair for every involved participant of a battle, counting separate trainers on the same team separately.
-Using saved data of the previous battles against a given opponent, compares the previous team from back then to now and returns observations about it. Did the player change most of their team or did they stuck to their core ? Is the Pokémon who made the difference last time still kicking ass or is it taking a back seat in favor of a newcomer ? Or maybe it's an old mon who got an evolution/mega evolution/z-move that made all the difference this time ? (z-move code is disabled by default since they're not included in essentials, but it should be fairly easy to re-enable them if you want to.)
-Accounts for more miscellaneous features such as the player running a monotype team, having more/less total mons than the opponent, or if everyone in their team shares a single nickname.
-Tracks the usage of bag items through the battle on both sides of the field, allowing you to know if the player used none, some, but less than the opponent did, or more than the opponent.
-uses a simple scoring system based on mons KO-ed by a given Pokémon to find the "MVP" of the battle, along with it's opposite, the benchwarmer/jobber. Determines this pair for every involved participant of a battle, counting separate trainers on the same team separately.
-Using saved data of the previous battles against a given opponent, compares the previous team from back then to now and returns observations about it. Did the player change most of their team or did they stuck to their core ? Is the Pokémon who made the difference last time still kicking ass or is it taking a back seat in favor of a newcomer ? Or maybe it's an old mon who got an evolution/mega evolution/z-move that made all the difference this time ? (z-move code is disabled by default since they're not included in essentials, but it should be fairly easy to re-enable them if you want to.)
-Accounts for more miscellaneous features such as the player running a monotype team, having more/less total mons than the opponent, or if everyone in their team shares a single nickname.
I hope you guys find a use for this, and more importantly, I'd love to get feedback on this! Do you have interactions I didn't think of you'd love to be able to have the world react to ? Do you have better ways to go on about determining who was the MVP of this fight ? I kept some parts of the logic simpler than it probably should be both A) in order to keep things from being more convoluted than they need to be, and B) because I'm not that experimented with Pokémon Battling and I'd love to hear someone better versed in the matter than I am explain what would be the most efficient/less intrusive way to track what pokémon carried a battle. Also bugfixing ! I've tested the thing pretty extensively myself, but I probably tunneled vision at some point and forgot to think about really obvious things. Also, the PBS-File replacement script didn't exactly get thoroughly tested beyond checking that it didn't crashed the game and could land the expected results.
- Credits
- -Yumil