RF455-047 # RF 4.55: PT (mastery) stops 10% short of the maximum the client shows
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
*masterylimitrow 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).MasteryCapsFor0x140515ee0readsrangermasterylimit(etc.)WHERE m_nLevel = level.capCumToLevel0x1408eaa80: if the grade from cum is ≥ the cap, it sendscumForMasteryLevelOf(cap).- It's reached from
capMasteryLine(03/2B,sendMasteryStat) and fromcapMasteryForDisplay(the login cum download). - The stored cum isn't capped. This character's defence cum is 473113, a real grade of 34.
- It's reached from
Client side (RF_Online.bin)
- The PT line
"%2d/%2d Pt"is drawn by0x663bc0, and the max comes from0x41dbf0. 0x41dbf0takes the same table row (recordcategory*81 + level - 1) through0x5fb260, as the max over the class history.- If the first promotion is in the same category as the initial class (
0x412480), it multiplies by1.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.
History
-
cybercyber