Old School Ops

RF455-047 # RF 4.55: PT (mastery) stops 10% short of the maximum the client shows

Game server RF Online: Dragonborn v0.2.0 normal · filed by cybercyber 7h ago
New

Game: RF 4.55 (Dragonborn), server v0.2.0, Windows build (stock gameserver.exe, SHA-256 96452fbd…). Client: the supported Taiwan build, RF_Online.bin SHA-256 46528aac…2bbc558 (2025-07-16), Language=Taiwan.

Summary

  • A level 30 Accretia Gunner's Character window shows Defense 30/33 Pt 0.00% and Shield 20/22 Pt 0.00%. Neither goes up, however much the character trains.
  • The server clamps the PT it sends to the *masterylimit row for the character's level: defence 30, shield 20.
  • The client's maximum is that same row ×1.1, truncated: 33 and 22.
  • Melee and range will stop the same way, at 25 of 27 and 35 of 38.

Server side

  • gamedata.(*Data).MasteryCapsFor 0x140515ee0 reads rangermasterylimit (etc.) WHERE m_nLevel = level.
  • capCumToLevel 0x1408eaa80: if the grade from cum is ≥ the cap, it sends cumForMasteryLevelOf(cap).
    • It's reached from capMasteryLine (03/2B, sendMasteryStat) and from capMasteryForDisplay (the login cum download).
    • The stored cum isn't capped. This character's defence cum is 473113, a real grade of 34.

Client side (RF_Online.bin)

  • The PT line "%2d/%2d Pt" is drawn by 0x663bc0, and the max comes from 0x41dbf0.
  • 0x41dbf0 takes the same table row (record category*81 + level - 1) through 0x5fb260, as the max over the class history.
  • If the first promotion is in the same category as the initial class (0x412480), it multiplies by 1.1f (0xaa9be0) and truncates. That always holds, because the category doesn't change within a lineage. It then caps at 99.
  • Ranger level-30 row: melee 25, range 35, defence 30, shield 20. ×1.1 gives 27/38/33/22, exactly what the window shows.
Reported on version 0.2.0

History

  • cybercyber filed it · 7h ago

Replies

Nobody has replied yet.

Sign in to comment.

Loading…
Open the full search page