Replacing elemental skill shortcuts.
This commit is contained in:
@@ -14,7 +14,6 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -26,6 +25,7 @@ import com.l2jmobius.gameserver.model.conditions.Condition;
|
|||||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import com.l2jmobius.gameserver.model.skills.BuffInfo;
|
import com.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||||
import com.l2jmobius.gameserver.model.skills.Skill;
|
import com.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
import com.l2jmobius.gameserver.network.serverpackets.ShortCutInit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Ofelin
|
* @author Ofelin
|
||||||
@@ -91,6 +91,7 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId);
|
final int skillLevel = player.getSkillLevel(skillId);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 1, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId + 1, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId, skillId + 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -102,6 +103,7 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId);
|
final int skillLevel = player.getSkillLevel(skillId);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 2, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId + 2, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId, skillId + 2);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -113,6 +115,7 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId);
|
final int skillLevel = player.getSkillLevel(skillId);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 3, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId + 3, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId, skillId + 3);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -124,11 +127,13 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId);
|
final int skillLevel = player.getSkillLevel(skillId);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId + 4, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId + 4, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId, skillId + 4);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
|
player.sendPacket(new ShortCutInit(player));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -145,6 +150,7 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId + 1);
|
final int skillLevel = player.getSkillLevel(skillId + 1);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 1, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId + 1, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId + 1, skillId);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -156,6 +162,7 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId + 2);
|
final int skillLevel = player.getSkillLevel(skillId + 2);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 2, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId + 2, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId + 2, skillId);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -167,6 +174,7 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId + 3);
|
final int skillLevel = player.getSkillLevel(skillId + 3);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 3, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId + 3, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId + 3, skillId);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -178,10 +186,12 @@ public class FeohStance extends AbstractEffect
|
|||||||
final int skillLevel = player.getSkillLevel(skillId + 4);
|
final int skillLevel = player.getSkillLevel(skillId + 4);
|
||||||
player.removeSkill(SkillData.getInstance().getSkill(skillId + 4, skillLevel), false);
|
player.removeSkill(SkillData.getInstance().getSkill(skillId + 4, skillLevel), false);
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
player.addSkill(SkillData.getInstance().getSkill(skillId, skillLevel), false);
|
||||||
|
player.replaceShortCuts(skillId + 4, skillId);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.sendSkillList();
|
player.sendSkillList();
|
||||||
|
player.sendPacket(new ShortCutInit(player));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -292,4 +292,23 @@ public class ShortCuts implements IRestorable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replace the shortcut icon with the new skill.
|
||||||
|
* @param skillId the skill Id to search.
|
||||||
|
* @param newSkillId the skill Id to replace.
|
||||||
|
*/
|
||||||
|
public void replaceShortCuts(int skillId, int newSkillId)
|
||||||
|
{
|
||||||
|
// Replace all the shortcuts with the new skill
|
||||||
|
for (Shortcut sc : _shortCuts.values())
|
||||||
|
{
|
||||||
|
if ((sc.getId() == skillId) && (sc.getType() == ShortcutType.SKILL))
|
||||||
|
{
|
||||||
|
final Shortcut newsc = new Shortcut(sc.getSlot(), sc.getPage(), sc.getType(), newSkillId, sc.getLevel(), 1);
|
||||||
|
_owner.sendPacket(new ShortCutRegister(newsc));
|
||||||
|
_owner.registerShortCut(newsc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1651,6 +1651,16 @@ public final class L2PcInstance extends L2Playable
|
|||||||
_shortCuts.updateShortCuts(skillId, skillLevel);
|
_shortCuts.updateShortCuts(skillId, skillLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replace the shortcut icon with the new skill.
|
||||||
|
* @param skillId the skill Id to search.
|
||||||
|
* @param newSkillId the skill Id to replace.
|
||||||
|
*/
|
||||||
|
public void replaceShortCuts(int skillId, int newSkillId)
|
||||||
|
{
|
||||||
|
_shortCuts.replaceShortCuts(skillId, newSkillId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete the L2ShortCut corresponding to the position (page-slot) from the L2PcInstance _shortCuts.
|
* Delete the L2ShortCut corresponding to the position (page-slot) from the L2PcInstance _shortCuts.
|
||||||
* @param slot
|
* @param slot
|
||||||
|
Reference in New Issue
Block a user