Stop auto play upon teleporting.

This commit is contained in:
MobiusDevelopment 2021-04-07 11:53:48 +00:00
parent 7e112206dc
commit 85d3e6ae24
18 changed files with 222 additions and 30 deletions

View File

@ -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();
}

View File

@ -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();

View File

@ -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);

View File

@ -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();
}

View File

@ -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();

View File

@ -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);

View File

@ -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();
}

View File

@ -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();

View File

@ -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);

View File

@ -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();
}

View File

@ -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();

View File

@ -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);

View File

@ -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();
}

View File

@ -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();

View File

@ -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);

View File

@ -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();
}

View File

@ -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();

View File

@ -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);