• 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.

[Battle] [pokeemerald] Exp. All with no toggle/need for item

  • 4
    Posts
    2
    Years
    • Seen Jul 17, 2023
    Hello all!
    I was curious if anyone had a walkthrough for how to implement an experience system akin to the mainline games where party exp is always on. Currently, I've been playing with the alternative gen 6 experience share tutorial listed on the wiki, but it still requires a toggle. Ideally, I'd like to balance a game around a permanent exp all. I'm not sure if tweaking statements under getExp might help; any pointers would be appreciated!
     
    Last edited:
    Hello all!
    I was curious if anyone had a walkthrough for how to implement an experience system akin to the mainline games where party exp is always on. Currently, I've been playing with the alternative gen 6 experience share tutorial listed on the wiki, but it still requires a toggle. Ideally, I'd like to balance a game around a permanent exp all. I'm not sure if tweaking statements under getExp might help; any pointers would be appreciated!
    You can perfectly remove the conditionals that toggle the system at the wiki's post to keep it toggled at all times, you just have to modify the relevant parts of the code, i.e. the ones that make use of FLAG_EXP_SHARE.
     
    A HUGE thank you to Lunos; this has been stressing me out as someone who is a newbie.
    For others that want to replicate this form of exp. share, please continue reading. Note that you will still need the Exp. Share in the inventory, but you can give the player the item early.

    For anyone seeking to implement something similar, I used this wiki tutorial: https://github.com/pret/pokeemerald/wiki/Gen-6-style-Exp.-Share---Alternative-Option
    Per Lunos' suggestions, I removed instances of FLAG_EXP_SHARE that the tutorial implemented. The tutorial instructs you to add the following near the end of src/battle_scripts_commands.c

    if (!gExpShareCheck && FlagGet(FLAG_EXP_SHARE) && totalMon>viaSentIn){
    gExpShareCheck = TRUE;
    gBattleStruct->expGetterMonId = 0;
    PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gExpShareExp);

    You should remove the "&&FlagGet(FLAG_EXP_SHARE)" portion from the first line so that it now reads "if(!gExpShareCheck && totalMon>viaSentIn){"
    For the step regarding src/data/items, you don't need to add registrability and you don't need to alter the .type and .fieldusefunc fields.
    Finally, you will entirely SKIP all the steps related to:
    - void ItemUseOutOfBattle_ExpShare(u8 taskId) in src/item_use
    - void ItemUseOutOfBattle_ExpShare(u8); in include/item_use
    - adding both extern const u8 gText_ExpShareTurnOn[]; and extern const u8 gText_ExpShareTurnOff[]; to include/strings
    - adding the TurnOn/TurnOff text in src/strings
    - adding FLAG_EXP_SHARE

    I've been testing this and there doesn't appear to be any issues; thanks to Devolov for the original tutorial as well as Lunos' feedback.
     
    Back
    Top