Old School Ops

RF455-075 RF 4.55: MAU attacks always hit one target (no Catapult area hit, no Goliath AoE): the part loader drops m_nEffectGroup

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. Expected : Update 4.15 "Age of Patron": the Catapult has an area hit. Update 4.151: the Goliath's attack changed from single target to AoE.

Summary

  • The data marks the Catapult arms as area weapons (read from gamedata_rf455.db):
ArmCodeLevelRangeEffectGroup
Ice Blasterunar024Lv692405
Beelzebub Catapult Launcherunar028Lv742405
(Lv79, no name)unar029Lv792405
Goliath arms, e.g. Beelzebub Goliath Armunar008Lv74—0
  • By frame: all 20 Catapult arms (unar021–040), and the 40 arms of the other two frames (unar041–080), have EffectGroup 5.
  • The 20 Goliath arms (unar001–020) have 0: the data has no area marker for them, even though 4.151 made the Goliath's attack AoE.
  • On the server a MAU attack always hits exactly one target (read). There is no area damage for any frame or part.

Server side (all read, v0.3.1)

  • The part loader never loads the area column. gamedata.(*Data).UnitPartFor 0x1405348a0 serves all six part tables (unithead, unitupper, unitlower, unitarms, unitshoulder, unitback, from the table at 0x1414430c0). It scans 29 columns, with the SELECT prefix at 0x140bf2c64: m_dwIndex, m_strCode, m_strName, m_nWPType, m_nDurUnit, m_nLevelLim, m_strDefFrame, m_nNeedBt, m_nStdPrice, m_nDefFc, m_nBstCha, m_fBstSpd, m_nRepPrice, m_nDesrepPrice, m_nGAMinAF, m_nGAMaxAF, m_nBackSlt, m_nUpLevelLim, m_nExpertID1, m_nExpertLim1, m_nExpertID2, m_nExpertLim2, m_nGAMinSelProb, m_nGAMaxSelProb, m_nDefMastery, m_nFireTol, m_nWaterTol, m_nSoilTol, m_nWindTol.
    • m_nEffectGroup isn't among them.
    • Nor are m_fAttackRange, m_nAttackDel and the four effect pairs.
    • The unitbullet loader (UnitBulletFor 0x140534de0) doesn't load m_strEffectIndex.
  • The attack handler is single-target:
    • handleAttackUnit 0x140972280 (05/04) parses one target.
    • For a monster, it does monsterByIndex, unitSpendBullet, rollUnitDamage 0x140972e20, one (*monster).takeDamage, then AttackUnitResult and broadcastNearScope.
    • For a player, it calls unitAttackPlayer 0x140972820, which resolves one pvpTarget and applies one pvpStrike.
    • There's no loop over nearby targets, and no call to applyAoEDamage 0x1407dca60, which the other area attacks use.
  • Related: RF455-051Released. Once area hits exist, AttackUnitResult 0x140665060 also packs 10-byte targets where the client reads 14, so a second target would show wrongly. That part is already filed under RF455-051Released.

Suggested fix

  • Load m_nEffectGroup (and the bullet's m_strEffectIndex if the area comes from the ammo).
  • For an area part, damage every hostile target within the area radius around the hit target, through applyAoEDamage, as the other area attacks do.
  • Give the Goliath its 4.151 AoE as well. The client data doesn't mark it, so it would need a rule or a data change.

Local workaround

None.

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