L2JMobius

The Kamael Character stuck near stairs with l2j geo

uchihasv · 9 · 2179

Offline uchihasv

  • Knight
  • ***
    • Posts: 56
After reverted back to l2j geoengine, characters can stuck near stairs.

Geogrid in screenshot show missing geodata parts when u stuck, but if u check geodata before stuck, then geogrid show u geodata without missing.



This means that part of the geodata can disappear on the fly when you come near any stairs.

Needs to be repaired, as this happens very often in villages with stairs.
DS: uchihasv#1256


Offline uchihasv

  • Knight
  • ***
    • Posts: 56


This happen after climbing stairs and then it is impossible to go back, the character stuck like an invisible wall.
DS: uchihasv#1256


Online Mobius

  • Administrator
  • Distinguished King
  • *****
    • Posts: 13144
The engine used is the same with L2jServer.
Take that in mind to consider that L2jServer ignores this issue.
The problem is still there tho.

A simple solution is to ignore the problem as well, by removing the code that checks if geodata actually exist.
Code: [Select]
Index: java/org/l2jmobius/gameserver/model/actor/Creature.java
===================================================================
--- java/org/l2jmobius/gameserver/model/actor/Creature.java (revision 8319)
+++ java/org/l2jmobius/gameserver/model/actor/Creature.java (working copy)
@@ -3383,6 +3383,7 @@
  final Location destiny = GeoEngine.getInstance().canMoveToTargetLoc(curX, curY, curZ, x, y, z, getInstanceWorld());
  x = destiny.getX();
  y = destiny.getY();
+ z = destiny.getZ();
  dx = x - curX;
  dy = y - curY;
  dz = z - curZ;
@@ -3396,13 +3397,17 @@
  m.geoPath = GeoEnginePathfinding.getInstance().findPath(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
  if ((m.geoPath == null) || (m.geoPath.size() < 2)) // No path found
  {
+ if ((isPlayer()) || (!isPlayable() && !isMinion() && (Math.abs(z - curZ) > 140)) || (isSummon() && !((Summon) this).getFollowStatus()))
+ {
+ return;
+ }
+
  m.disregardingGeodata = true;
 
- // Mobius: Verify destination. Prevents wall collision issues.
- final Location newDestination = GeoEngine.getInstance().canMoveToTargetLoc(curX, curY, curZ, originalX, originalY, originalZ, getInstanceWorld());
- x = newDestination.getX();
- y = newDestination.getY();
- z = newDestination.getZ();
+ x = originalX;
+ y = originalY;
+ z = originalZ;
+ distance = originalDistance;
  }
  else
  {



Online Mobius

  • Administrator
  • Distinguished King
  • *****
    • Posts: 13144


Offline uchihasv

  • Knight
  • ***
    • Posts: 56
Nice work.

I also found another bug with geodata in the new lair of antharas, character can stuck here:


it looks like there is no geodata where bone texture is on the ground or what?
DS: uchihasv#1256


Offline Trance

  • Elder
  • ****
    • Posts: 133
Nice work.

I also found another bug with geodata in the new lair of antharas, character can stuck here:


it looks like there is no geodata where bone texture is on the ground or what?

Wait a sec. Can you reproduce the bug there or is the geodata simply missing there (without reproducing the bug)?


Offline uchihasv

  • Knight
  • ***
    • Posts: 56
Wait a sec. Can you reproduce the bug there or is the geodata simply missing there (without reproducing the bug)?
You can check it yourself, I don't know exactly why this bug is happening there.
DS: uchihasv#1256