L2JMobius

C4 Blessed Scroll of Escape causes sideways running / camera desync

gramAtton · 4 · 248

Offline gramAtton

  • Vassal
  • *
    • Posts: 3

Hello,

I would like to report a long-standing client/server desynchronization bug related to **Blessed Scroll of Escape (BSoE)** on **Lineage 2 C4 (Scions of Destiny)** using **L2J Mobius**.

 Description

When a player uses **Blessed Scroll of Escape**, after teleport the character starts **running sideways** (movement direction does not match camera direction).
The camera is rotated incorrectly and remains desynced until another teleport or relog.

This issue does **not** occur with a normal Scroll of Escape.

### Steps to Reproduce

1. Login with a character on C4 client.
2. Use **Blessed Scroll of Escape**.
3. After teleport, start moving.
4. Character runs sideways (movement vector ≠ camera direction).

### Important Observation

* Using **normal Scroll of Escape** always works correctly.
* If a player uses **normal SoE first**, and **then Blessed SoE**, the bug does **not** occur.
* This strongly suggests a **client-side state reset difference** between SoE and BSoE.

### Expected Behavior

After teleport, the character should move in the correct direction relative to the camera, identical to normal SoE behavior.

### Actual Behavior

After BSoE teleport:

* Camera direction becomes desynchronized
* Character runs sideways
* Server-side heading updates alone do not fully resolve the issue

### Technical Notes

* Server sends TeleportToLocation correctly.
* Heading may be 0 or ignored by the C4 client in this case.
* Sending ValidateLocation and UserInfo alone is insufficient.
* The C4 client appears to keep an invalid movement/camera state after BSoE.
* A forced StopMove + delayed second Teleport packet partially mitigates the issue.

### Conclusion

This appears to be a **C4 client-specific bug triggered by Blessed Scroll of Escape**, likely due to missing or different internal state reset compared to normal SoE.

Thank you for your time and for maintaining L2J Mobius.
Any insights or recommended workaround would be appreciated.

Best regards,


Online Mobius

  • Distinguished King
  • *****
    • Posts: 19715
On C1 and Interlude it seems to work correctly.
Maybe client related?

This seems to work...
Code: (diff) [Select]
diff --git a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/02000-02099.xml b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/02000-02099.xml
index ddde246..f5a6a03 100644
--- a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/02000-02099.xml
+++ b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/stats/skills/02000-02099.xml
@@ -360,6 +360,8 @@
  <table name="#itemConsumeId">1538 3958</table>
  <set name="operateType" val="A1" />
  <set name="targetType" val="SELF" />
+ <set name="displayId" val="2013" /> <!-- C4 animation fix -->
+ <set name="displayLevel" val="1" /> <!-- C4 animation fix -->
  <set name="hitTime" val="500" />
  <set name="isMagic" val="2" /> <!-- Static Skill -->
  <set name="itemConsumeCount" val="1" />