Changeset 5082


Ignore:
Timestamp:
Nov 15, 2011 5:30:52 AM (6 months ago)
Author:
Zoey76
Message:

LEGACY: Version of [5014] for CT2.5.
Note: Please do not use trac to report missing features for legacy chronicles (preferably for none of the chronicles, instead use forums).

Location:
branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/model/L2SkillLearn.java

    r5046 r5082  
    1717import java.util.logging.Logger; 
    1818 
     19import com.l2jserver.Config; 
    1920import com.l2jserver.gameserver.templates.StatsSet; 
     21import com.l2jserver.gameserver.model.base.ClassId; 
    2022import com.l2jserver.gameserver.model.base.Race; 
    2123 
     
    265267                return _learnedByFS; 
    266268        } 
     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        } 
    267301} 
  • branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/model/actor/instance/L2NpcInstance.java

    r4947 r5082  
    3939public class L2NpcInstance extends L2Npc 
    4040{ 
    41         private final ClassId[] _classesToTeach; 
    42          
    4341        public L2NpcInstance(int objectId, L2NpcTemplate template) 
    4442        { 
     
    4644                setInstanceType(InstanceType.L2NpcInstance); 
    4745                setIsInvul(false); 
    48                 _classesToTeach = template.getTeachInfo(); 
    4946        } 
    5047         
     
    7269        public ClassId[] getClassesToTeach() 
    7370        { 
    74                 return _classesToTeach; 
     71                return getTemplate().getTeachInfo(); 
    7572        } 
    7673         
     
    135132                } 
    136133                 
    137                 if (((L2NpcInstance)npc).getClassesToTeach() == null) 
     134                if (((L2NpcInstance) npc).getClassesToTeach() == null) 
    138135                { 
    139136                        NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId()); 
     
    152149                } 
    153150                 
    154                 //Normal skills, No LearnedByFS, no AutoGet skills. 
     151                // Normal skills, No LearnedByFS, no AutoGet skills. 
    155152                final FastList<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableSkills(player, classId, false, false); 
    156153                final AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.ClassTransform); 
    157154                int count = 0; 
    158155                 
    159                 for (L2SkillLearn s: skills) 
     156                player.setLearningClass(classId); 
     157                for (L2SkillLearn s : skills) 
    160158                { 
    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) 
    163160                        { 
    164                                 asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.getLevelUpSp(), 0); 
     161                                asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.getCalculatedLevelUpSp(player.getClassId(), classId), 0); 
    165162                                count++; 
    166163                        } 
     
    180177                        else 
    181178                        { 
    182                                 //TODO: Is this SysMsg really used here? 
    183179                                if (player.getClassId().level() == 1) 
    184180                                { 
  • branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

    r4947 r5082  
    26092609        } 
    26102610         
    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        } 
    26132639         
    26142640        public void setActiveEnchantAttrItem(L2ItemInstance stone) 
  • branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/network/clientpackets/RequestAcquireSkill.java

    r4947 r5082  
    153153                                else 
    154154                                { 
    155                                         final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.getClassId()); 
     155                                        final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.getLearningClass()); 
    156156                                        if (checkPlayerSkill(activeChar, trainer, s)) 
    157157                                        { 
     
    412412         * @param trainer the skills teaching Npc. 
    413413         * @param s the skill to be learn. 
     414         * @return {@code true} if all requirements are meet, {@code false} otherwise. 
    414415         */ 
    415416        private boolean checkPlayerSkill(L2PcInstance player, L2Npc trainer, L2SkillLearn s) 
     
    422423                                if (s.getGetLevel() > player.getLevel()) 
    423424                                { 
    424                                         player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_DONT_MEET_SKILL_LEVEL_REQUIREMENTS)); 
     425                                        player.sendPacket(SystemMessageId.YOU_DONT_MEET_SKILL_LEVEL_REQUIREMENTS); 
    425426                                        Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", 0); 
    426427                                        return false; 
    427428                                } 
    428429                                 
    429                                 //First it checks that the skill require SP and the player has enough SP to learn it. 
    430                                 final int levelUpSp = s.getLevelUpSp(); 
     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()); 
    431432                                if ((levelUpSp > 0) && (levelUpSp > player.getSp())) 
    432433                                { 
    433                                         player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL)); 
     434                                        player.sendPacket(SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL); 
    434435                                        showSkillList(trainer, player); 
    435436                                        return false; 
     
    452453                                                { 
    453454                                                        //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); 
    455456                                                        showSkillList(trainer, player); 
    456457                                                        return false; 
     
    556557                else 
    557558                { 
    558                         L2NpcInstance.showSkillList(player, trainer, player.getClassId()); 
     559                        L2NpcInstance.showSkillList(player, trainer, player.getLearningClass()); 
    559560                } 
    560561        } 
  • branches/L2J_Server_CT2.5/java/com/l2jserver/gameserver/network/clientpackets/RequestAcquireSkillInfo.java

    r4947 r5082  
    100100                                { 
    101101                                        final L2SkillLearn s = SkillTreesData.getInstance().getTransformSkill(_id, _level); 
    102                                          
    103102                                        if (s != null) 
    104103                                        { 
     
    125124                                        return; 
    126125                                } 
    127                                 else if (trainer.getTemplate().canTeach(activeChar.getClassId())) 
    128                                 { 
    129                                         final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.getClassId()); 
     126                                else if (trainer.getTemplate().canTeach(activeChar.getLearningClass())) 
     127                                { 
     128                                        final L2SkillLearn s = SkillTreesData.getInstance().getClassSkill(_id, _level, activeChar.getLearningClass()); 
    130129                                        if (s != null) 
    131130                                        { 
    132131                                                int itemId = -1; 
    133132                                                int itemCount = -1; 
    134                                                 final int levelUpSp = s.getLevelUpSp(); 
    135                                                  
     133                                                final int levelUpSp = s.getCalculatedLevelUpSp(activeChar.getClassId(), activeChar.getLearningClass()); 
    136134                                                final AcquireSkillInfo asi = new AcquireSkillInfo(_id, _level, levelUpSp, SkillType.ClassTransform); 
    137135                                                 
Note: See TracChangeset for help on using the changeset viewer.