diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 2e00c312cf..5acf7b0ffe 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -350,6 +350,7 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeOtherDone; import org.l2jmobius.gameserver.network.serverpackets.TradeStart; import org.l2jmobius.gameserver.network.serverpackets.UserInfo; import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation; +import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; import org.l2jmobius.gameserver.network.serverpackets.monsterbook.ExMonsterBook; @@ -357,6 +358,8 @@ import org.l2jmobius.gameserver.network.serverpackets.monsterbook.ExMonsterBookC import org.l2jmobius.gameserver.network.serverpackets.monsterbook.ExMonsterBookRewardIcon; import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneExit; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoPlayTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager; import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager; import org.l2jmobius.gameserver.util.Broadcast; @@ -10366,7 +10369,7 @@ public class PlayerInstance extends Playable setLastServerPosition(getX(), getY(), getZ()); } - // Force a revalidation + // Force a revalidation. revalidateZone(true); checkItemRestriction(); @@ -10376,14 +10379,14 @@ public class PlayerInstance extends Playable setTeleportProtection(true); } - // Trained beast is lost after teleport + // Trained beast is lost after teleport. for (TamedBeastInstance tamedBeast : _tamedBeast) { tamedBeast.deleteMe(); } _tamedBeast.clear(); - // Modify the position of the pet if necessary + // Modify the position of the pet if necessary. if (_pet != null) { _pet.setFollowStatus(false); @@ -10404,7 +10407,7 @@ public class PlayerInstance extends Playable s.updateAndBroadcastStatus(0); }); - // Show movie if available + // Show movie if available. if (_movieHolder != null) { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); @@ -10416,7 +10419,12 @@ public class PlayerInstance extends Playable stopTimedHuntingZoneTask(); } - // send info to nearby players + // Stop auto play. + AutoPlayTaskManager.getInstance().stopAutoPlay(this); + AutoUseTaskManager.getInstance().stopAutoUseTask(this); + sendPacket(new ExAutoPlaySettingSend(_autoPlaySettings.getOptions(), false, _autoPlaySettings.doPickup(), _autoPlaySettings.getNextTargetMode(), _autoPlaySettings.isLongRange(), _autoPlaySettings.getAutoPotionPercent(), _autoPlaySettings.isRespectfulHunting())); + + // Send info to nearby players. broadcastInfo(); } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java index 9e2c2ddfd1..5327545f4c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java @@ -24,7 +24,9 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class AutoPlaySettingsHolder { + private final AtomicInteger _options = new AtomicInteger(); private final AtomicBoolean _pickup = new AtomicBoolean(); + private final AtomicInteger _nextTargetMode = new AtomicInteger(); private final AtomicBoolean _longRange = new AtomicBoolean(); private final AtomicBoolean _respectfulHunting = new AtomicBoolean(); private final AtomicInteger _autoPotionPercent = new AtomicInteger(); @@ -33,6 +35,16 @@ public class AutoPlaySettingsHolder { } + public int getOptions() + { + return _options.get(); + } + + public void setOptions(int options) + { + _options.set(options); + } + public boolean doPickup() { return _pickup.get(); @@ -43,6 +55,16 @@ public class AutoPlaySettingsHolder _pickup.set(value); } + public int getNextTargetMode() + { + return _nextTargetMode.get(); + } + + public void setNextTargetMode(int nextTargetMode) + { + _nextTargetMode.set(nextTargetMode); + } + public boolean isLongRange() { return _longRange.get(); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java index e9b8d70e0d..787e829e07 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java @@ -67,7 +67,9 @@ public class ExAutoPlaySetting implements IClientIncomingPacket return; } + player.getAutoPlaySettings().setOptions(_options); player.getAutoPlaySettings().setPickup(_pickUp); + player.getAutoPlaySettings().setNextTargetMode(_nextTargetMode); player.getAutoPlaySettings().setLongRange(_longRange); player.getAutoPlaySettings().setRespectfulHunting(_respectfulHunting); diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 42fb728ac4..5a148fd880 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -347,10 +347,13 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeOtherDone; import org.l2jmobius.gameserver.network.serverpackets.TradeStart; import org.l2jmobius.gameserver.network.serverpackets.UserInfo; import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation; +import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneExit; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoPlayTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager; import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager; import org.l2jmobius.gameserver.util.Broadcast; @@ -10402,7 +10405,7 @@ public class PlayerInstance extends Playable setLastServerPosition(getX(), getY(), getZ()); } - // Force a revalidation + // Force a revalidation. revalidateZone(true); checkItemRestriction(); @@ -10412,14 +10415,14 @@ public class PlayerInstance extends Playable setTeleportProtection(true); } - // Trained beast is lost after teleport + // Trained beast is lost after teleport. for (TamedBeastInstance tamedBeast : _tamedBeast) { tamedBeast.deleteMe(); } _tamedBeast.clear(); - // Modify the position of the pet if necessary + // Modify the position of the pet if necessary. if (_pet != null) { _pet.setFollowStatus(false); @@ -10440,7 +10443,7 @@ public class PlayerInstance extends Playable s.updateAndBroadcastStatus(0); }); - // Show movie if available + // Show movie if available. if (_movieHolder != null) { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); @@ -10452,7 +10455,12 @@ public class PlayerInstance extends Playable stopTimedHuntingZoneTask(); } - // send info to nearby players + // Stop auto play. + AutoPlayTaskManager.getInstance().stopAutoPlay(this); + AutoUseTaskManager.getInstance().stopAutoUseTask(this); + sendPacket(new ExAutoPlaySettingSend(_autoPlaySettings.getOptions(), false, _autoPlaySettings.doPickup(), _autoPlaySettings.getNextTargetMode(), _autoPlaySettings.isLongRange(), _autoPlaySettings.getAutoPotionPercent(), _autoPlaySettings.isRespectfulHunting())); + + // Send info to nearby players. broadcastInfo(); } diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java index 9e2c2ddfd1..5327545f4c 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java @@ -24,7 +24,9 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class AutoPlaySettingsHolder { + private final AtomicInteger _options = new AtomicInteger(); private final AtomicBoolean _pickup = new AtomicBoolean(); + private final AtomicInteger _nextTargetMode = new AtomicInteger(); private final AtomicBoolean _longRange = new AtomicBoolean(); private final AtomicBoolean _respectfulHunting = new AtomicBoolean(); private final AtomicInteger _autoPotionPercent = new AtomicInteger(); @@ -33,6 +35,16 @@ public class AutoPlaySettingsHolder { } + public int getOptions() + { + return _options.get(); + } + + public void setOptions(int options) + { + _options.set(options); + } + public boolean doPickup() { return _pickup.get(); @@ -43,6 +55,16 @@ public class AutoPlaySettingsHolder _pickup.set(value); } + public int getNextTargetMode() + { + return _nextTargetMode.get(); + } + + public void setNextTargetMode(int nextTargetMode) + { + _nextTargetMode.set(nextTargetMode); + } + public boolean isLongRange() { return _longRange.get(); diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java index 395ae6f372..d2eed717c7 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java @@ -68,7 +68,9 @@ public class ExAutoPlaySetting implements IClientIncomingPacket return; } + player.getAutoPlaySettings().setOptions(_options); player.getAutoPlaySettings().setPickup(_pickUp); + player.getAutoPlaySettings().setNextTargetMode(_nextTargetMode); player.getAutoPlaySettings().setLongRange(_longRange); player.getAutoPlaySettings().setRespectfulHunting(_respectfulHunting); diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 42fb728ac4..5a148fd880 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -347,10 +347,13 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeOtherDone; import org.l2jmobius.gameserver.network.serverpackets.TradeStart; import org.l2jmobius.gameserver.network.serverpackets.UserInfo; import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation; +import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneExit; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoPlayTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager; import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager; import org.l2jmobius.gameserver.util.Broadcast; @@ -10402,7 +10405,7 @@ public class PlayerInstance extends Playable setLastServerPosition(getX(), getY(), getZ()); } - // Force a revalidation + // Force a revalidation. revalidateZone(true); checkItemRestriction(); @@ -10412,14 +10415,14 @@ public class PlayerInstance extends Playable setTeleportProtection(true); } - // Trained beast is lost after teleport + // Trained beast is lost after teleport. for (TamedBeastInstance tamedBeast : _tamedBeast) { tamedBeast.deleteMe(); } _tamedBeast.clear(); - // Modify the position of the pet if necessary + // Modify the position of the pet if necessary. if (_pet != null) { _pet.setFollowStatus(false); @@ -10440,7 +10443,7 @@ public class PlayerInstance extends Playable s.updateAndBroadcastStatus(0); }); - // Show movie if available + // Show movie if available. if (_movieHolder != null) { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); @@ -10452,7 +10455,12 @@ public class PlayerInstance extends Playable stopTimedHuntingZoneTask(); } - // send info to nearby players + // Stop auto play. + AutoPlayTaskManager.getInstance().stopAutoPlay(this); + AutoUseTaskManager.getInstance().stopAutoUseTask(this); + sendPacket(new ExAutoPlaySettingSend(_autoPlaySettings.getOptions(), false, _autoPlaySettings.doPickup(), _autoPlaySettings.getNextTargetMode(), _autoPlaySettings.isLongRange(), _autoPlaySettings.getAutoPotionPercent(), _autoPlaySettings.isRespectfulHunting())); + + // Send info to nearby players. broadcastInfo(); } diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java index 9e2c2ddfd1..5327545f4c 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java @@ -24,7 +24,9 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class AutoPlaySettingsHolder { + private final AtomicInteger _options = new AtomicInteger(); private final AtomicBoolean _pickup = new AtomicBoolean(); + private final AtomicInteger _nextTargetMode = new AtomicInteger(); private final AtomicBoolean _longRange = new AtomicBoolean(); private final AtomicBoolean _respectfulHunting = new AtomicBoolean(); private final AtomicInteger _autoPotionPercent = new AtomicInteger(); @@ -33,6 +35,16 @@ public class AutoPlaySettingsHolder { } + public int getOptions() + { + return _options.get(); + } + + public void setOptions(int options) + { + _options.set(options); + } + public boolean doPickup() { return _pickup.get(); @@ -43,6 +55,16 @@ public class AutoPlaySettingsHolder _pickup.set(value); } + public int getNextTargetMode() + { + return _nextTargetMode.get(); + } + + public void setNextTargetMode(int nextTargetMode) + { + _nextTargetMode.set(nextTargetMode); + } + public boolean isLongRange() { return _longRange.get(); diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java index 395ae6f372..d2eed717c7 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java @@ -68,7 +68,9 @@ public class ExAutoPlaySetting implements IClientIncomingPacket return; } + player.getAutoPlaySettings().setOptions(_options); player.getAutoPlaySettings().setPickup(_pickUp); + player.getAutoPlaySettings().setNextTargetMode(_nextTargetMode); player.getAutoPlaySettings().setLongRange(_longRange); player.getAutoPlaySettings().setRespectfulHunting(_respectfulHunting); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index d4ee87db8d..576783fa60 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -350,10 +350,13 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeOtherDone; import org.l2jmobius.gameserver.network.serverpackets.TradeStart; import org.l2jmobius.gameserver.network.serverpackets.UserInfo; import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation; +import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneExit; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoPlayTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager; import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager; import org.l2jmobius.gameserver.util.Broadcast; @@ -10200,7 +10203,7 @@ public class PlayerInstance extends Playable setLastServerPosition(getX(), getY(), getZ()); } - // Force a revalidation + // Force a revalidation. revalidateZone(true); checkItemRestriction(); @@ -10210,14 +10213,14 @@ public class PlayerInstance extends Playable setTeleportProtection(true); } - // Trained beast is lost after teleport + // Trained beast is lost after teleport. for (TamedBeastInstance tamedBeast : _tamedBeast) { tamedBeast.deleteMe(); } _tamedBeast.clear(); - // Modify the position of the pet if necessary + // Modify the position of the pet if necessary. if (_pet != null) { _pet.setFollowStatus(false); @@ -10238,7 +10241,7 @@ public class PlayerInstance extends Playable s.updateAndBroadcastStatus(0); }); - // Show movie if available + // Show movie if available. if (_movieHolder != null) { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); @@ -10250,7 +10253,12 @@ public class PlayerInstance extends Playable stopTimedHuntingZoneTask(); } - // send info to nearby players + // Stop auto play. + AutoPlayTaskManager.getInstance().stopAutoPlay(this); + AutoUseTaskManager.getInstance().stopAutoUseTask(this); + sendPacket(new ExAutoPlaySettingSend(_autoPlaySettings.getOptions(), false, _autoPlaySettings.doPickup(), _autoPlaySettings.getNextTargetMode(), _autoPlaySettings.isLongRange(), _autoPlaySettings.getAutoPotionPercent(), _autoPlaySettings.isRespectfulHunting())); + + // Send info to nearby players. broadcastInfo(); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java index 9e2c2ddfd1..5327545f4c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java @@ -24,7 +24,9 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class AutoPlaySettingsHolder { + private final AtomicInteger _options = new AtomicInteger(); private final AtomicBoolean _pickup = new AtomicBoolean(); + private final AtomicInteger _nextTargetMode = new AtomicInteger(); private final AtomicBoolean _longRange = new AtomicBoolean(); private final AtomicBoolean _respectfulHunting = new AtomicBoolean(); private final AtomicInteger _autoPotionPercent = new AtomicInteger(); @@ -33,6 +35,16 @@ public class AutoPlaySettingsHolder { } + public int getOptions() + { + return _options.get(); + } + + public void setOptions(int options) + { + _options.set(options); + } + public boolean doPickup() { return _pickup.get(); @@ -43,6 +55,16 @@ public class AutoPlaySettingsHolder _pickup.set(value); } + public int getNextTargetMode() + { + return _nextTargetMode.get(); + } + + public void setNextTargetMode(int nextTargetMode) + { + _nextTargetMode.set(nextTargetMode); + } + public boolean isLongRange() { return _longRange.get(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java index e9b8d70e0d..787e829e07 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java @@ -67,7 +67,9 @@ public class ExAutoPlaySetting implements IClientIncomingPacket return; } + player.getAutoPlaySettings().setOptions(_options); player.getAutoPlaySettings().setPickup(_pickUp); + player.getAutoPlaySettings().setNextTargetMode(_nextTargetMode); player.getAutoPlaySettings().setLongRange(_longRange); player.getAutoPlaySettings().setRespectfulHunting(_respectfulHunting); diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index f6f49de705..8521d8ceca 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -354,11 +354,14 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeOtherDone; import org.l2jmobius.gameserver.network.serverpackets.TradeStart; import org.l2jmobius.gameserver.network.serverpackets.UserInfo; import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation; +import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount; import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneExit; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoPlayTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager; import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager; import org.l2jmobius.gameserver.util.Broadcast; @@ -10287,7 +10290,7 @@ public class PlayerInstance extends Playable setLastServerPosition(getX(), getY(), getZ()); } - // Force a revalidation + // Force a revalidation. revalidateZone(true); checkItemRestriction(); @@ -10297,14 +10300,14 @@ public class PlayerInstance extends Playable setTeleportProtection(true); } - // Trained beast is lost after teleport + // Trained beast is lost after teleport. for (TamedBeastInstance tamedBeast : _tamedBeast) { tamedBeast.deleteMe(); } _tamedBeast.clear(); - // Modify the position of the pet if necessary + // Modify the position of the pet if necessary. if (_pet != null) { _pet.setFollowStatus(false); @@ -10325,7 +10328,7 @@ public class PlayerInstance extends Playable s.updateAndBroadcastStatus(0); }); - // Show movie if available + // Show movie if available. if (_movieHolder != null) { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); @@ -10337,7 +10340,12 @@ public class PlayerInstance extends Playable stopTimedHuntingZoneTask(); } - // send info to nearby players + // Stop auto play. + AutoPlayTaskManager.getInstance().stopAutoPlay(this); + AutoUseTaskManager.getInstance().stopAutoUseTask(this); + sendPacket(new ExAutoPlaySettingSend(_autoPlaySettings.getOptions(), false, _autoPlaySettings.doPickup(), _autoPlaySettings.getNextTargetMode(), _autoPlaySettings.isLongRange(), _autoPlaySettings.getAutoPotionPercent(), _autoPlaySettings.isRespectfulHunting())); + + // Send info to nearby players. broadcastInfo(); } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java index 9e2c2ddfd1..5327545f4c 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java @@ -24,7 +24,9 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class AutoPlaySettingsHolder { + private final AtomicInteger _options = new AtomicInteger(); private final AtomicBoolean _pickup = new AtomicBoolean(); + private final AtomicInteger _nextTargetMode = new AtomicInteger(); private final AtomicBoolean _longRange = new AtomicBoolean(); private final AtomicBoolean _respectfulHunting = new AtomicBoolean(); private final AtomicInteger _autoPotionPercent = new AtomicInteger(); @@ -33,6 +35,16 @@ public class AutoPlaySettingsHolder { } + public int getOptions() + { + return _options.get(); + } + + public void setOptions(int options) + { + _options.set(options); + } + public boolean doPickup() { return _pickup.get(); @@ -43,6 +55,16 @@ public class AutoPlaySettingsHolder _pickup.set(value); } + public int getNextTargetMode() + { + return _nextTargetMode.get(); + } + + public void setNextTargetMode(int nextTargetMode) + { + _nextTargetMode.set(nextTargetMode); + } + public boolean isLongRange() { return _longRange.get(); diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java index 395ae6f372..d2eed717c7 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java @@ -68,7 +68,9 @@ public class ExAutoPlaySetting implements IClientIncomingPacket return; } + player.getAutoPlaySettings().setOptions(_options); player.getAutoPlaySettings().setPickup(_pickUp); + player.getAutoPlaySettings().setNextTargetMode(_nextTargetMode); player.getAutoPlaySettings().setLongRange(_longRange); player.getAutoPlaySettings().setRespectfulHunting(_respectfulHunting); diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index b4da04c902..a03a8878f6 100644 --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -354,11 +354,14 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeOtherDone; import org.l2jmobius.gameserver.network.serverpackets.TradeStart; import org.l2jmobius.gameserver.network.serverpackets.UserInfo; import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation; +import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount; import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneExit; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoPlayTaskManager; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager; import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager; import org.l2jmobius.gameserver.util.Broadcast; @@ -10291,7 +10294,7 @@ public class PlayerInstance extends Playable setLastServerPosition(getX(), getY(), getZ()); } - // Force a revalidation + // Force a revalidation. revalidateZone(true); checkItemRestriction(); @@ -10301,14 +10304,14 @@ public class PlayerInstance extends Playable setTeleportProtection(true); } - // Trained beast is lost after teleport + // Trained beast is lost after teleport. for (TamedBeastInstance tamedBeast : _tamedBeast) { tamedBeast.deleteMe(); } _tamedBeast.clear(); - // Modify the position of the pet if necessary + // Modify the position of the pet if necessary. if (_pet != null) { _pet.setFollowStatus(false); @@ -10329,7 +10332,7 @@ public class PlayerInstance extends Playable s.updateAndBroadcastStatus(0); }); - // Show movie if available + // Show movie if available. if (_movieHolder != null) { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); @@ -10341,7 +10344,12 @@ public class PlayerInstance extends Playable stopTimedHuntingZoneTask(); } - // send info to nearby players + // Stop auto play. + AutoPlayTaskManager.getInstance().stopAutoPlay(this); + AutoUseTaskManager.getInstance().stopAutoUseTask(this); + sendPacket(new ExAutoPlaySettingSend(_autoPlaySettings.getOptions(), false, _autoPlaySettings.doPickup(), _autoPlaySettings.getNextTargetMode(), _autoPlaySettings.isLongRange(), _autoPlaySettings.getAutoPotionPercent(), _autoPlaySettings.isRespectfulHunting())); + + // Send info to nearby players. broadcastInfo(); } diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java index 9e2c2ddfd1..5327545f4c 100644 --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/holders/AutoPlaySettingsHolder.java @@ -24,7 +24,9 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class AutoPlaySettingsHolder { + private final AtomicInteger _options = new AtomicInteger(); private final AtomicBoolean _pickup = new AtomicBoolean(); + private final AtomicInteger _nextTargetMode = new AtomicInteger(); private final AtomicBoolean _longRange = new AtomicBoolean(); private final AtomicBoolean _respectfulHunting = new AtomicBoolean(); private final AtomicInteger _autoPotionPercent = new AtomicInteger(); @@ -33,6 +35,16 @@ public class AutoPlaySettingsHolder { } + public int getOptions() + { + return _options.get(); + } + + public void setOptions(int options) + { + _options.set(options); + } + public boolean doPickup() { return _pickup.get(); @@ -43,6 +55,16 @@ public class AutoPlaySettingsHolder _pickup.set(value); } + public int getNextTargetMode() + { + return _nextTargetMode.get(); + } + + public void setNextTargetMode(int nextTargetMode) + { + _nextTargetMode.set(nextTargetMode); + } + public boolean isLongRange() { return _longRange.get(); diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java index 395ae6f372..d2eed717c7 100644 --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/autoplay/ExAutoPlaySetting.java @@ -68,7 +68,9 @@ public class ExAutoPlaySetting implements IClientIncomingPacket return; } + player.getAutoPlaySettings().setOptions(_options); player.getAutoPlaySettings().setPickup(_pickUp); + player.getAutoPlaySettings().setNextTargetMode(_nextTargetMode); player.getAutoPlaySettings().setLongRange(_longRange); player.getAutoPlaySettings().setRespectfulHunting(_respectfulHunting);