RF455-092 RF 4.55: follow-up to [RF455-030Released](/bugs/RF455-030) - the 12 rebuilt class skills still have their old placeholder rows in classskill_str
Game: RF 4.55 (Dragonborn), server v0.3.1, Windows build (stock gameserver.exe).
Client: the supported Taiwan build, RF_Online.bin SHA-256 46528aac…2bbc558 (2025-07-16), Language=Taiwan.
Expected: the RF455-030Released fix (released in 0.1.2) rebuilt the 12 placeholder class skills in classskill (Counter
Attack, Guard Break, Bull's Eye, Snipe; rows 18–20, 60–62, 102–104, 144, 186, 228). Their name rows in
classskill_str should have been rebuilt with them.
Summary
- Not a repeat of RF455-030Released . The skills work:
classskillhas the client's codes (7F004…,7F012…) withm_bEnable1, and in game a Striker gets Snipe under Striker (2026-10-13). This report is only about the matchingclassskill_strrows, which the fix didn't touch. - What's wrong. In
gamedata_rf455.db,classskill_strstill holds the placeholder rows that RF455-030Released listed (7F02A/7F02B/7F02C,8F054…,4F07E…,7F0A8/8F0D2/4F0FC). Theirm_strCodedoesn't matchclassskill's, and theirm_NameTagis a placeholder (BW3 1 1…) or another skill's name (Hyper R.P.M). - Only these 12. These 12 are the only rows of 504 where
classskill_str.m_strCodediffers fromclassskill.m_strCode. None of the 12 stale codes is inclassskillat all. - Impact: names only. Gameplay is unaffected. The client shows names from its own tables, and the server sends skills by index.
- Anything that names class skills from the game DB shows the wrong name for these rows: GoMMO's admin game-data view (inferred: it lists the DB's tables), and English client tables built from the DB, which is how i found it.
- Not part of this report (read). 368 other
classskill_strrows have placeholder names (BW1 1 2…), but there the Taiwan client's own Chinese table has the same placeholder, and thoseclassskillrows havem_bEnable0.
Server side (db\gamedata_rf455.db, v0.3.1)
Read with SQLite (read-only), 2026-10-13:
| Row | classskill.m_strCode | classskill.m_strKorName | classskill_str.m_strCode | classskill_str.m_NameTag | Should be |
|---|---|---|---|---|---|
| 18 | 7F004 | Concession | 7F02A | BW3 1 1 | Counter Attack |
| 60 | 8F004 | Concession | 8F054 | CW3 1 1 | Counter Attack |
| 102 | 4F004 | Concession | 4F07E | AW3 1 1 | Counter Attack |
| 19 | 7F005 | Dizzy | 7F02B | BW3 1 2 | Guard Break |
| 61 | 8F005 | Dizzy | 8F055 | CW3 1 2 | Guard Break |
| 103 | 4F005 | Dizzy | 4F07F | AW3 1 2 | Guard Break |
| 20 | 7F006 | Bull's Eye | 7F02C | BW3 1 3 | Bull's Eye |
| 62 | 8F006 | Bull's Eye | 8F056 | CW3 1 3 | Bull's Eye |
| 104 | 4F006 | Bull's Eye | 4F080 | AW3 1 3 | Bull's Eye |
| 144 | 7F012 | Clinching | 7F0A8 | Hyper R.P.M | Snipe |
| 186 | 8F012 | Clinching | 8F0D2 | CR3 1 1 | Snipe |
| 228 | 4F012 | Clinching | 4F0FC | AR3 1 1 | Snipe |
- Which skills these are (read). Each copy's
classskill.m_strKorName(andm_strEngName) is the general skill's internal name;skillrows 10/11/15/39 havem_strEngNameConcession, Dizzy, Bull's Eye, Clinching. The client's TaiwanNDSkillForcegives each copy exactly the general skill's Chinese name and text: 反擊盾, 幻擊, 弱點之眼, 精準之眼. - The general skills are named right.
skill_strrows 10AF004"Counter Attack", 11AF005"Guard Break", 15AF006"Bull's Eye", 39AF012"Snipe". These match the NA/PH names on rfdatabase.net/skill (matched by the Taiwan text). - Row 144's "Hyper R.P.M" (read). That is the name of row 226 (
4F0FA, 高動能R.P.M), carried by the stale row's old code7F0A8. - Where the table comes from.
gameserver.exe,webserver.exeandrfassets.exeall nameclassskill_str.datin their import file list. So the stale rows are in the server.datthe DB was imported from.
Suggested fix
In classskill_str (and its .dat source), set rows 18–20, 60–62, 102–104, 144, 186 and 228 to:
m_strCode= that row'sclassskill.m_strCode;m_NameTag(all nine locale columns) = the general skill's name: Counter Attack, Guard Break, Bull's Eye or Snipe, as in the table above.
A check worth keeping in the importer: every <kind>_str row's m_strCode should equal its <kind> row's.
Local workaround
My English client tables take these 12 names (and their texts) from a correction file instead of the server DB.