Old School Ops

RF455-094 RF 4.55: timed effects whose data value is 0 do nothing (Immobility, Transparency, Absolute Armor, Spin A Web, Blind Soul…)

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). Client: the supported Taiwan build, RF_Online.bin SHA-256 46528aac…2bbc558 (2025-07-16), Language=Taiwan. Data: the shipped db\gamedata_rf455.db.

Summary

In the 4.55 data, many on/off effects carry the value 0.0 on every level. Examples: a "can't move" state, a stealth flag, a "can't cast" flag. GoMMO treats the value as a quantity. It sets a state only when the value isn't 0, and it adds plus[] values. So these effects land (icon and timer) and change nothing. The same states work when the data happens to say −1.0: Magnetic Net and Hold root a monster, Immobility doesn't.

Read from the code (static). Not live-tested.

The code (v0.3.1, read)

  • States: (*client).combatEPLocked 0x1407e1260 (players) sums every live affect. For ParamCode 2 (state) it does ucomisd xmm0, 0.0 / setne at 0x1407e1640–0x1407e164f, so state[k] = value ≠ 0. The monster side, (*monster).recomputeEPLocked 0x1408ada60, does the same.
  • Stealth: (*client).hiddenFromSearch tests plus[21] > 0 (ucomisd / jbe at 0x14092b19f).
  • Bounds: combatEPLocked drops a ParamIndex ≥ 62 / 42 / 40 for rate / plus / state (cmp r8, 0x28 / jae for states, 0x1407e1637).

Affected rows (gamedata_rf455.db, value 0.0 on all 7 levels; read)

CodeNameSlotReader that would act (read)Effect lost
940FImmobilitystate[6](*monster).moveLocked 0x1408add53the monster isn't rooted (Magnetic Net and Hold use −1.0 and work)
800ATransparencyplus[21]hiddenFromSearch 0x14092b193 (needs > 0)no stealth
710AAbsolute Armorstate[8]monsterHits 0x1408b2a93, rollsHitPlayer 0x14087d99cattacks aren't missed
9407Spin A Webstate[7]none found
9402, 9403, 9406, 940A, 940BBlind Soul, Mute Soul, Desolate, Dismantle, Grow Laxstate[3], [4], [2], [0], [1]none foundthe "can't use X" debuffs
940EBleedingstate[10]regenPools 0x14090be34no regen stop (its rate[18..20] part works)
4F0F3Prey Explosion (Detonate)state[15..17]regenPoolsits regen states
AF222Mountplus[42] = 25none: index 42 is past the bounddropped

9402–940B and Spin A Web have no reader for their state, on players or monsters. They would need code even with a non-zero value.

Why the data has 0

Inferred: in the original server these ParamCode 2 slots are flags (presence = on), and the value column is unused for them. The client's own DataTable\SkillForce.edf has no non-zero value in these slots either (read: none of its effect blocks for these rows holds a non-zero series). So the data is as shipped; the reading rule is what differs.

How to reproduce

  • Immobility: cast it on a monster that is walking toward you. It keeps walking. Magnetic Net (−1.0) on the same monster stops it.
  • Transparency: cast it next to an aggressive monster. The monster still finds you.

Suggested fix

  • For ParamCode 2, set the state when the affect is present, whatever its value.
  • For plus[21] (stealth), treat presence as on, or take a non-zero default.
  • Mount's plus[42]: widen plus[], or map it to the slot the mount speed really uses.
  • Spin A Web, Blind Soul, Mute Soul, Desolate, Dismantle, Grow Lax: add the readers for their states (can't use skills or forces, can't move…).
Reported on version 0.3.1

Replies

Nobody has replied yet.

Sign in to comment.

Top xp sources

How xp works
Loading…

Open the full search page