Changeset 5164


Ignore:
Timestamp:
Feb 1, 2012 2:40:13 AM (4 months ago)
Author:
UnAfraid
Message:

BETA: Half-Kill is now possible against monsters in h5.

Location:
branches/unstable/L2J_Server_BETA/java/com/l2jserver/gameserver
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/unstable/L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

    r5162 r5164  
    3737import com.l2jserver.gameserver.ai.L2AttackableAI; 
    3838import com.l2jserver.gameserver.ai.L2CharacterAI; 
     39import com.l2jserver.gameserver.datatables.AccessLevels; 
    3940import com.l2jserver.gameserver.datatables.DoorTable; 
    4041import com.l2jserver.gameserver.datatables.ItemTable; 
     
    5253import com.l2jserver.gameserver.model.FusionSkill; 
    5354import com.l2jserver.gameserver.model.IChanceSkillTrigger; 
     55import com.l2jserver.gameserver.model.L2AccessLevel; 
    5456import com.l2jserver.gameserver.model.L2CharPosition; 
    5557import com.l2jserver.gameserver.model.L2Object; 
     
    340342        { 
    341343                return false; 
     344        } 
     345         
     346        // Overrided in L2PcInstance 
     347        public L2AccessLevel getAccessLevel() 
     348        { 
     349                return null; 
    342350        } 
    343351         
  • branches/unstable/L2J_Server_BETA/java/com/l2jserver/gameserver/model/stats/Formulas.java

    r5150 r5164  
    22152215        public static final boolean calcLethalHit(L2Character activeChar, L2Character target, L2Skill skill) 
    22162216        { 
    2217                 if (!target.isRaid() && !(target instanceof L2DoorInstance) && !((target instanceof L2Npc) && (((L2Npc) target).getNpcId() == 35062))) 
    2218                 { 
    2219                         // activeChar.sendMessage(Double.toString(chance)); 
    2220                         // activeChar.sendMessage(Double.toString(calcLethal(activeChar, target, skill.getLethalChance2(),skill.getMagicLevel()))); 
    2221                         // activeChar.sendMessage(Double.toString(calcLethal(activeChar, target, skill.getLethalChance1(),skill.getMagicLevel()))); 
    2222                          
     2217                if (!target.isRaid() && !target.isInvul() && !(target.isDoor()) && !((target.isNpc()) && (((L2Npc) target).getNpcId() == 35062))) 
     2218                { 
    22232219                        // 2nd lethal effect activate (cp,hp to 1 or if target is npc then hp to 1) 
    22242220                        if ((skill.getLethalChance2() > 0) && (Rnd.get(1000) < calcLethal(activeChar, target, skill.getLethalChance2(), skill.getMagicLevel()))) 
    22252221                        { 
    2226                                 if (target instanceof L2Npc) 
     2222                                if (target.isNpc()) 
    22272223                                { 
    22282224                                        target.reduceCurrentHp(target.getCurrentHp() - 1, activeChar, skill); 
    22292225                                } 
    2230                                 else if (target instanceof L2PcInstance) // If is a active player set his HP and CP to 1 
     2226                                else if (target.isPlayer()) // If is a active player set his HP and CP to 1 
    22312227                                { 
    22322228                                        L2PcInstance player = (L2PcInstance) target; 
    22332229                                        if (!player.isInvul()) 
    22342230                                        { 
    2235                                                 if (!((activeChar instanceof L2PcInstance) && (((L2PcInstance) activeChar).isGM() && !((L2PcInstance) activeChar).getAccessLevel().canGiveDamage()))) 
     2231                                                if (!(activeChar.isPlayer() && (activeChar.isGM() && !activeChar.getAccessLevel().canGiveDamage()))) 
    22362232                                                { 
    22372233                                                        player.setCurrentHp(1); 
     
    22452241                        else if ((skill.getLethalChance1() > 0) && (Rnd.get(1000) < calcLethal(activeChar, target, skill.getLethalChance1(), skill.getMagicLevel()))) 
    22462242                        { 
    2247                                 if (target instanceof L2PcInstance) 
    2248                                 { 
    2249                                         L2PcInstance player = (L2PcInstance) target; 
    2250                                         if (!player.isInvul()) 
     2243                                if (target.isMonster()) 
     2244                                { 
     2245                                        target.reduceCurrentHp(target.getCurrentHp() / 2, activeChar, skill); 
     2246                                        activeChar.sendPacket(SystemMessageId.HALF_KILL); 
     2247                                } 
     2248                                else if (target.isPlayer()) 
     2249                                { 
     2250                                        L2PcInstance player = target.getActingPlayer(); 
     2251                                        if (!((activeChar.isPlayer()) && (activeChar.isGM() && !activeChar.getAccessLevel().canGiveDamage()))) 
    22512252                                        { 
    2252                                                 if (!((activeChar instanceof L2PcInstance) && (((L2PcInstance) activeChar).isGM() && !((L2PcInstance) activeChar).getAccessLevel().canGiveDamage()))) 
    2253                                                 { 
    2254                                                         player.setCurrentCp(1); // Set CP to 1 
    2255                                                         player.sendPacket(SystemMessageId.CP_DISAPPEARS_WHEN_HIT_WITH_A_HALF_KILL_SKILL); 
    2256                                                         activeChar.sendPacket(SystemMessageId.CP_SIPHON); 
    2257                                                 } 
     2253                                                player.setCurrentCp(1); // Set CP to 1 
     2254                                                player.sendPacket(SystemMessageId.CP_DISAPPEARS_WHEN_HIT_WITH_A_HALF_KILL_SKILL); 
     2255                                                activeChar.sendPacket(SystemMessageId.HALF_KILL); 
    22582256                                        } 
    22592257                                } 
    2260                                 // TODO: remove half kill since SYSMsg got changed. 
    2261                                 /* 
    2262                                  * else if (target instanceof L2Npc) // If is a monster remove first damage and after 50% of current hp target.reduceCurrentHp(target.getCurrentHp() / 2, activeChar, skill); 
    2263                                  */ 
    2264                                  
    22652258                        } 
    22662259                        else 
  • branches/unstable/L2J_Server_BETA/java/com/l2jserver/gameserver/network/SystemMessageId.java

    r5125 r5164  
    1354313543        /** 
    1354413544         * ID: 2336<br> 
    13545          * Message: CP Siphon! 
    13546          */ 
    13547         public static final SystemMessageId CP_SIPHON; 
     13545         * Message: Half-Kill! 
     13546         */ 
     13547        public static final SystemMessageId HALF_KILL; 
    1354813548         
    1354913549        /** 
     
    1714417144                YOU_CANNOT_RECEIVE_THE_VITAMIN_ITEM = new SystemMessageId(2333); 
    1714517145                THERE_ARE_NO_MORE_VITAMIN_ITEMS_TO_BE_FOUND = new SystemMessageId(2335); 
    17146                 CP_SIPHON = new SystemMessageId(2336); 
     17146                HALF_KILL = new SystemMessageId(2336); 
    1714717147                CP_DISAPPEARS_WHEN_HIT_WITH_A_HALF_KILL_SKILL = new SystemMessageId(2337); 
    1714817148                YOU_CANNOT_USE_MY_TELEPORTS_DURING_A_BATTLE = new SystemMessageId(2348); 
Note: See TracChangeset for help on using the changeset viewer.