Old School Ops

RF455-083 RF 4.55 v0.3.1: race leader "wave" skills buff only the caster (the link effect never reaches allies)

Game server RF Online: Dragonborn v0.3.1 low · filed by cybercyber
New

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

Summary

The race leader and council skills (skill class 4, "Leader Effect": Bellato Union's Protection/Touch, Decem's Protection/Touch, Conqueror's Protection/Roar) put their buff on the caster only. Each of them names a 10-second "Link Effect" in m_strRangeEffCode that, going by the data and the names ("… wave"), should go out to race members around the leader. The server never casts it, so nobody else gets a buff and nothing is seen around the leader.

How each part is known:

  • Skill data: read from the bundled db\gamedata_rf455.db and the client's DataTable\SkillForce.edf.
  • Server side: read in the stock v0.3.1 gameserver.exe (with a Go symbol disassembler) and in history.log.
  • What retail did with the link effect: inferred from the data (a paired 10 s row named in the leader row's range-effect field) and the names. We have no retail server to compare with.

1. The skills (read, gamedata_rf455.db table skill)

Class 4 rows come in pairs. The leader row (ContEffectType 1, 1200 s) names the link row in m_strRangeEffCode:

Leader rowNameSlotsLink row (10 s)
AF1F7Bellato Union's Protectionrate[33] +0.2, rate[32] +0.2, plus[33] −200AF1F8 (rate[33], rate[32])
AF1F9Bellato Union's Touchrate[9] +0.2, rate[32] +0.2, plus[33] −200AF1FA
AF1FBDecem's Protectionas AF1F7AF1FC
AF1FDDecem's Touchas AF1F9AF1FE
AF1FFConquerer's Protectionas AF1F7AF200
AF201Conquerer's Roaras AF1F9AF202

The client's SkillForce.edf skill rows carry the same link code at row +0x42c (for example AF1FF → 0xAF200).

2. What the server does with a cast

handleSkillCast (11/04, 0x140893f00) → castSFEffectAt (0x140895e00) → castTarget (0x1408993c0), which returns one player: the caster when the target serial is its own, otherwise (*world).playerBySerial. castSFEffectAt then calls applyContEffectTo (0x1408968e0) at one call site, 0x1408962b5, for that player. The server loads the m_strRangeEffCode column (the name is in its table loader strings), but nothing on this path reads it.

history.log, a Consul casting both skills:

recv {"session": 8, "op": "11/04", "body": "3b00e67e5a0c000008000000000000"}
continuous effect applied {"session": 8, "selector": 0, "index": 59, "effect_bit": 59, "cont_type": 1, "debuff": false, "on_target": false, "dur_s": 1200}
recv {"session": 8, "op": "11/04", "body": "3900e67e5a0c000002000000000000"}
continuous effect applied {"session": 8, "selector": 0, "index": 57, "effect_bit": 57, "cont_type": 1, "debuff": false, "on_target": false, "dur_s": 1200}

One line per cast, for the caster only; nothing for skill 58 or 60 (the link rows).

3. The leader buffs themselves work

On v0.3.1 the leader's own slots are read: rate[32] by weaponAttackParam/forceAttackParam, rate[33] by defenceFC, rate[9] by maxPointsWithGear. plus[33] (−200) has no reader. So the gap is only the link effect.

Expected

When a leader or council member casts a leader skill, race members within the skill's range also get its link effect (m_strRangeEffCode, 10 s), refreshed while they stay near the leader.

Suggested fix

In castSFEffectAt (or after applyContEffectTo for a class-4 skill), when the skill row has a m_strRangeEffCode, resolve that row and apply it with applyContEffectTo to every same-race player within range of the caster (m_nContAreaType / the row's range field may say which). The 1200 s leader buff with a 10 s link suggests the link is re-sent periodically while the leader buff lasts; that part is a guess.

How to reproduce in game

  1. Make a character a council member: race boss 1 <name> (any rank 1–8, or 0).
  2. Have a second character of the same race stand next to them.
  3. Cast Conqueror's Protection (or any leader skill).
  4. The caster gets the buff icon; the second character gets nothing, and history.log has a single continuous effect applied line for the caster.

Where to look

  • Server (v0.3.1): handleSkillCast 0x140893f00, castSFEffectAt 0x140895e00, castTarget 0x1408993c0, applyContEffectTo 0x1408968e0.
  • Data: skill rows AF1F7–AF202, columns m_strRangeEffCode, m_nContAreaType.
Reported on version 0.3.1
👍 DT

Replies

Nobody has replied yet.

Sign in to comment.

Top xp sources

How xp works
Loading…

Open the full search page