• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

[Other] No trade evolutions

  • 17
    Posts
    3
    Years
    • Seen Jul 8, 2022
    Hello,
    Im pretty new to this Decomp stuff but I would like to make it so that there are no more trade evolutions.
    Obviously for pokemon such as golem, alakazam etc. this is no problem since I can just set the evolution type to EVO_LEVEL and set the desired level to whatever.
    The problem comes in with the trade with items. I would like to make it so that you can use metal coat, upgrade, electirizer etc into items that you can use like evolution stones.

    First thing I did was set the evolution types to EVO_ITEM corresponding to the correct item in
    Code:
    src\data\pokemon\evolution.h
    Spoiler:

    After this, I went to
    Code:
    src\data\items.h
    and set the fieldUseFunction to ItemUseOutOfBattle_EvolutionStone
    Spoiler:

    Next, I went to
    Code:
    src\data\pokemon\item_effects.h
    and added all the items needed for trade evolutions to the list at the bottom of the file in the same structure as they do with the evolution stones.
    Spoiler:

    Now i am stuck. When i compile my rom at this point I can use the items but when I try using them the screen fades to black as if going to the Pokémon menu and that's it. so basically just a black screen.

    I hope somebody can help me, or has done the "use trade evolution items" thing but in a different way, that might be able to explain how they did it.
    Please explain it as if you are talking to a 5 year old since im quite new to all this.
    Thanks in advance
     
  • 11
    Posts
    5
    Years
    You are really close, there are just four two things you missed. First, in src\data\items.h, you need to change the type to be 1, as that is what the regular evolution stones use. So your dubious disk should look like this:

    Spoiler:

    EDIT: I just realized you are using the Item expansion, so the below steps don't apply. If you were using regular emerald you would have to create separate item effects for each item entry, but with the item expansion you just use gItemEffect_EvoStone for each one. So for you, just ignore the spoiler tag.

    Spoiler:

    Finally, the last thing to worry about is item placement. include\constants\items.h has a line at the bottom that defines if an item will have an effect if used on a Pokemon. By default, this works on all items from potions to berries, and everything in between. Hold Items and Trade Items, in both regular emerald and using the item expansion, are beyond the slot for the last berry, so you need to change this to get the evolution item to work (without it, the pokemon will have their hp bar shown as if they can use the stone, but selecting them gives the 'this item will have no effect' message). For item expansion, you'll want to do this:

    Spoiler:

    Do all this for each new item, and everything should work (I just tried it out all the same steps and got a Sandshrew to evolve into Sandslash with Soft Sand). Good luck!
     
    Last edited:
  • 17
    Posts
    3
    Years
    • Seen Jul 8, 2022
    You are really close, there are just three one things you missed. First, in src\data\items.h, you need to change the type to be 1, as that is what the regular evolution stones use. So your dubious disk should look like this:

    Spoiler:

    EDIT: I just realized you are using the Item expansion, so the below steps don't apply. If you were using regular emerald you would have to create separate item effects for each item entry, but with the item expansion you just use gItemEffect_EvoStone for each one. So for you, just ignore the spoiler tag.

    Spoiler:

    Another thing to worry about is item placement. include\constants\items.h has a line at the bottom that defines if an item will have an effect if used on a Pokemon. By default, this works on all items from potions to berries, and everything in between. Hold Items and Trade Items, in both regular emerald and using the item expansion, are beyond the slot for the last berry, so you need to change this to get the evolution item to work (without it, the pokemon will have their hp bar shown as if they can use the stone, but selecting them gives the 'this item will have no effect' message). For item expansion, you'll want to do this:

    Spoiler:

    Do all this for each new item, and everything should work (I just tried it out all the same steps and got a Sandshrew to evolve into Sandslash with Soft Sand). Good luck!

    You are the best, thank you!
     
    Back
    Top