rendered paste bodyIndex: java/net/sf/l2j/gameserver/clientpackets/RequestExEnchantSkill.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestExEnchantSkill.java (revision 1356)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestExEnchantSkill.java (working copy)
@@ -186,6 +186,7 @@
{
_skillLvl = _baseLvl;
player.addSkill(SkillTable.getInstance().getInfo(_skillId, _skillLvl), true);
+ player.sendSkillList();
}
SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_FAILED_TO_ENCHANT_THE_SKILL_S1);
sm.addSkillName(_skillId);
Index: java/net/sf/l2j/gameserver/clientpackets/RequestSkillList.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestSkillList.java (revision 1356)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestSkillList.java (working copy)
@@ -53,22 +53,7 @@
if (cha == null)
return;
- SkillList response = new SkillList();
- L2Skill[] skills = cha.getAllSkills();
-
- for (int i = 0; i < skills.length; i++)
- {
- L2Skill s = skills[i];
-
- if (s == null)
- continue;
- if (s.getId() > 9000)
- continue; // fake skills to change base stats
-
- response.addSkill(s.getId(), s.getLevel(), s.isPassive());
- }
-
- sendPacket(response);
+ cha.sendSkillList();
}
/* (non-Javadoc)
Index: java/net/sf/l2j/gameserver/clientpackets/RequestAquireSkill.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestAquireSkill.java (revision 1356)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestAquireSkill.java (working copy)
@@ -37,6 +37,7 @@
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.serverpackets.ExStorageMaxCount;
import net.sf.l2j.gameserver.serverpackets.PledgeShowInfoUpdate;
+import net.sf.l2j.gameserver.serverpackets.PledgeSkillList;
import net.sf.l2j.gameserver.serverpackets.ShortCutRegister;
import net.sf.l2j.gameserver.serverpackets.StatusUpdate;
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
@@ -294,8 +295,12 @@
player.sendPacket(sm);
sm = null;
- player.getClan().broadcastToOnlineMembers(new PledgeShowInfoUpdate(player.getClan()));
+ player.getClan().broadcastToOnlineMembers(new PledgeSkillList(player.getClan()));
+ for(L2PcInstance member: player.getClan().getOnlineMembers(""))
+ {
+ member.sendSkillList();
+ }
((L2VillageMasterInstance)trainer).showPledgeSkillList(player); //Maybe we shoud add a check here...
return;
Index: /java/net/sf/l2j/gameserver/Olympiad.java
===================================================================
--- java/net/sf/l2j/gameserver/Olympiad.java (revision 1356)
+++ java/net/sf/l2j/gameserver/Olympiad.java (working copy)
@@ -1466,6 +1466,11 @@
for(L2Skill skill: player.getClan().getAllSkills())
player.removeSkill(skill,false);
}
+ //Abort casting if player casting
+ if (player.isCastingNow())
+ {
+ player.abortCast();
+ }
//Remove Hero Skills
if (player.isHero())
@@ -1545,7 +1550,7 @@
Map<Integer, Integer> activeSoulShots = player.getAutoSoulShot();
for (int itemId : activeSoulShots.values())
player.removeAutoSoulShot(itemId);
-
+ player.sendSkillList();
} catch (Exception e) {}
}
@@ -1703,6 +1708,7 @@
for(L2Skill skill: HeroSkillTable.GetHeroSkills())
player.addSkill(skill,false);
}
+ player.sendSkillList();
} catch (Exception e) {}
}
}
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1356)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -171,6 +171,7 @@
import net.sf.l2j.gameserver.serverpackets.SendTradeDone;
import net.sf.l2j.gameserver.serverpackets.SetupGauge;
import net.sf.l2j.gameserver.serverpackets.ShortCutInit;
+import net.sf.l2j.gameserver.serverpackets.SkillList;
import net.sf.l2j.gameserver.serverpackets.Snoop;
import net.sf.l2j.gameserver.serverpackets.SocialAction;
import net.sf.l2j.gameserver.serverpackets.StatusUpdate;
@@ -656,6 +657,7 @@
_reference = reference;
_sendMessage = sendMessage;
}
+ @SuppressWarnings("synthetic-access")
public void run()
{
try
@@ -2120,7 +2122,7 @@
{
giveAvailableSkills();
}
-
+ sendSkillList();
// This function gets called on login, so not such a bad place to check weight
refreshOverloaded(); // Update the overloaded status of the L2PcInstance
refreshExpertisePenalty(); // Update the expertise status of the L2PcInstance
@@ -8116,6 +8118,8 @@
super.removeSkill(s); //Just Remove skills from nonHero characters
}
_hero = hero;
+
+ sendSkillList();
}
public void setIsInOlympiadMode(boolean b)
@@ -8233,6 +8237,8 @@
for (L2Skill s : NobleSkillTable.getInstance().GetNobleSkills())
super.removeSkill(s); //Just Remove skills without deleting from Sql
_noble = val;
+
+ sendSkillList();
}
public void setLvlJoinedAcademy(int lvl)
@@ -8300,6 +8306,27 @@
{
return (_alliedVarkaKetra > 0);
}
+ public void sendSkillList()
+ {
+ sendSkillList(this);
+ }
+
+ public void sendSkillList(L2PcInstance player)
+ {
+ SkillList sl = new SkillList();
+ if(player != null)
+ {
+ for (L2Skill s : player.getAllSkills())
+ {
+ if (s == null)
+ continue;
+ if (s.getId() > 9000)
+ continue; // Fake skills to change base stats
+ sl.addSkill(s.getId(), s.getLevel(), s.isPassive());
+ }
+ }
+ sendPacket(sl);
+ }
/**
* 1. Add the specified class ID as a subclass (up to the maximum number of <b>three</b>)
@@ -8837,6 +8864,7 @@
_lastRecomUpdate = update.getTimeInMillis();
}
+
@Override
public void doRevive()
{
@@ -10015,7 +10043,7 @@
public void calculateDeathPenaltyBuffLevel(L2Character killer)
{
if(Rnd.get(100) <= Config.DEATH_PENALTY_CHANCE
- && !(killer instanceof L2PcInstance)
+ && !(killer instanceof L2PcInstance) && !(this.isGM())
&& !(this.getCharmOfLuck() && (killer instanceof L2BossInstance || killer instanceof L2RaidBossInstance)))
increaseDeathPenaltyBuffLevel();
Index: java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (revision 1356)
+++ java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (working copy)
@@ -229,7 +229,11 @@
su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
su.addAttribute(StatusUpdate.MAX_MP, getMaxMp());
getActiveChar().sendPacket(su);
-
+
+ // Update the overloaded status of the L2PcInstance
+ getActiveChar().refreshOverloaded();
+ // Update the expertise status of the L2PcInstance
+ getActiveChar().refreshExpertisePenalty();
// Send a Server->Client packet UserInfo to the L2PcInstance
getActiveChar().sendPacket(new UserInfo(getActiveChar()));
Index: java/net/sf/l2j/gameserver/model/L2Augmentation.java
===================================================================
--- java/net/sf/l2j/gameserver/model/L2Augmentation.java (revision 1356)
+++ java/net/sf/l2j/gameserver/model/L2Augmentation.java (working copy)
@@ -181,7 +181,11 @@
_boni.applyBoni(player);
// add the skill if any
- if (_skill != null) player.addSkill(_skill);
+ if (_skill != null)
+ {
+ player.addSkill(_skill);
+ player.sendSkillList();
+ }
}
/**
@@ -193,6 +197,10 @@
_boni.removeBoni(player);
// remove the skill if any
- if (_skill != null) player.removeSkill(_skill);
+ if (_skill != null)
+ {
+ player.removeSkill(_skill);
+ player.sendSkillList();
+ }
}
}
Index: java/net/sf/l2j/gameserver/model/Inventory.java
===================================================================
--- java/net/sf/l2j/gameserver/model/Inventory.java (revision 1356)
+++ java/net/sf/l2j/gameserver/model/Inventory.java (working copy)
@@ -233,9 +233,15 @@
passiveSkill = ((L2Armor)it).getSkill();
if(passiveSkill != null)
+ {
player.removeSkill(passiveSkill, false);
+ player.sendSkillList();
+ }
if(enchant4Skill != null)
+ {
player.removeSkill(enchant4Skill, false);
+ player.sendSkillList();
+ }
}
public void notifyEquiped(int slot, L2ItemInstance item)
{
@@ -264,9 +270,15 @@
passiveSkill = ((L2Armor)it).getSkill();
if(passiveSkill != null)
+ {
player.addSkill(passiveSkill, false);
+ player.sendSkillList();
+ }
if(enchant4Skill != null)
+ {
player.addSkill(enchant4Skill, false);
+ player.sendSkillList();
+ }
}
}
@@ -296,7 +308,10 @@
{
L2Skill skill = SkillTable.getInstance().getInfo(armorSet.getSkillId(),1);
if(skill != null)
+ {
player.addSkill(skill, false);
+ player.sendSkillList();
+ }
else
_log.warning("Inventory.ArmorSetListener: Incorrect skill: "+armorSet.getSkillId()+".");
@@ -304,7 +319,10 @@
{
L2Skill skills = SkillTable.getInstance().getInfo(armorSet.getShieldSkillId(),1);
if(skills != null)
+ {
player.addSkill(skills, false);
+ player.sendSkillList();
+ }
else
_log.warning("Inventory.ArmorSetListener: Incorrect skill: "+armorSet.getShieldSkillId()+".");
}
@@ -315,7 +333,10 @@
{
L2Skill skille = SkillTable.getInstance().getInfo(skillId,1);
if(skille != null)
+ {
player.addSkill(skille, false);
+ player.sendSkillList();
+ }
else
_log.warning("Inventory.ArmorSetListener: Incorrect skill: "+armorSet.getEnchant6skillId()+".");
}
@@ -328,7 +349,10 @@
{
L2Skill skills = SkillTable.getInstance().getInfo(armorSet.getShieldSkillId(),1);
if(skills != null)
+ {
player.addSkill(skills, false);
+ player.sendSkillList();
+ }
else
_log.warning("Inventory.ArmorSetListener: Incorrect skill: "+armorSet.getShieldSkillId()+".");
}
@@ -351,6 +375,7 @@
removeSkillId1 = armorSet.getSkillId();
removeSkillId2 = armorSet.getShieldSkillId();
removeSkillId3 = armorSet.getEnchant6skillId();
+ ((L2PcInstance)getOwner()).sendSkillList();
}
else
@@ -369,11 +394,13 @@
removeSkillId1 = armorSet.getSkillId();
removeSkillId2 = armorSet.getShieldSkillId();
removeSkillId3 = armorSet.getEnchant6skillId();
+ ((L2PcInstance)getOwner()).sendSkillList();
}
else if(armorSet.containShield(item.getItemId())) // removed shield
{
remove = true;
removeSkillId2 = armorSet.getShieldSkillId();
+ ((L2PcInstance)getOwner()).sendSkillList();
}
}
@@ -383,7 +410,10 @@
{
L2Skill skill = SkillTable.getInstance().getInfo(removeSkillId1,1);
if(skill != null)
+ {
((L2PcInstance)getOwner()).removeSkill(skill);
+ ((L2PcInstance)getOwner()).sendSkillList();
+ }
else
_log.warning("Inventory.ArmorSetListener: Incorrect skill: "+removeSkillId1+".");
}
@@ -391,7 +421,10 @@
{
L2Skill skill = SkillTable.getInstance().getInfo(removeSkillId2,1);
if(skill != null)
+ {
((L2PcInstance)getOwner()).removeSkill(skill);
+ ((L2PcInstance)getOwner()).sendSkillList();
+ }
else
_log.warning("Inventory.ArmorSetListener: Incorrect skill: "+removeSkillId2+".");
}
@@ -399,7 +432,10 @@
{
L2Skill skill = SkillTable.getInstance().getInfo(removeSkillId3,1);
if(skill != null)
+ {
((L2PcInstance)getOwner()).removeSkill(skill);
+ ((L2PcInstance)getOwner()).sendSkillList();
+ }
else
_log.warning("Inventory.ArmorSetListener: Incorrect skill: "+removeSkillId3+".");
}
Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminSkill.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminSkill.java (revision 1356)
+++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminSkill.java (working copy)
@@ -33,6 +33,7 @@
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage;
+import net.sf.l2j.gameserver.serverpackets.PledgeSkillList;
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
/**
@@ -154,6 +155,7 @@
player.removeSkill(skill);
activeChar.sendMessage("You removed all skills from " + player.getName());
player.sendMessage("Admin removed all skills from you.");
+ player.sendSkillList();
}
}
else if (command.startsWith("admin_add_clan_skill"))
@@ -212,6 +214,7 @@
//Notify player and admin
player.sendMessage("A GM gave you " + skillCounter + " skills.");
activeChar.sendMessage("You gave " + skillCounter + " skills to " + player.getName());
+ player.sendSkillList();
}
public String[] getAdminCommandList() {
@@ -329,6 +332,7 @@
for (int i=0;i<skills.length;i++)
activeChar.addSkill(skills[i], true);
activeChar.sendMessage("You now have all the skills of "+player.getName()+".");
+ activeChar.sendSkillList();
}
showMainPage(activeChar);
}
@@ -360,6 +364,7 @@
player.sendMessage("[GM]"+activeChar.getName()+" updated your skills.");
activeChar.sendMessage("You now have all your skills back.");
adminSkills=null;
+ activeChar.sendSkillList();
}
showMainPage(activeChar);
}
@@ -402,6 +407,7 @@
activeChar.sendMessage("You gave the skill "+name+" to "+player.getName()+".");
if (Config.DEBUG)
_log.fine("[GM]"+activeChar.getName()+" gave skill "+name+" to "+player.getName()+".");
+ activeChar.sendSkillList();
}
else
activeChar.sendMessage("Error: there is no such skill.");
@@ -430,6 +436,7 @@
activeChar.sendMessage("You removed the skill "+skillname+" from "+player.getName()+".");
if (Config.DEBUG)
_log.fine("[GM]"+activeChar.getName()+" removed skill "+skillname+" from "+player.getName()+".");
+ activeChar.sendSkillList();
}
else
activeChar.sendMessage("Error: there is no such skill.");
@@ -472,6 +479,13 @@
player.getClan().broadcastToOnlineMembers(sm);
player.getClan().addNewSkill(skill);
activeChar.sendMessage("You gave the Clan Skill: "+skillname+" to the clan "+player.getClan().getName()+".");
+
+ activeChar.getClan().broadcastToOnlineMembers(new PledgeSkillList(activeChar.getClan()));
+ for(L2PcInstance member: activeChar.getClan().getOnlineMembers(""))
+ {
+ member.sendSkillList();
+ }
+
showMainPage(activeChar);
return;
}