1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Guest, due to a lack of interest, playerbase, and general desire to continue, PO will hereby cease our separate tiering and adopt Smogon tiers for SM. More information and updates here.

    Dismiss Notice

[Checklist] SM Movepool Bug megathread

Discussion in 'Bugs and Fixes' started by fsk, Mar 28, 2017.

  1. fsk

    fsk Kept Hacking Forum Moderator Server Moderator Tour Director Forum Moderator Server Moderator Tour Director

    Joined:
    Jan 15, 2016
    Messages:
    269
    Likes Received:
    280
    PO Trainer Name:
    fsk
    Most of these are mentioned in the dev channel of discord and moved here for clarity. The server scripters are banning the "Moves that should not be legal but appears legal" through tier check as a stopgap/bandit fix before these are truly fixed.

    Client-wise + server-wise movepool legality error checklist.

    A) Moves that should not be legal but appears legal
    a) Alolan form
    (Android) Server-wise legality check missing: Certain moves are designed to be exclusive to base forms and Alolan forms should not learn them. However, the server does not check these for after-evolution Alolan forms, including the TM/HM moves, Egg moves, level-up and tutor moves.
    Examples:
    Alolan Ninetales should not have any moves exclusive for normal Ninetales, such as fire blast and w-o-w (Exclusive TM for base), or Heat wave (Exclusive egg moves for base) You cannot reach this on windows, but when you are on droid if you select fire blast into one of the slots and then change it to Alolan form, the move will remain and the server does not get rid of it.

    Poison Sting being an exclusive level up move for Sandshrew and Sandslash normal form, should not be used by Sandslash-Alolan. Stealth Rock being an exclusive past gen tutor move for Sandshrew and Sandslash normal form, should not be used by Sandslash-Alolan. But on droid u can get them the same way of "give then switch form." There are exceptions for this block in Cubone, Exeggcute, and Pichu/Pikachu transferred to Alola, see B) a) 2) below where windows teambuilder erroneously adds block that shouldn't exist.

    Refer to this thread http://www.serebii.net/sunmoon/alolaforms.shtml
    Click on a pro-Evolution form, such as Raticate, go to the Moves sections, where moves that appear to be exclusive to base form should get nuked for Alolan forms, as illustrated pretty well by sprites on the right. (Don't worry about the moves exclusive to Alolan ones since the server check them correctly)

    b) Event moves locked to corresponding abilities/ should be at a minimum level/ should be Shiny or Not Shiny
    https://github.com/po-devs/android-client/commit/25119bd8
    The event move added in this commit are actually only compatible with corresponding abilities distributed, and should be equal or above the level of the event pokemon when distributed. Due to the existence of Ability Capsule, move distributed for a standard Ability can be changed to another standard Ability, but not Hidden Ability, and move distributed for a Hidden Ability should be locked into it. Also, there are moves locked into Shiny and non-Shiny depend on the event.
    Example:
    ability: as for Ho-Oh event, the move celebrate is only compatible with pressure, and should be shiny only.
    level: E.T.'s report on Eevee.
    See full list here:
    http://www.serebii.net/games/eventmoves.shtml
    (click the detail button to see the ability and level that comes with the event move)

    Edit: this commit by Strudels well listed all the lock that should be implemented. (shiny:"" left blank means could be both shiny or not shiny)

    c) Hidden power fighting for gen 6 & 7 legends
    since gen 6 & 7 legends are guaranteed to have 3 perfect ivs, they should not learn hidden power fighting.


    B) Moves that should be legal but appears not legal

    a) Alolan form
    1)Pre-Evo legality checks overdo.
    When both the base and the alolan form shared a pre-evo move, like through breeding, the server always only assume the pre-evo move come from the base form, making any egg move the base form and alolan form share incompatible with the Alolan Evolution.
    Examples:
    Alolan-Muk should have Shadow Sneak & Pursuit at the same time.
    Alolan-Ninetales should have Encore & Moonblast at the same time.
    An explanation: As both vulpix and vulpix alolan learns Encore through breeding, the teambuilder only assume you learn encore from vulpix and make Alolan-Ninetales' Moonblast incompatible with a move that vulpic alolan can learn.

    (Droid teambuilder doesn't check legality so if chosen together one of the move would disappear; windows and mac etc would reject the moveset in teambuilder)

    2) Missing tutor moves from previous gen pre-evolution through bank transfer.
    Examples:
    If you get a Stealth Rock Cubone in ORAS, transfer through bank and evolve it in Sun/Moon, it'll result in an Alolan Marowak with SR. While currently ours doesn't allow this.

    This only affects Cubone, Exeggcute, and Pichu/Pikachu corresonding tutors on their evolved Alolan forms.

    b) SM Pokebank Gen 1 transfer movepool
    All moves that are exclusive via Pokebank from Gen 1 should no longer be illegal or incompatible with the mon's hidden ability. That is to say, every GEN1 pokemon's movepool should be compatible with (and only with, if this move is exclusively gen1) the hidden ability.
    Check this news page to see what the transfer is like.

    Examples:
    The teambuilder/server currently tells you that body slam is incompatible with Tauros' hidden ability. You would teach Tauros body slam via TM08 in R/B/Y and transfer it via Pokebank. All mons from gen 1 have their Hidden Abilities when transferred so the combination is compatible.
     
    Last edited: Mar 30, 2017
    Strudels and Joyverse like this.
  2. Joyverse

    Joyverse Toki wo tomare!

    Joined:
    Aug 23, 2014
    Messages:
    1,481
    Likes Received:
    845
    PO Trainer Name:
    Joyverse
    Here's one that has been "bugging" me lately. IDK whether it has fixed but Pursuit isn't legal with Alolan Muk. :/
     
  3. Strudels

    Strudels ・◡・ Super Moderator Server Administrator Super Moderator Server Administrator

    Joined:
    Oct 31, 2013
    Messages:
    265
    Likes Received:
    1,042
    PO Trainer Name:
    Ripper Roo
    fsk likes this.
  4. Veteran Padgett

    Veteran Padgett Active Member Developer Developer

    Joined:
    May 31, 2013
    Messages:
    285
    Likes Received:
    220
    PO Trainer Name:
    Veteran Padgett
    Just added the Gen 1 Pokebank transfer for next release.

    Some of the other issues are already going to be fixed on the next release:
    exclusive to base forms and Alolan forms should not learn them
    the server always only assume the pre-evo move come from the base form


    Hidden power fighting for gen 6 & 7 legends:
    This was fixed a while ago for server and windows client. The only issue should be that you can choose hp fighting on android, but it will still change your ivs/power to a valid one if you try to battle with it. Similar issue with hp flying/rock/poison for android because it chooses the first iv combination for a type, but those happen to not have 3 ivs =31.
     
  5. fsk

    fsk Kept Hacking Forum Moderator Server Moderator Tour Director Forum Moderator Server Moderator Tour Director

    Joined:
    Jan 15, 2016
    Messages:
    269
    Likes Received:
    280
    PO Trainer Name:
    fsk
    I assume you are referring to this merged pull request https://github.com/po-devs/pokemon-online/pull/1606/files
    As I just confirmed, Jinora built a client several days after that, and the Alolan movepool bugs still persists, as the team-builder (so not sth server-wise) keeps rejecting moves that are actually compatible. This thread are all based on a build on Jan.26th, and up till your latest pull today there is no more fixing on movepool client-wise, so maybe more work is needed.

    Thx a lot for the work!
    I read your code myself and have some questions. I technically do not know much about CPP, so correct me if I am wrong.
    Your PR suggests that, you will only do further legality check when it is LC (maxLevel == 5) or a pokemon is below its maxLevel allowed. In that way, a 100 LV gen 6/7 legend can still have hidden power fighting, which should not be legal.
    Also, you only proceed to check hidden power fighting's legality if the IVs assigned are not corresponding to the hidden power type chosen. What if someone on android gives the correct IVs for a hidden power fighting? Since a LV 99 6/7 legend with editted IVs that match the type fighting seem to bypass this check if my understanding of the code is correct.
     
  6. Veteran Padgett

    Veteran Padgett Active Member Developer Developer

    Joined:
    May 31, 2013
    Messages:
    285
    Likes Received:
    220
    PO Trainer Name:
    Veteran Padgett
    Yes, that fixed the Ninetales + Fire Blast etc. The preevo moves was fixed here https://github.com/po-devs/pokemon-online/pull/1613/files on Jan 29.

    Then less than 3 of its ivs will be 31 and it wont be legal. The PR you referred to was for gen 7 Pokemon in general who can't have hyper training. The 3 ivs legends was taken care of in gen 6 (https://github.com/po-devs/pokemon-online/pull/1297/files), and I added gen 7 legends to the list with the gen 7 release.
     
    Joyverse and fsk like this.
  7. Veteran Padgett

    Veteran Padgett Active Member Developer Developer

    Joined:
    May 31, 2013
    Messages:
    285
    Likes Received:
    220
    PO Trainer Name:
    Veteran Padgett
    Fixed
     
    fsk likes this.
  8. Veteran Padgett

    Veteran Padgett Active Member Developer Developer

    Joined:
    May 31, 2013
    Messages:
    285
    Likes Received:
    220
    PO Trainer Name:
    Veteran Padgett
    These problems should be taken care of on android for next update.
     
    fsk likes this.
  9. fsk

    fsk Kept Hacking Forum Moderator Server Moderator Tour Director Forum Moderator Server Moderator Tour Director

    Joined:
    Jan 15, 2016
    Messages:
    269
    Likes Received:
    280
    PO Trainer Name:
    fsk
    http://www.serebii.net/events/2017.shtml
    There are some more event moves distribution and some of them are not reflected in our database.
    Most of those are not competitively important so the priority is not that high:
    1) Pikachu can learn bestow, hold hand and play nice at the same time under static, while ours reject.
    2) Bewear can learn bind.
    etc etc. Post here to let this get worked on at a later time.

    Also, Tapu Koko Shiny currently should be locked into Timid which is not reflected in the database.