Jump to content

PKHeX Trade Ban ?


JISN[064]

Recommended Posts

6 hours ago, Sabresite said:

Trade bans are not governed by save files.

29 minutes ago, JISN[064] said:

... then how is that when I restore a back-up save I have no longer the trade ban? D;

I think JISN is referring to the game temporarily blocking you from going online due to cutting out of trades/battles abruptly,
not the 002-0201 online usage ban.

I recall reading that there's some value written to the save temporarily,
so in theory switching the cart to another 3DS won't help. (probably to deter people from being DC-trolls online)

  • Ditto 1
Link to comment
Share on other sites

2 hours ago, theSLAYER said:

I think JISN is referring to the game temporarily blocking you from going online due to cutting out of trades/battles abruptly,
not the 002-0201 online usage ban.

I recall reading that there's some value written to the save temporarily,
so in theory switching the cart to another 3DS won't help. (probably to deter people from being DC-trolls online)

If that is the case, then it can be easily tested.  Before/After save would do the trick.

  • Teary-Eyed 1
Link to comment
Share on other sites

48 minutes ago, Sabresite said:

Saying no is very vague. @Kaphotics, any more detail?

  • Nobody has posted how to flip it off for ALL online supported versions (XY/AO/SM/UU)
  • Including 'support' would have to clutter up the UI even more
  • Can currently be mitigated by restoring a backup before the timeout
  • Deals with evading online restrictions (making this easier makes it easier to waste people's time, as the knowledge can be ported to a memory changing code for automated trolling outside that doesn't even need PKHeX).

It's not something I'm interested in supporting, especially if it's a single byte toggle as the following snippet of code shows:

bool __fastcall Savedata::GameTime::IsPenaltyMode(int a1)
{
  return *(_DWORD *)(a1 + 0x40) != 0;
}
signed int __fastcall NetAppLib::Util::NetAppEntryChecker::CheckTradePenalty(int a1, int a2, int a3)
{
  signed int v3; // r4
  int v4; // r0

  v3 = 0;
  v4 = gfl2::base::SingletonAccessor<GameSys::GameManager>::GetInstance(a1, a2, a3);
  if ( !sub_4C4324(*(_DWORD *)(*(_DWORD *)(v4 + 0x24) + 4) + 0x4F330) )
    v3 = 1;
  return v3;
}

Remember, PKHeX may be a full featured program, but why does PKHeX always have to handle small save edits? This is something that a small standalone tool can do, or a simple hex edit.

Link to comment
Share on other sites

27 minutes ago, Kaphotics said:
  • Nobody has posted how to flip it off for ALL online supported versions (XY/AO/SM/UU)
  • Including 'support' would have to clutter up the UI even more
  • Can currently be mitigated by restoring a backup before the timeout

It's not something I'm interested in supporting, especially if it's a single byte toggle as the following snippet of code shows:


bool __fastcall Savedata::GameTime::IsPenaltyMode(int a1)
{
  return *(_DWORD *)(a1 + 0x40) != 0;
}
signed int __fastcall NetAppLib::Util::NetAppEntryChecker::CheckTradePenalty(int a1, int a2, int a3)
{
  signed int v3; // r4
  int v4; // r0

  v3 = 0;
  v4 = gfl2::base::SingletonAccessor<GameSys::GameManager>::GetInstance(a1, a2, a3);
  if ( !sub_4C4324(*(_DWORD *)(*(_DWORD *)(v4 + 0x24) + 4) + 0x4F330) )
    v3 = 1;
  return v3;
}

Remember, PKHeX may be a full featured program, but why does PKHeX always have to handle small save edits? This is something that a small standalone tool can do, or a simple hex edit.

So it is a simple toggle.

Thanks, I think this is enough for the OP to go by.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...