Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/enums/ZoneId.java b/aCis_gameserver/java/net/sf/l2j/gameserver/enums/ZoneId.java
- index 412b17a..897e488 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/enums/ZoneId.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/enums/ZoneId.java
- @@ -21,7 +21,8 @@
- CAST_ON_ARTIFACT(16),
- NO_RESTART(17),
- SCRIPT(18),
- - BOSS(19);
- + BOSS(19),
- + PAGAN (20);
- private final int _id;
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/Player.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/Player.java
- index edcfca7..03cedff 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/Player.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/Player.java
- @@ -4347,6 +4347,14 @@
- _isIn7sDungeon = isIn7sDungeon;
- }
- index COLOQUE NO FINAL A CIMA DA CHAVE }
- + public boolean useTemporaryFix()
- + {
- + if (isInsideZone(ZoneId.PAGAN) || isInsideZone(ZoneId.WATER) || isInWater())
- + return true;
- +
- + return false;
- + }
- +
- /**
- * Update the characters table of the database with online status and lastAccess of this Player (called when login and logout).
- */
- @@ -7126,6 +7134,9 @@
- */
- public final boolean isFalling(int z)
- {
- + if (useTemporaryFix())
- + return false;
- +
- if (isDead() || getMove().getMoveType() != MoveType.GROUND)
- return false;
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/move/PlayerMove.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/move/PlayerMove.java
- index 36d0924..6969b46 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/move/PlayerMove.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/move/PlayerMove.java
- @@ -293,7 +293,7 @@
- }
- // Check if location can be reached (case of dynamic objects, such as opening doors/fences).
- - if (type == MoveType.GROUND && !GeoEngine.getInstance().canMoveToTarget(curX, curY, curZ, nextX, nextY, nextZ))
- + if (type == MoveType.GROUND && !GeoEngine.getInstance().canMoveToTarget(curX, curY, curZ, nextX, nextY, nextZ) && !_actor.useTemporaryFix()))
- {
- _blocked = true;
- return true;
- @@ -437,19 +437,13 @@
- // Retain some informations fur future use.
- final MoveType moveType = getMoveType();
- - // We can process to next point without extra help ; return directly.
- - if (moveType != MoveType.GROUND)
- - {
- - if (GeoEngine.getInstance().canFlyToTarget(ox, oy, oz, 32, tx, ty, tz))
- - return null;
- - }
- - else if (GeoEngine.getInstance().canMoveToTarget(ox, oy, oz, tx, ty, tz))
- + if (GeoEngine.getInstance().canMoveToTarget(ox, oy, oz, tx, ty, tz))
- return null;
- // Create dummy packet.
- final ExServerPrimitive dummy = _isDebugPath ? new ExServerPrimitive() : null;
- - if (moveType != MoveType.GROUND)
- + if ((moveType != MoveType.GROUND) || _actor.useTemporaryFix())
- return GeoEngine.getInstance().getValidFlyLocation(ox, oy, oz, 32, tx, ty, tz, dummy);
- // Calculate the path. If no path or too short, calculate the first valid location.
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/zone/type/WaterZone.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/zone/type/WaterZone.java
- new file mode 100644
- index 0000000..0b63200
- --- /dev/null
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/zone/type/WaterZone.java
- @@ -0,0 +1,28 @@
- public class WaterZone extends ZoneType
- {
- public WaterZone(int id)
- {
- super(id);
- }
- @Override
- protected void onEnter(Creature character)
- {
- character.setInsideZone(ZoneId.WATER, true);
- character.getMove().addMoveType(MoveType.SWIM);
- + character.setInsideZone(ZoneId.PAGAN, true);
- }
- @Override
- protected void onExit(Creature character)
- {
- character.setInsideZone(ZoneId.WATER, false);
- character.getMove().removeMoveType(MoveType.SWIM);
- + character.setInsideZone(ZoneId.PAGAN, false);
- }
- }
- \ No newline at end of file
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ValidatePosition.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ValidatePosition.java
- index 3677647..38ac3d3 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ValidatePosition.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ValidatePosition.java
- @@ -51,7 +51,7 @@
- sendPacket(new GetOnVehicle(player.getObjectId(), _boatId, player.getBoatPosition()));
- }
- // For regular movement, send back if the desync is bigger than actual speed.
- - else
- + else if (!player.useTemporaryFix())
- {
- actualSpeed = player.getStatus().getMoveSpeed();
- dist = (player.getMove().getMoveType() == MoveType.GROUND) ? player.getPosition().distance2D(_x, _y) : player.getPosition().distance3D(_x, _y, _z);
Add Comment
Please, Sign In to add comment