Changeset 5082
- Timestamp:
- Nov 15, 2011 5:30:52 AM (6 months ago)
- Location:
- branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver
- Files:
-
- 5 edited
-
model/L2SkillLearn.java (modified) (2 diffs)
-
model/actor/instance/L2NpcInstance.java (modified) (6 diffs)
-
model/actor/instance/L2PcInstance.java (modified) (1 diff)
-
network/clientpackets/RequestAcquireSkill.java (modified) (5 diffs)
-
network/clientpackets/RequestAcquireSkillInfo.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/model/L2SkillLearn.java
r5046 r5082 17 17 import java.util.logging.Logger; 18 18 19 import com.l2jserver.Config; 19 20 import com.l2jserver.gameserver.templates.StatsSet; 21 import com.l2jserver.gameserver.model.base.ClassId; 20 22 import com.l2jserver.gameserver.model.base.Race; 21 23 … … 265 267 return _learnedByFS; 266 268 } 269 270 /** 271 * Used for AltGameSkillLearn mod.<br> 272 * If the alternative skill learn system is enabled and the player is learning a skill from a different class apply a fee.<br> 273 * If the player is learning a skill from other class type (mage learning warrior skills or vice versa) the fee is higher. 274 * @param playerClass the player class Id. 275 * @param learningClass the skill learning player class Id. 276 * @return the amount of SP required to acquire this skill, by calculating the cost for the alternative skill learn system. 277 */ 278 public int getCalculatedLevelUpSp(ClassId playerClass, ClassId learningClass) 279 { 280 if ((playerClass == null) || (learningClass == null)) 281 { 282 return _levelUpSp; 283 } 284 285 int levelUpSp = _levelUpSp; 286 // If the alternative skill learn system is enabled and the player is learning a skill from a different class apply a fee. 287 if (Config.ALT_GAME_SKILL_LEARN && (playerClass != learningClass)) 288 { 289 // If the player is learning a skill from other class type (mage learning warrior skills or vice versa) the fee is higher. 290 if (playerClass.isMage() != learningClass.isMage()) 291 { 292 levelUpSp *= 3; 293 } 294 else 295 { 296 levelUpSp *= 2; 297 } 298 } 299 return levelUpSp; 300 } 267 301 } -
branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/model/actor/instance/L2NpcInstance.java
r4947 r5082 39 39 public class L2NpcInstance extends L2Npc 40 40 { 41 private final ClassId[] _classesToTeach;42 43 41 public L2NpcInstance(int objectId, L2NpcTemplate template) 44 42 { … … 46 44 setInstanceType(InstanceType.L2NpcInstance); 47 45 setIsInvul(false); 48 _classesToTeach = template.getTeachInfo();49 46 } 50 47 … … 72 69 public ClassId[] getClassesToTeach() 73 70 { 74 return _classesToTeach;71 return getTemplate().getTeachInfo(); 75 72 } 76 73 … … 135 132 } 136 133 137 if (((L2NpcInstance) npc).getClassesToTeach() == null)134 if (((L2NpcInstance) npc).getClassesToTeach() == null) 138 135 { 139 136 NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId()); … … 152 149 } 153 150 154 // Normal skills, No LearnedByFS, no AutoGet skills.151 // Normal skills, No LearnedByFS, no AutoGet skills. 155 152 final FastList<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableSkills(player, classId, false, false); 156 153 final AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.ClassTransform); 157 154 int count = 0; 158 155 159 for (L2SkillLearn s: skills) 156 player.setLearningClass(classId); 157 for (L2SkillLearn s : skills) 160 158 { 161 final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel()); 162 if (sk != null) 159 if (SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel()) != null) 163 160 { 164 asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.get LevelUpSp(), 0);161 asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.getCalculatedLevelUpSp(player.getClassId(), classId), 0); 165 162 count++; 166 163 } … … 180 177 else 181 178 { 182 //TODO: Is this SysMsg really used here?183 179 if (player.getClassId().level() == 1) 184 180 { -
branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
r4947 r5082 2609 2609 } 2610 2610 2611 /** Return the Experience of the L2PcInstance. */ 2612 public long getExp() { return getStat().getExp(); } 2611 /** 2612 * Used for AltGameSkillLearn to set a custom skill learning class Id. 2613 */ 2614 private ClassId _learningClass = getClassId(); 2615 2616 /** 2617 * @return the custom skill learning class Id. 2618 */ 2619 public ClassId getLearningClass() 2620 { 2621 return _learningClass; 2622 } 2623 2624 /** 2625 * @param learningClass the custom skill learning class Id to set. 2626 */ 2627 public void setLearningClass(ClassId learningClass) 2628 { 2629 _learningClass = learningClass; 2630 } 2631 2632 /** 2633 * @return the Experience of the L2PcInstance. 2634 */ 2635 public long getExp() 2636 { 2637 return getStat().getExp(); 2638 } 2613 2639 2614 2640 public void setActiveEnchantAttrItem(L2ItemInstance stone) -
branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/network/clientpackets/RequestAcquireSkill.java
r4947 r5082 153 153 else 154 154 { 155 final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.get ClassId());155 final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.getLearningClass()); 156 156 if (checkPlayerSkill(activeChar, trainer, s)) 157 157 { … … 412 412 * @param trainer the skills teaching Npc. 413 413 * @param s the skill to be learn. 414 * @return {@code true} if all requirements are meet, {@code false} otherwise. 414 415 */ 415 416 private boolean checkPlayerSkill(L2PcInstance player, L2Npc trainer, L2SkillLearn s) … … 422 423 if (s.getGetLevel() > player.getLevel()) 423 424 { 424 player.sendPacket(SystemMessage .getSystemMessage(SystemMessageId.YOU_DONT_MEET_SKILL_LEVEL_REQUIREMENTS));425 player.sendPacket(SystemMessageId.YOU_DONT_MEET_SKILL_LEVEL_REQUIREMENTS); 425 426 Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", 0); 426 427 return false; 427 428 } 428 429 429 // First it checks that the skill require SP and the player has enough SP to learn it.430 final int levelUpSp = s.get LevelUpSp();430 // First it checks that the skill require SP and the player has enough SP to learn it. 431 final int levelUpSp = s.getCalculatedLevelUpSp(player.getClassId(), player.getLearningClass()); 431 432 if ((levelUpSp > 0) && (levelUpSp > player.getSp())) 432 433 { 433 player.sendPacket(SystemMessage .getSystemMessage(SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL));434 player.sendPacket(SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL); 434 435 showSkillList(trainer, player); 435 436 return false; … … 452 453 { 453 454 //Player doesn't have required item. 454 player.sendPacket(SystemMessage .getSystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL));455 player.sendPacket(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL); 455 456 showSkillList(trainer, player); 456 457 return false; … … 556 557 else 557 558 { 558 L2NpcInstance.showSkillList(player, trainer, player.get ClassId());559 L2NpcInstance.showSkillList(player, trainer, player.getLearningClass()); 559 560 } 560 561 } -
branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/network/clientpackets/RequestAcquireSkillInfo.java
r4947 r5082 100 100 { 101 101 final L2SkillLearn s = SkillTreesData.getInstance().getTransformSkill(_id, _level); 102 103 102 if (s != null) 104 103 { … … 125 124 return; 126 125 } 127 else if (trainer.getTemplate().canTeach(activeChar.get ClassId()))128 { 129 final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.get ClassId());126 else if (trainer.getTemplate().canTeach(activeChar.getLearningClass())) 127 { 128 final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.getLearningClass()); 130 129 if (s != null) 131 130 { 132 131 int itemId = -1; 133 132 int itemCount = -1; 134 final int levelUpSp = s.getLevelUpSp(); 135 133 final int levelUpSp = s.getCalculatedLevelUpSp(activeChar.getClassId(), activeChar.getLearningClass()); 136 134 final AcquireSkillInfo asi = new AcquireSkillInfo(_id, _level, levelUpSp, SkillType.ClassTransform); 137 135
Note: See TracChangeset
for help on using the changeset viewer.
