Update skill shortcuts when autolearn is enabled.
This commit is contained in:
parent
03702eb60b
commit
24d326dbae
@ -2684,12 +2684,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -691,11 +691,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList(false);
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2686,12 +2686,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -691,11 +691,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList(false);
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2688,12 +2688,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -691,11 +691,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList(false);
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2696,12 +2696,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -691,11 +691,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList(false);
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2725,12 +2725,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -641,11 +641,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2725,12 +2725,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -641,11 +641,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2726,12 +2726,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -641,11 +641,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2662,12 +2662,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -644,11 +644,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2692,12 +2692,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -644,11 +644,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2709,12 +2709,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -644,11 +644,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2711,12 +2711,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -644,11 +644,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -117,8 +117,8 @@ import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Guard;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Monster;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.RaidBoss;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.SiegeGuard;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.SiegeGuard;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.TamedBeast;
|
||||
import org.l2jmobius.gameserver.model.actor.knownlist.PlayerKnownList;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -206,6 +206,7 @@ import org.l2jmobius.gameserver.network.serverpackets.Ride;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SendTradeDone;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SetupGauge;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutInit;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.Snoop;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
|
||||
@ -2777,32 +2778,46 @@ public class Player extends Playable
|
||||
int skillCounter = 0;
|
||||
|
||||
final Collection<Skill> skills = SkillTreeTable.getInstance().getAllAvailableSkills(this, getClassId());
|
||||
for (Skill sk : skills)
|
||||
for (Skill skill : skills)
|
||||
{
|
||||
if (getSkillLevel(sk.getId()) == 0)
|
||||
if (getSkillLevel(skill.getId()) == 0)
|
||||
{
|
||||
skillCounter++;
|
||||
}
|
||||
|
||||
// Penality skill are not auto learn
|
||||
if ((sk.getId() == 4267 /* Grade Penalty */) || (sk.getId() == 4270 /* Weight Penalty */))
|
||||
if ((skill.getId() == 4267 /* Grade Penalty */) || (skill.getId() == 4270 /* Weight Penalty */))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// fix when learning toggle skills
|
||||
if (sk.isToggle())
|
||||
if (skill.isToggle())
|
||||
{
|
||||
final Effect toggleEffect = getFirstEffect(sk.getId());
|
||||
final Effect toggleEffect = getFirstEffect(skill.getId());
|
||||
if (toggleEffect != null)
|
||||
{
|
||||
// stop old toggle skill effect, and give new toggle skill effect back
|
||||
toggleEffect.exit(false);
|
||||
sk.applyEffects(this, this, false, false, false);
|
||||
skill.applyEffects(this, this, false, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
addSkill(sk, true);
|
||||
addSkill(skill, true);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
for (ShortCut shortcut : getAllShortCuts())
|
||||
{
|
||||
if ((shortcut != null) && (shortcut.getId() == skill.getId()) && (shortcut.getType() == ShortCut.TYPE_SKILL))
|
||||
{
|
||||
final ShortCut newsc = new ShortCut(shortcut.getSlot(), shortcut.getPage(), shortcut.getType(), shortcut.getId(), shortcut.getLevel());
|
||||
sendPacket(new ShortCutRegister(newsc));
|
||||
registerShortCut(newsc);
|
||||
}
|
||||
}
|
||||
sendPacket(new ShortCutInit(this));
|
||||
}
|
||||
}
|
||||
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
|
@ -120,8 +120,8 @@ import org.l2jmobius.gameserver.model.actor.instance.GrandBoss;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Guard;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Monster;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.RaidBoss;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.SiegeGuard;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.SiegeGuard;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.TamedBeast;
|
||||
import org.l2jmobius.gameserver.model.actor.knownlist.PlayerKnownList;
|
||||
import org.l2jmobius.gameserver.model.actor.stat.PlayerStat;
|
||||
@ -213,6 +213,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SendTradeDone;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SetupGauge;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ShortBuffStatusUpdate;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutInit;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SkillCoolTime;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.Snoop;
|
||||
@ -2845,32 +2846,46 @@ public class Player extends Playable
|
||||
int skillCounter = 0;
|
||||
|
||||
final Collection<Skill> skills = SkillTreeTable.getInstance().getAllAvailableSkills(this, getClassId());
|
||||
for (Skill sk : skills)
|
||||
for (Skill skill : skills)
|
||||
{
|
||||
if (getSkillLevel(sk.getId()) == 0)
|
||||
if (getSkillLevel(skill.getId()) == 0)
|
||||
{
|
||||
skillCounter++;
|
||||
}
|
||||
|
||||
// Penality skill are not auto learn
|
||||
if ((sk.getId() == 4267 /* Grade Penalty */) || (sk.getId() == 4270 /* Weight Penalty */))
|
||||
if ((skill.getId() == 4267 /* Grade Penalty */) || (skill.getId() == 4270 /* Weight Penalty */))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// fix when learning toggle skills
|
||||
if (sk.isToggle())
|
||||
if (skill.isToggle())
|
||||
{
|
||||
final Effect toggleEffect = getFirstEffect(sk.getId());
|
||||
final Effect toggleEffect = getFirstEffect(skill.getId());
|
||||
if (toggleEffect != null)
|
||||
{
|
||||
// stop old toggle skill effect, and give new toggle skill effect back
|
||||
toggleEffect.exit(false);
|
||||
sk.applyEffects(this, this, false, false, false);
|
||||
skill.applyEffects(this, this, false, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
addSkill(sk, true);
|
||||
addSkill(skill, true);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
for (ShortCut shortcut : getAllShortCuts())
|
||||
{
|
||||
if ((shortcut != null) && (shortcut.getId() == skill.getId()) && (shortcut.getType() == ShortCut.TYPE_SKILL))
|
||||
{
|
||||
final ShortCut newsc = new ShortCut(shortcut.getSlot(), shortcut.getPage(), shortcut.getType(), shortcut.getId(), shortcut.getLevel());
|
||||
sendPacket(new ShortCutRegister(newsc));
|
||||
registerShortCut(newsc);
|
||||
}
|
||||
}
|
||||
sendPacket(new ShortCutInit(this));
|
||||
}
|
||||
}
|
||||
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
|
@ -2708,32 +2708,41 @@ public class Player extends Playable
|
||||
// Get available skills.
|
||||
final Collection<Skill> skills = SkillTreeData.getInstance().getAllAvailableSkills(this, getClassId(), includeByFs, includeAutoGet, includeRequiredItems);
|
||||
final List<Skill> skillsForStore = new ArrayList<>();
|
||||
for (Skill sk : skills)
|
||||
for (Skill skill : skills)
|
||||
{
|
||||
if (getKnownSkill(sk.getId()) == sk)
|
||||
if (getKnownSkill(skill.getId()) == skill)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (getSkillLevel(sk.getId()) == 0)
|
||||
if (getSkillLevel(skill.getId()) == 0)
|
||||
{
|
||||
skillCounter++;
|
||||
}
|
||||
|
||||
// Fix when learning toggle skills.
|
||||
if (sk.isToggle() && isAffectedBySkill(sk.getId()))
|
||||
if (skill.isToggle() && isAffectedBySkill(skill.getId()))
|
||||
{
|
||||
stopSkillEffects(SkillFinishType.REMOVED, sk.getId());
|
||||
stopSkillEffects(SkillFinishType.REMOVED, skill.getId());
|
||||
}
|
||||
|
||||
addSkill(sk, false);
|
||||
skillsForStore.add(sk);
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
@ -4190,11 +4199,11 @@ public class Player extends Playable
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a Server->Client packet UserInfo to this Player and CharInfo to all Player in its _KnownPlayers. <b><u>Concept</u>:</b> Others Player in the detection area of the Player are identified in <b>_knownPlayers</b>. In order to inform other players of this
|
||||
* Player state modifications, server just need to go through _knownPlayers to send Server->Client Packet <b><u> Actions</u>:</b>
|
||||
* Send a Server->Client packet UserInfo to this Player and CharInfo to all Player in its _KnownPlayers. <b><u>Concept</u>:</b> Others Player in the detection area of the Player are identified in <b>_knownPlayers</b>. In order to inform other players of this Player state modifications, server
|
||||
* just need to go through _knownPlayers to send Server->Client Packet <b><u> Actions</u>:</b>
|
||||
* <li>Send a Server->Client packet UserInfo to this Player (Public and Private Data)</li>
|
||||
* <li>Send a Server->Client packet CharInfo to all Player in _KnownPlayers of the Player (Public data only)</li> <font color=#FF0000><b><u>Caution</u>: DON'T SEND UserInfo packet to other players instead of CharInfo packet. Indeed, UserInfo packet contains PRIVATE DATA as MaxHP,
|
||||
* STR, DEX...</b></font>
|
||||
* <li>Send a Server->Client packet CharInfo to all Player in _KnownPlayers of the Player (Public data only)</li> <font color=#FF0000><b><u>Caution</u>: DON'T SEND UserInfo packet to other players instead of CharInfo packet. Indeed, UserInfo packet contains PRIVATE DATA as MaxHP, STR,
|
||||
* DEX...</b></font>
|
||||
*/
|
||||
public void broadcastUserInfo()
|
||||
{
|
||||
|
@ -2619,32 +2619,41 @@ public class Player extends Playable
|
||||
// Get available skills.
|
||||
final Collection<Skill> skills = SkillTreeData.getInstance().getAllAvailableSkills(this, getClassId(), includeByFs, includeAutoGet, includeRequiredItems);
|
||||
final List<Skill> skillsForStore = new ArrayList<>();
|
||||
for (Skill sk : skills)
|
||||
for (Skill skill : skills)
|
||||
{
|
||||
if (getKnownSkill(sk.getId()) == sk)
|
||||
if (getKnownSkill(skill.getId()) == skill)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (getSkillLevel(sk.getId()) == 0)
|
||||
if (getSkillLevel(skill.getId()) == 0)
|
||||
{
|
||||
skillCounter++;
|
||||
}
|
||||
|
||||
// Fix when learning toggle skills.
|
||||
if (sk.isToggle() && isAffectedBySkill(sk.getId()))
|
||||
if (skill.isToggle() && isAffectedBySkill(skill.getId()))
|
||||
{
|
||||
stopSkillEffects(SkillFinishType.REMOVED, sk.getId());
|
||||
stopSkillEffects(SkillFinishType.REMOVED, skill.getId());
|
||||
}
|
||||
|
||||
addSkill(sk, false);
|
||||
skillsForStore.add(sk);
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
@ -4080,11 +4089,11 @@ public class Player extends Playable
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a Server->Client packet UserInfo to this Player and CharInfo to all Player in its _KnownPlayers. <b><u>Concept</u>:</b> Others Player in the detection area of the Player are identified in <b>_knownPlayers</b>. In order to inform other players of this
|
||||
* Player state modifications, server just need to go through _knownPlayers to send Server->Client Packet <b><u> Actions</u>:</b>
|
||||
* Send a Server->Client packet UserInfo to this Player and CharInfo to all Player in its _KnownPlayers. <b><u>Concept</u>:</b> Others Player in the detection area of the Player are identified in <b>_knownPlayers</b>. In order to inform other players of this Player state modifications, server
|
||||
* just need to go through _knownPlayers to send Server->Client Packet <b><u> Actions</u>:</b>
|
||||
* <li>Send a Server->Client packet UserInfo to this Player (Public and Private Data)</li>
|
||||
* <li>Send a Server->Client packet CharInfo to all Player in _KnownPlayers of the Player (Public data only)</li> <font color=#FF0000><b><u>Caution</u>: DON'T SEND UserInfo packet to other players instead of CharInfo packet. Indeed, UserInfo packet contains PRIVATE DATA as MaxHP,
|
||||
* STR, DEX...</b></font>
|
||||
* <li>Send a Server->Client packet CharInfo to all Player in _KnownPlayers of the Player (Public data only)</li> <font color=#FF0000><b><u>Caution</u>: DON'T SEND UserInfo packet to other players instead of CharInfo packet. Indeed, UserInfo packet contains PRIVATE DATA as MaxHP, STR,
|
||||
* DEX...</b></font>
|
||||
*/
|
||||
public void broadcastUserInfo()
|
||||
{
|
||||
|
@ -2651,12 +2651,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -692,11 +692,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList(false);
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2651,12 +2651,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -692,11 +692,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList(false);
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2649,12 +2649,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -692,11 +692,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2663,12 +2663,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -692,11 +692,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2663,12 +2663,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -692,11 +692,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2589,12 +2589,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -611,11 +611,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2648,12 +2648,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -692,11 +692,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList(false);
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2659,12 +2659,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -611,11 +611,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2690,12 +2690,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -611,11 +611,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
@ -2690,12 +2690,21 @@ public class Player extends Playable
|
||||
|
||||
addSkill(skill, false);
|
||||
skillsForStore.add(skill);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS)
|
||||
{
|
||||
updateShortCuts(skill.getId(), skill.getLevel(), skill.getSubLevel());
|
||||
}
|
||||
}
|
||||
|
||||
storeSkills(skillsForStore, -1);
|
||||
|
||||
if (Config.AUTO_LEARN_SKILLS && (skillCounter > 0))
|
||||
{
|
||||
sendPacket(new ShortCutInit(this));
|
||||
sendMessage("You have learned " + skillCounter + " new skills.");
|
||||
}
|
||||
|
||||
return skillCounter;
|
||||
}
|
||||
|
||||
|
@ -611,11 +611,10 @@ public class RequestAcquireSkill implements IClientIncomingPacket
|
||||
|
||||
player.addSkill(skill, store);
|
||||
player.sendItemList();
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level, 0);
|
||||
showSkillList(trainer, player);
|
||||
|
||||
// If skill is expand type then sends packet:
|
||||
|
Loading…
Reference in New Issue
Block a user