From 7da17cc9a364ba7dbb9f909f1d52f60ccb59ac3e Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 16 Sep 2021 21:54:00 +0000 Subject: [PATCH] Fixed autouse stop when learn skill or moving shortcuts. Contributed by Serenitty. --- .../model/actor/instance/PlayerInstance.java | 31 +++++++++++++++++++ .../clientpackets/RequestAcquireSkill.java | 1 + .../clientpackets/RequestShortCutDel.java | 4 ++- .../model/actor/instance/PlayerInstance.java | 31 +++++++++++++++++++ .../clientpackets/RequestAcquireSkill.java | 1 + .../clientpackets/RequestShortCutDel.java | 4 ++- .../model/actor/instance/PlayerInstance.java | 31 +++++++++++++++++++ .../clientpackets/RequestAcquireSkill.java | 1 + .../clientpackets/RequestShortCutDel.java | 4 ++- .../model/actor/instance/PlayerInstance.java | 31 +++++++++++++++++++ .../clientpackets/RequestAcquireSkill.java | 1 + .../clientpackets/RequestShortCutDel.java | 4 ++- .../model/actor/instance/PlayerInstance.java | 31 +++++++++++++++++++ .../clientpackets/RequestAcquireSkill.java | 1 + .../clientpackets/RequestShortCutDel.java | 4 ++- .../model/actor/instance/PlayerInstance.java | 31 +++++++++++++++++++ .../clientpackets/RequestAcquireSkill.java | 1 + .../clientpackets/RequestShortCutDel.java | 4 ++- 18 files changed, 210 insertions(+), 6 deletions(-) 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 3d31708959..8501bf96fa 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 @@ -353,6 +353,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.ExActivateAutoShortcut; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; @@ -14297,6 +14298,36 @@ public class PlayerInstance extends Playable return _autoUseSettings; } + public void restoreVisualAutoUse() + { + if (_autoUseSettings.isEmpty()) + { + return; + } + + Shortcut shortcut; + for (int i = 0; i < 12; i++) + { + shortcut = getShortCut(i, 22); + if ((shortcut != null) && _autoUseSettings.getAutoSupplyItems().contains(shortcut.getId()) && (getInventory().getItemByObjectId(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut((22 * 12) + i, true)); + } + } + + for (int i = 0; i < 21; i++) + { + for (int j = 0; j < 12; j++) + { + shortcut = getShortCut(j, i); + if ((shortcut != null) && _autoUseSettings.getAutoSkills().contains(shortcut.getId()) && (getKnownSkill(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut(j + (i * 12), true)); + } + } + } + } + public boolean isInTimedHuntingZone(int zoneId) { return isInTimedHuntingZone(zoneId, getX(), getY()); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index ddf9aa797b..e975bbcd7b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -666,6 +666,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket { EventDispatcher.getInstance().notifyEventAsync(new OnPlayerSkillLearn(trainer, player, skill, _skillType), player); } + player.restoreVisualAutoUse(); } /** diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java index 3647c7679a..3c4e46e9e6 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java @@ -49,7 +49,7 @@ public class RequestShortCutDel implements IClientIncomingPacket return; } - if ((_page > 23) || (_page < 0)) + if ((_page > 23) || (_page < 1)) { return; } @@ -65,10 +65,12 @@ public class RequestShortCutDel implements IClientIncomingPacket if (_slot > 263) { AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, id); + player.restoreVisualAutoUse(); } else { AutoUseTaskManager.getInstance().removeAutoSkill(player, id); + player.restoreVisualAutoUse(); } } } diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index c2697af6ba..82bcf9eedb 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -352,6 +352,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.ExActivateAutoShortcut; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; @@ -14367,6 +14368,36 @@ public class PlayerInstance extends Playable return _autoUseSettings; } + public void restoreVisualAutoUse() + { + if (_autoUseSettings.isEmpty()) + { + return; + } + + Shortcut shortcut; + for (int i = 0; i < 12; i++) + { + shortcut = getShortCut(i, 22); + if ((shortcut != null) && _autoUseSettings.getAutoSupplyItems().contains(shortcut.getId()) && (getInventory().getItemByObjectId(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut((22 * 12) + i, true)); + } + } + + for (int i = 0; i < 21; i++) + { + for (int j = 0; j < 12; j++) + { + shortcut = getShortCut(j, i); + if ((shortcut != null) && _autoUseSettings.getAutoSkills().contains(shortcut.getId()) && (getKnownSkill(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut(j + (i * 12), true)); + } + } + } + } + public boolean isInTimedHuntingZone(int zoneId) { return isInTimedHuntingZone(zoneId, getX(), getY()); diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index ddf9aa797b..e975bbcd7b 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -666,6 +666,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket { EventDispatcher.getInstance().notifyEventAsync(new OnPlayerSkillLearn(trainer, player, skill, _skillType), player); } + player.restoreVisualAutoUse(); } /** diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java index 3647c7679a..3c4e46e9e6 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java @@ -49,7 +49,7 @@ public class RequestShortCutDel implements IClientIncomingPacket return; } - if ((_page > 23) || (_page < 0)) + if ((_page > 23) || (_page < 1)) { return; } @@ -65,10 +65,12 @@ public class RequestShortCutDel implements IClientIncomingPacket if (_slot > 263) { AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, id); + player.restoreVisualAutoUse(); } else { AutoUseTaskManager.getInstance().removeAutoSkill(player, id); + player.restoreVisualAutoUse(); } } } diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index b784e91203..877296f9a3 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -358,6 +358,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.ExActivateAutoShortcut; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; @@ -14404,6 +14405,36 @@ public class PlayerInstance extends Playable return _autoUseSettings; } + public void restoreVisualAutoUse() + { + if (_autoUseSettings.isEmpty()) + { + return; + } + + Shortcut shortcut; + for (int i = 0; i < 12; i++) + { + shortcut = getShortCut(i, 22); + if ((shortcut != null) && _autoUseSettings.getAutoSupplyItems().contains(shortcut.getId()) && (getInventory().getItemByObjectId(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut((22 * 12) + i, true)); + } + } + + for (int i = 0; i < 21; i++) + { + for (int j = 0; j < 12; j++) + { + shortcut = getShortCut(j, i); + if ((shortcut != null) && _autoUseSettings.getAutoSkills().contains(shortcut.getId()) && (getKnownSkill(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut(j + (i * 12), true)); + } + } + } + } + public boolean isInTimedHuntingZone(int zoneId) { return isInTimedHuntingZone(zoneId, getX(), getY()); diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index ddf9aa797b..e975bbcd7b 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -666,6 +666,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket { EventDispatcher.getInstance().notifyEventAsync(new OnPlayerSkillLearn(trainer, player, skill, _skillType), player); } + player.restoreVisualAutoUse(); } /** diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java index 3647c7679a..3c4e46e9e6 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java @@ -49,7 +49,7 @@ public class RequestShortCutDel implements IClientIncomingPacket return; } - if ((_page > 23) || (_page < 0)) + if ((_page > 23) || (_page < 1)) { return; } @@ -65,10 +65,12 @@ public class RequestShortCutDel implements IClientIncomingPacket if (_slot > 263) { AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, id); + player.restoreVisualAutoUse(); } else { AutoUseTaskManager.getInstance().removeAutoSkill(player, id); + player.restoreVisualAutoUse(); } } } 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 e2503006d2..463953242f 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 @@ -357,6 +357,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.ExActivateAutoShortcut; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; @@ -14277,6 +14278,36 @@ public class PlayerInstance extends Playable return _autoUseSettings; } + public void restoreVisualAutoUse() + { + if (_autoUseSettings.isEmpty()) + { + return; + } + + Shortcut shortcut; + for (int i = 0; i < 12; i++) + { + shortcut = getShortCut(i, 22); + if ((shortcut != null) && _autoUseSettings.getAutoSupplyItems().contains(shortcut.getId()) && (getInventory().getItemByObjectId(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut((22 * 12) + i, true)); + } + } + + for (int i = 0; i < 21; i++) + { + for (int j = 0; j < 12; j++) + { + shortcut = getShortCut(j, i); + if ((shortcut != null) && _autoUseSettings.getAutoSkills().contains(shortcut.getId()) && (getKnownSkill(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut(j + (i * 12), true)); + } + } + } + } + public boolean isInTimedHuntingZone(int zoneId) { return isInTimedHuntingZone(zoneId, getX(), getY()); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index d72a13de82..dfb46e5725 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -633,6 +633,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket { EventDispatcher.getInstance().notifyEventAsync(new OnPlayerSkillLearn(trainer, player, skill, _skillType), player); } + player.restoreVisualAutoUse(); } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java index 3647c7679a..3c4e46e9e6 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java @@ -49,7 +49,7 @@ public class RequestShortCutDel implements IClientIncomingPacket return; } - if ((_page > 23) || (_page < 0)) + if ((_page > 23) || (_page < 1)) { return; } @@ -65,10 +65,12 @@ public class RequestShortCutDel implements IClientIncomingPacket if (_slot > 263) { AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, id); + player.restoreVisualAutoUse(); } else { AutoUseTaskManager.getInstance().removeAutoSkill(player, id); + player.restoreVisualAutoUse(); } } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index b911cdbe97..319b9c379a 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -364,6 +364,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.ExActivateAutoShortcut; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; @@ -14537,6 +14538,36 @@ public class PlayerInstance extends Playable return _autoUseSettings; } + public void restoreVisualAutoUse() + { + if (_autoUseSettings.isEmpty()) + { + return; + } + + Shortcut shortcut; + for (int i = 0; i < 12; i++) + { + shortcut = getShortCut(i, 22); + if ((shortcut != null) && _autoUseSettings.getAutoSupplyItems().contains(shortcut.getId()) && (getInventory().getItemByObjectId(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut((22 * 12) + i, true)); + } + } + + for (int i = 0; i < 21; i++) + { + for (int j = 0; j < 12; j++) + { + shortcut = getShortCut(j, i); + if ((shortcut != null) && _autoUseSettings.getAutoSkills().contains(shortcut.getId()) && (getKnownSkill(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut(j + (i * 12), true)); + } + } + } + } + public boolean isInTimedHuntingZone(int zoneId) { return isInTimedHuntingZone(zoneId, getX(), getY()); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index d7559b2d47..71e1e553e2 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -633,6 +633,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket { EventDispatcher.getInstance().notifyEventAsync(new OnPlayerSkillLearn(trainer, player, skill, _skillType), player); } + player.restoreVisualAutoUse(); } /** diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java index 3647c7679a..3c4e46e9e6 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java @@ -49,7 +49,7 @@ public class RequestShortCutDel implements IClientIncomingPacket return; } - if ((_page > 23) || (_page < 0)) + if ((_page > 23) || (_page < 1)) { return; } @@ -65,10 +65,12 @@ public class RequestShortCutDel implements IClientIncomingPacket if (_slot > 263) { AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, id); + player.restoreVisualAutoUse(); } else { AutoUseTaskManager.getInstance().removeAutoSkill(player, id); + player.restoreVisualAutoUse(); } } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 608b63b57b..a27040f5eb 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -371,6 +371,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.ExActivateAutoShortcut; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo; import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus; @@ -14614,6 +14615,36 @@ public class PlayerInstance extends Playable return _autoUseSettings; } + public void restoreVisualAutoUse() + { + if (_autoUseSettings.isEmpty()) + { + return; + } + + Shortcut shortcut; + for (int i = 0; i < 12; i++) + { + shortcut = getShortCut(i, 22); + if ((shortcut != null) && _autoUseSettings.getAutoSupplyItems().contains(shortcut.getId()) && (getInventory().getItemByObjectId(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut((22 * 12) + i, true)); + } + } + + for (int i = 0; i < 21; i++) + { + for (int j = 0; j < 12; j++) + { + shortcut = getShortCut(j, i); + if ((shortcut != null) && _autoUseSettings.getAutoSkills().contains(shortcut.getId()) && (getKnownSkill(shortcut.getId()) != null)) + { + sendPacket(new ExActivateAutoShortcut(j + (i * 12), true)); + } + } + } + } + public boolean isInTimedHuntingZone(int zoneId) { return isInTimedHuntingZone(zoneId, getX(), getY()); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index d7559b2d47..71e1e553e2 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -633,6 +633,7 @@ public class RequestAcquireSkill implements IClientIncomingPacket { EventDispatcher.getInstance().notifyEventAsync(new OnPlayerSkillLearn(trainer, player, skill, _skillType), player); } + player.restoreVisualAutoUse(); } /** diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java index 3647c7679a..3c4e46e9e6 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutDel.java @@ -49,7 +49,7 @@ public class RequestShortCutDel implements IClientIncomingPacket return; } - if ((_page > 23) || (_page < 0)) + if ((_page > 23) || (_page < 1)) { return; } @@ -65,10 +65,12 @@ public class RequestShortCutDel implements IClientIncomingPacket if (_slot > 263) { AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, id); + player.restoreVisualAutoUse(); } else { AutoUseTaskManager.getInstance().removeAutoSkill(player, id); + player.restoreVisualAutoUse(); } } }