Browse Source

Cleanup and little fixes by brutus198:
- when trying to destroy a hero weapon, get a different system message
- config max run speed only for players

Sami 16 years ago
parent
commit
b055985010

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/stat/CharStat.java

@@ -662,7 +662,7 @@ public class CharStat
 		val /= _activeChar.getArmourExpertisePenalty();
 		
 		// Apply max run speed cap.
-		if (val > Config.MAX_RUN_SPEED && !_activeChar.isGM())
+		if (val > Config.MAX_RUN_SPEED && _activeChar instanceof L2PcInstance && !_activeChar.isGM())
 			val = Config.MAX_RUN_SPEED;
 		
 		return val;

+ 2 - 7
L2_GameServer/java/net/sf/l2j/gameserver/model/itemcontainer/Inventory.java

@@ -1117,19 +1117,14 @@ public abstract class Inventory extends ItemContainer
         {
             L2PcInstance player = (L2PcInstance)getOwner();
 
-
             if(player.getPkKills() > 0 && item.getItemId() >= 7816 && item.getItemId() <= 7831)
             {
                 player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_EQUIP_THIS_ITEM_WHEN_YOUR_PK_COUNT_IS_GREATER_THAN_OR_EQUAL_TO_ONE));
                 return;
             }
 
-            if(!player.isGM())
-                if (!player.isHero())
-                {
-                    if (item.isHeroItem())
-                        return;
-                }
+            if (!player.isGM() && !player.isHero() && item.isHeroItem())
+            	return;
         }
 
 		int targetSlot = item.getItem().getBodyPart();

+ 13 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestDestroyItem.java

@@ -74,8 +74,12 @@ public final class RequestDestroyItem extends L2GameClientPacket
         }
 
 		L2ItemInstance itemToRemove = activeChar.getInventory().getItemByObjectId(_objectId);
-		// if we can't find requested item, its actually a cheat!
-		if (itemToRemove == null) return;
+		// if we can't find the requested item, its actually a cheat
+		if (itemToRemove == null)
+		{
+			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
+			return;
+		}
 
 		// Cannot discard item that the skill is consuming
 		if (activeChar.isCastingNow())
@@ -86,7 +90,6 @@ public final class RequestDestroyItem extends L2GameClientPacket
 	            return;
 			}
 		}
-		
 		// Cannot discard item that the skill is consuming
 		if (activeChar.isCastingSimultaneouslyNow())
 		{
@@ -98,9 +101,14 @@ public final class RequestDestroyItem extends L2GameClientPacket
 		}
 
 		int itemId = itemToRemove.getItemId();
-		if (itemToRemove == null || itemToRemove.isWear() || (!activeChar.isGM() && !itemToRemove.isDestroyable()) || CursedWeaponsManager.getInstance().isCursed(itemId))
+		
+		if (itemToRemove.isWear() || (!activeChar.isGM() && !itemToRemove.isDestroyable()) 
+				|| CursedWeaponsManager.getInstance().isCursed(itemId))
 		{
-			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
+			if (itemToRemove.isHeroItem())
+				activeChar.sendPacket(new SystemMessage(SystemMessageId.HERO_WEAPONS_CANT_DESTROYED));
+			else
+				activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
 			return;
 		}