Jump to content

How2: Reward for Catching Pokemon?


MetrololAce

Recommended Posts

So in the game I have been working on, I'm looking to implement a reward for catching every pokemon species on a route. 

I'm keen on offering a heavy diversity of Pokemon, especially early, and I also have incentives and randomization in place to encourage the player to use many teams and catch many pokemon.

 

What I can't figure out how to do, however, is add an incentive to catching every species on a specific route. I'm thinking about maybe some type of cash reward, or even something like a masterball or some rare candies? 
I haven't gotten that far yet. 

 

Either way, is there a way to accomplish this? 

To be clear: If a route has 8 different species present on it, I'd like an NPC to offer you a reward after you have caught all of them and you speak to him etc. 


I hope the bright minds here know, because the usual place I'd have gone is no longer usable (RIP.)

Link to comment
Share on other sites

In my experience as a player, something like regular store items like Revives or Hyper Potions even can be nice, but it could get somewhat old fast, and plus, what's the point of buying that kinda stuff then if you have the items already, or tons of cash? Special (apricorn e.g.) balls can be nice too, though, if you already have one route done, it would just allow you the ability to keep going for the reward of more balls which is... not conducive to exciting a player in the long run, unless something bigger is teased somehow.

 

Then, if single-use items are not considered, the best thing would be consumables. Depending on how you want to do your game, TM's might be a way to go, especially some of the more wacky ones like Ally Switch, Quash, Infestation even. Though, I wouldn't put anything really good, since it would discourage multiple playthroughs from someone, say, playing the game for a different team + battle experience that would therefore benefit from lots of TM coverage yet would not want to re-collect every available species on a route. Perhaps some other kind of collectible would be nice in their place, then, such as perhaps legendary items (Silvally Memories, Arceus plates, maybe?), the type boosters (SilverPowder, TwistedSpoon, Black Belt, etc) or something else you've thought of uniquely for your fan-game, such as exclusive boosting hold items (Thick Club, Light Ball, e.g.), maybe for the most rare mons on the route? These are just things I could think of that would make someone want to collect all the species in a route beyond just the benefits inherent with, well, having all the mons from the route. Hopefully this little ramble helped, even just a bit?

Link to comment
Share on other sites

6 hours ago, MetrololAce said:

So in the game I have been working on, I'm looking to implement a reward for catching every pokemon species on a route. 

I'm keen on offering a heavy diversity of Pokemon, especially early, and I also have incentives and randomization in place to encourage the player to use many teams and catch many pokemon.

 

What I can't figure out how to do, however, is add an incentive to catching every species on a specific route. I'm thinking about maybe some type of cash reward, or even something like a masterball or some rare candies? 
I haven't gotten that far yet. 

 

Either way, is there a way to accomplish this? 

To be clear: If a route has 8 different species present on it, I'd like an NPC to offer you a reward after you have caught all of them and you speak to him etc. 


I hope the bright minds here know, because the usual place I'd have gone is no longer usable (RIP.)

 

Are you looking for a way to have the NPC know that you have caught all the pokemon in the Route? If so, this is how I would do it.

 

I would create an event (your NPC) with the following script:

$game_variables[27]=0
species=species=getID(
PBSpecies,:FLYGON)

if $Trainer.owned[species]
$game_variables[27]=$game_variables[ 
27]+1
end

 

How it works: I initialize a variable to zero and check every time if certain pokemon are caught. In the example above I used the variable number 27 as counter and checked if Flygon is caught. You should repeat this script 8 times since you have 8 different pokemon to catch in your Route. Remember to remove the first line when you use the script for a second time because that would set the counter back to zero and we don't want that 🙂

 

Then, the only thing left is to check if your variable has the value 8. Use a conditional branch for that.If it's true, you can reward the player. Hope this helped!

Link to comment
Share on other sites

4 hours ago, groniack said:

How it works: I initialize a variable to zero and check every time if certain pokemon are caught. In the example above I used the variable number 27 as counter and checked if Flygon is caught. You should repeat this script 8 times since you have 8 different pokemon to catch in your Route. Remember to remove the first line when you use the script for a second time because that would set the counter back to zero and we don't want that 🙂

 

Then, the only thing left is to check if your variable has the value 8. Use a conditional branch for that.If it's true, you can reward the player. Hope this helped!

Thank you very much for the help! That seems like a good solution for sure. I'll give it a try and see if I can get it working, but yes that is exactly what I wanted to do!

Link to comment
Share on other sites

5 hours ago, groniack said:

Then, the only thing left is to check if your variable has the value 8. Use a conditional branch for that.If it's true, you can reward the player. Hope this helped!

Just wanted to say that it worked perfectly! Thanks SO much for your assistance. 

One last question though.

 

Should I be using a different variable for every route? The script will always reset it to 0 no matter what right, so I don't need to use a different one?

I was just worried if the player checked on one route and had say 5/10 then went to another route which only needed 5 would it accidentally give them credit if they had 0 from that route.

 

edit: also, if you or anyone else knows, how will this interact with species you caught then release etc? It still counts right? I assume its checking if you have ever owned it, not do you own it currently.

 

Anyway, thanks a ton! Hope this helps others as well.

Link to comment
Share on other sites

1 hour ago, MetrololAce said:

Just wanted to say that it worked perfectly! Thanks SO much for your assistance. 

One last question though.

 

Should I be using a different variable for every route? The script will always reset it to 0 no matter what right, so I don't need to use a different one?

I was just worried if the player checked on one route and had say 5/10 then went to another route which only needed 5 would it accidentally give them credit if they had 0 from that route.

 

edit: also, if you or anyone else knows, how will this interact with species you caught then release etc? It still counts right? I assume its checking if you have ever owned it, not do you own it currently.

 

Anyway, thanks a ton! Hope this helps others as well.

Exactly, you can use the same variable for all the routes since it always resets itself before checking the mons. 

And yeah, I think it works even if you release the pokemon. Glad I helped 🙂

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...