• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Level cap (For player only) variable

IceGod64

In the Lost & Found bin!
  • 624
    Posts
    16
    Years
    In my eternal effort to figure out new ways to stop the player from breaking the game by overleveling too much (like, over ten levels about the next gym leader), I've thought about giving the player a level cap that changes as the player acquires badges. If the Pokemon is under the REAL level cap (100), they should still be able to acquire EXP from battles, and keep on getting EXP even after they should've leveled up, but they won't really level until the player gets their next badge, after which, the underleveled Pokemon would level up to their real level (Asumming it doesn't go over the next level cap), learning the missed moves along the way, and getting the normal stat bonuses.

    Here are my questions:
    1: Is this a good idea? It was a spur of the moment idea, and I need opinions on this.
    2: Assuming it's not a dumb idea, how would I implement such a thing?
     
    1. It seems like a good idea, prevents people bringing a lvl 100 to the 2nd gym.
    2. To implement it would require scripting or extensive events.

    Nice idea though
    ~Anglican
     
    I don't think it is a good idea. If you're seriously worried about the average player being over-levelled, your Gyms need their levels upped. I don't think you should punish players who like to power-level.

    I wouldn't even suggest a "diminishing returns" approach, where less Exp is gained after hitting the level threshold for your current number of badges, because the normal Exp amount gained is relatively little enough as it is at that point. Strangely, discarding all excess Exp would be more suitable than saving it up (i.e. the level threshold behaves as a strict level limit which just changes throughout the game rather than remain constant).

    If you do implement this, you would be interested to know that Shadow Pokémon do the exact same thing, i.e. store excess Exp and gain it all at once later on. You would need to make a few scripts of your own to check the level threshold, and make sure (only) excess Exp gets diverted into the Exp storage pool. Rare Candy probably shouldn't be usable on a Pokémon storing its Exp, or more evilly, it should be consumed but with no effect at all.

    It'd look a bit odd defeating a Gym Leader with a Pokémon at the (old) threshold, only for that Pokémon to not gain any Exp from it (because you haven't been given the new badge yet so the old threshold still applies). If anything, I would say that Gym Leader battles should always provide Exp normally, because it's definitely an experience and it couldn't be abused for power-levelling anyway (either your Pokémon are weak and could more easily gain Exp from wild Pokémon, or are at the threshold and the Leader is intended to be beatable at that level anyway). In that vein, you may want to expand this "always normal Exp gaining" rule to all trainers, and just have the thresholds apply to Exp gained from wild Pokémon.

    Personally, if I had to choose a system, it would be that Exp from trainer battles is unaffected, and a strict level limit applies to Exp gained from wild battles. No Exp is stored, Exp from wild battles is discarded if not usable, and Rare Candy is unaffected. It's also fairly straightforward to code - I think it could be done by tweaking 3 lines and adding 1 more.
     
    May I add that your idea makes it extremely difficult to EV Train.
    If you store up the EXP, you might have to store up effort values, which I believe is impractical.
     
    Personally, if I had to choose a system, it would be that Exp from trainer battles is unaffected, and a strict level limit applies to Exp gained from wild battles. No Exp is stored, Exp from wild battles is discarded if not usable, and Rare Candy is unaffected. It's also fairly straightforward to code - I think it could be done by tweaking 3 lines and adding 1 more.

    I think you're right actually, it would be a bit to punishing to do that I suppose. Overleveling takes time and I guess that investing the extra time is part of what makes Pokemon Pokemon.

    One other thing I can think of is simply adjusting only the important battles, and upping their levels to be inline with the players. No messing around with EXP's or limits, just adjusting their party (Assuming your level is above there's). All of there Pokémon would be leveled up one at a time in a loop until the highest level Pokémon is equal to your highest level. Is this a better idea?

    May I add that your idea makes it extremely difficult to EV Train.
    If you store up the EXP, you might have to store up effort values, which I believe is impractical.

    It doesn't...
    Effort Values are not calculated in the exact same spot as EXP. I could easily add the effort values in without affecting EXP if I wanted. If I wanted to take the fun out of it, I could make the EV Gain visible by having stats recalculated after ever battle (Though I am against that because getting +40 in one level is awfully satisfactory.)
     
    Yea, EV'ng has nothing to do with the levels of the Pokémon. I think it is a great idea. For one, you have to assume that your player will play your game for its story, and forcing the focus away from trying to overlevel would be beneficial in keeping them attached to the story, unlike those games in which players end up over-leveled. Maruno makes a good point about the disappointment that would come from no longer being able to get the exp, but this could be looked around also. I would do some kind of script that counts the exp earned after the level cap is hit, and stores it away, similar to how exp is stored on shadow Pokémon. Then, after the gym leader is beaten, that variable is called upon and the player is rewarded with any experience they didn't get, all at once.
     
    One other thing I can think of is simply adjusting only the important battles, and upping their levels to be inline with the players. No messing around with EXP's or limits, just adjusting their party (Assuming your level is above there's). All of there Pokémon would be leveled up one at a time in a loop until the highest level Pokémon is equal to your highest level. Is this a better idea?
    I think so, yes. Compared to your first idea, at least.

    There's already a method which returns a challenging level, calculated from the levels of the player's Pokémon (pbBalancedLevel($Trainer.party)). You would need to edit the script where a trainer's Pokémon are loaded (pbLoadTrainer), and have the level of each Pokémon be set not to the value of poke[1] (the level as defined in trainers.txt), but to the value of pbBalancedLevel. You could still use the defined level in a different way, such as adding it on to the result (I suggest with this that you add the level and then subtract 10, to allow weakening the trainer's Pokémon if needed), or having it as the minimum level allowed for that Pokémon.

    There are a couple of drawbacks with this. One is that the levels depend on what's in the player's party, so players could manipulate that to make their fights easier. You can also face the same Pokémon multiple times (e.g. by repeatedly losing against them) but have a different party each time, meaning their levels can fluctuate. Another might be predefined movesets, where a Pokémon could be a lower-than-expected level and know a move it couldn't legally learn yet, but that's just a matter of how pure you want to be - all the official games have hax somewhere.

    pbBalancedLevel seems to have been made for use on wild Pokémon, and while it can just as easily be used for trainers' Pokémon, that "can face the same Pokémon multiple times" problem is tricky to solve.
     
    I think so, yes. Compared to your first idea, at least.

    I think I'm going to go with my idea, where basically all of the opponent's Pokemon are leveled up until the highest level one is equal to the player's highest, though I need to think about how exactly I could make that work right.
     
    Why not just balance the gym's levels out? I thought there was already a subject like this before that was simply answered by saying "use the pbBalancedParty" method (or was it BalancedLevel) either way just balance the levels out a bit.
     
    Back
    Top