Quellcode durchsuchen

BETA: Reworking mount type to enum.

Rumen Nikiforov vor 11 Jahren
Ursprung
Commit
ccee6ccba1

+ 49 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/MountType.java

@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J Server is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.model;
+
+import com.l2jserver.gameserver.datatables.CategoryData;
+
+/**
+ * @author UnAfraid
+ */
+public enum MountType
+{
+	NONE,
+	STRIDER,
+	WYVERN,
+	WOLF;
+	
+	public static MountType findByNpcId(int npcId)
+	{
+		if (CategoryData.getInstance().isInCategory(CategoryType.STRIDER, npcId))
+		{
+			return STRIDER;
+		}
+		else if (CategoryData.getInstance().isInCategory(CategoryType.WYVERN_GROUP, npcId))
+		{
+			return WYVERN;
+		}
+		else if (CategoryData.getInstance().isInCategory(CategoryType.WOLF_GROUP, npcId))
+		{
+			return WOLF;
+		}
+		return NONE;
+	}
+}

+ 0 - 19
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Summon.java

@@ -23,13 +23,11 @@ import com.l2jserver.gameserver.GameTimeController;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.ai.L2SummonAI;
-import com.l2jserver.gameserver.datatables.CategoryData;
 import com.l2jserver.gameserver.datatables.ExperienceTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.handler.ItemHandler;
 import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
-import com.l2jserver.gameserver.model.CategoryType;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Party;
 import com.l2jserver.gameserver.model.L2WorldRegion;
@@ -1223,21 +1221,4 @@ public abstract class L2Summon extends L2Playable
 	{
 		return (getOwner() != null) ? getOwner().getAllyId() : 0;
 	}
-	
-	public final int getMountType()
-	{
-		if (CategoryData.getInstance().isInCategory(CategoryType.STRIDER, getNpcId()))
-		{
-			return 1;
-		}
-		else if (CategoryData.getInstance().isInCategory(CategoryType.WYVERN_GROUP, getNpcId()))
-		{
-			return 2;
-		}
-		else if (CategoryData.getInstance().isInCategory(CategoryType.WOLF_GROUP, getNpcId()))
-		{
-			return 3;
-		}
-		return 0;
-	}
 }

+ 17 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -129,6 +129,7 @@ import com.l2jserver.gameserver.model.L2WorldRegion;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.Macro;
 import com.l2jserver.gameserver.model.MacroList;
+import com.l2jserver.gameserver.model.MountType;
 import com.l2jserver.gameserver.model.PartyMatchRoom;
 import com.l2jserver.gameserver.model.PartyMatchRoomList;
 import com.l2jserver.gameserver.model.PartyMatchWaitingList;
@@ -545,7 +546,7 @@ public final class L2PcInstance extends L2Playable
 	private Point3D _inVehiclePosition;
 	
 	public ScheduledFuture<?> _taskforfish;
-	private int _mountType;
+	private MountType _mountType = MountType.NONE;
 	private int _mountNpcId;
 	private int _mountLevel;
 	/** Store object used to summon the strider you are mounting **/
@@ -6744,7 +6745,7 @@ public final class L2PcInstance extends L2Playable
 		}
 		
 		stopAllToggles();
-		setMount(pet.getNpcId(), pet.getLevel(), pet.getMountType());
+		setMount(pet.getNpcId(), pet.getLevel());
 		setMountObjectID(pet.getControlObjectId());
 		clearPetData();
 		startFeed(pet.getNpcId());
@@ -6758,7 +6759,7 @@ public final class L2PcInstance extends L2Playable
 		return true;
 	}
 	
-	public boolean mount(int npcId, int type, int controlItemObjId, boolean useFood)
+	public boolean mount(int npcId, int controlItemObjId, boolean useFood)
 	{
 		if (!disarmWeapons())
 		{
@@ -6774,7 +6775,7 @@ public final class L2PcInstance extends L2Playable
 		}
 		
 		stopAllToggles();
-		setMount(npcId, getLevel(), type);
+		setMount(npcId, getLevel());
 		clearPetData();
 		setMountObjectID(controlItemObjId);
 		broadcastPacket(new Ride(this));
@@ -6871,7 +6872,7 @@ public final class L2PcInstance extends L2Playable
 		}
 		else if (isMounted())
 		{
-			if ((getMountType() == 2) && isInsideZone(ZoneId.NO_LANDING))
+			if ((getMountType() == MountType.WYVERN) && isInsideZone(ZoneId.NO_LANDING))
 			{
 				sendPacket(ActionFailed.STATIC_PACKET);
 				sendPacket(SystemMessageId.NO_DISMOUNT_HERE);
@@ -6897,7 +6898,7 @@ public final class L2PcInstance extends L2Playable
 		
 		sendPacket(new SetupGauge(3, 0, 0));
 		int petId = _mountNpcId;
-		setMount(0, 0, 0);
+		setMount(0, 0);
 		stopFeed();
 		clearPetData();
 		if (wasFlying)
@@ -9441,7 +9442,7 @@ public final class L2PcInstance extends L2Playable
 	
 	public boolean isMounted()
 	{
-		return _mountType > 0;
+		return _mountType != MountType.NONE;
 	}
 	
 	public boolean checkLandingState()
@@ -9464,16 +9465,17 @@ public final class L2PcInstance extends L2Playable
 	}
 	
 	// returns false if the change of mount type fails.
-	public void setMount(int npcId, int npcLevel, int mountType)
+	public void setMount(int npcId, int npcLevel)
 	{
-		switch (mountType)
+		final MountType type = MountType.findByNpcId(npcId);
+		switch (type)
 		{
-			case 0: // None
+			case NONE: // None
 			{
 				setIsFlying(false);
 				break;
 			}
-			case 1: // Strider
+			case STRIDER: // Strider
 			{
 				if (isNoble())
 				{
@@ -9481,14 +9483,14 @@ public final class L2PcInstance extends L2Playable
 				}
 				break;
 			}
-			case 2: // Wyvern
+			case WYVERN: // Wyvern
 			{
 				setIsFlying(true);
 				break;
 			}
 		}
 		
-		_mountType = mountType;
+		_mountType = type;
 		_mountNpcId = npcId;
 		_mountLevel = npcLevel;
 	}
@@ -9496,7 +9498,7 @@ public final class L2PcInstance extends L2Playable
 	/**
 	 * @return the type of Pet mounted (0 : none, 1 : Strider, 2 : Wyvern, 3: Wolf).
 	 */
-	public int getMountType()
+	public MountType getMountType()
 	{
 		return _mountType;
 	}
@@ -10790,7 +10792,7 @@ public final class L2PcInstance extends L2Playable
 		if (_taskRentPet != null)
 		{
 			// if the rent of a wyvern expires while over a flying zone, tp to down before unmounting
-			if (checkLandingState() && (getMountType() == 2))
+			if (checkLandingState() && (getMountType() == MountType.WYVERN))
 			{
 				teleToLocation(TeleportWhereType.TOWN);
 			}

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Castle.java

@@ -50,6 +50,7 @@ import com.l2jserver.gameserver.model.CropProcure;
 import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2SkillLearn;
+import com.l2jserver.gameserver.model.MountType;
 import com.l2jserver.gameserver.model.SeedProduction;
 import com.l2jserver.gameserver.model.TowerSpawn;
 import com.l2jserver.gameserver.model.actor.instance.L2ArtefactInstance;
@@ -556,7 +557,7 @@ public class Castle
 					L2PcInstance oldleader = oldOwner.getLeader().getPlayerInstance();
 					if (oldleader != null)
 					{
-						if (oldleader.getMountType() == 2)
+						if (oldleader.getMountType() == MountType.WYVERN)
 						{
 							oldleader.dismount();
 						}

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Fort.java

@@ -54,6 +54,7 @@ import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2SkillLearn;
 import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.MountType;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance;
@@ -461,7 +462,7 @@ public class Fort
 				L2PcInstance oldleader = oldowner.getLeader().getPlayerInstance();
 				if (oldleader != null)
 				{
-					if (oldleader.getMountType() == 2)
+					if (oldleader.getMountType() == MountType.WYVERN)
 					{
 						oldleader.dismount();
 					}

+ 3 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoLandingZone.java

@@ -18,6 +18,7 @@
  */
 package com.l2jserver.gameserver.model.zone.type;
 
+import com.l2jserver.gameserver.model.MountType;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.model.zone.ZoneId;
@@ -55,7 +56,7 @@ public class L2NoLandingZone extends L2ZoneType
 		if (character.isPlayer())
 		{
 			character.setInsideZone(ZoneId.NO_LANDING, true);
-			if (character.getActingPlayer().getMountType() == 2)
+			if (character.getActingPlayer().getMountType() == MountType.WYVERN)
 			{
 				character.sendPacket(SystemMessageId.AREA_CANNOT_BE_ENTERED_WHILE_MOUNTED_WYVERN);
 				character.getActingPlayer().enteredNoLanding(dismountDelay);
@@ -69,7 +70,7 @@ public class L2NoLandingZone extends L2ZoneType
 		if (character.isPlayer())
 		{
 			character.setInsideZone(ZoneId.NO_LANDING, false);
-			if (character.getActingPlayer().getMountType() == 2)
+			if (character.getActingPlayer().getMountType() == MountType.WYVERN)
 			{
 				character.getActingPlayer().exitedNoLanding();
 			}

+ 4 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2SiegeZone.java

@@ -24,6 +24,7 @@ import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
 import com.l2jserver.gameserver.instancemanager.FortManager;
 import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
+import com.l2jserver.gameserver.model.MountType;
 import com.l2jserver.gameserver.model.TeleportWhereType;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -177,7 +178,7 @@ public class L2SiegeZone extends L2ZoneType
 				}
 				
 				character.sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE);
-				if (!Config.ALLOW_WYVERN_DURING_SIEGE && (plyer.getMountType() == 2))
+				if (!Config.ALLOW_WYVERN_DURING_SIEGE && (plyer.getMountType() == MountType.WYVERN))
 				{
 					plyer.sendPacket(SystemMessageId.AREA_CANNOT_BE_ENTERED_WHILE_MOUNTED_WYVERN);
 					plyer.enteredNoLanding(DISMOUNT_DELAY);
@@ -198,7 +199,7 @@ public class L2SiegeZone extends L2ZoneType
 			{
 				L2PcInstance player = character.getActingPlayer();
 				character.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
-				if (player.getMountType() == 2)
+				if (player.getMountType() == MountType.WYVERN)
 				{
 					player.exitedNoLanding();
 				}
@@ -298,7 +299,7 @@ public class L2SiegeZone extends L2ZoneType
 					player = character.getActingPlayer();
 					character.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
 					player.stopFameTask();
-					if (player.getMountType() == 2)
+					if (player.getMountType() == MountType.WYVERN)
 					{
 						player.exitedNoLanding();
 					}

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestActionUse.java

@@ -31,6 +31,7 @@ import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SummonSkillsTable;
 import com.l2jserver.gameserver.instancemanager.AirShipManager;
 import com.l2jserver.gameserver.model.L2Object;
+import com.l2jserver.gameserver.model.MountType;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2BabyPetInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -763,7 +764,7 @@ public final class RequestActionUse extends L2GameClientPacket
 	 */
 	protected boolean useSit(L2PcInstance activeChar, L2Object target)
 	{
-		if (activeChar.getMountType() != 0)
+		if (activeChar.getMountType() != MountType.NONE)
 		{
 			return false;
 		}

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPrivateStoreManageSell.java

@@ -18,6 +18,7 @@
  */
 package com.l2jserver.gameserver.network.clientpackets;
 
+import com.l2jserver.gameserver.model.MountType;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 
@@ -58,7 +59,7 @@ public final class RequestPrivateStoreManageSell extends L2GameClientPacket
 			sendPacket(ActionFailed.STATIC_PACKET);
 			return;
 		}
-		if (player.getMountType() != 0)
+		if (player.getMountType() != MountType.NONE)
 		{
 			return;
 		}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java

@@ -313,7 +313,7 @@ public class CharInfo extends L2GameServerPacket
 			
 			writeC(!gmSeeInvis && _invisible ? 1 : 0); // invisible = 1 visible =0
 			
-			writeC(_activeChar.getMountType()); // 1-on Strider, 2-on Wyvern, 3-on Great Wolf, 0-no mount
+			writeC(_activeChar.getMountType().ordinal()); // 1-on Strider, 2-on Wyvern, 3-on Great Wolf, 0-no mount
 			writeC(_activeChar.getPrivateStoreType()); // 1 - sellshop
 			
 			writeH(_activeChar.getCubics().size());

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/GMViewCharacterInfo.java

@@ -225,7 +225,7 @@ public class GMViewCharacterInfo extends L2GameServerPacket
 		writeD(_activeChar.getClanId()); // pledge id
 		writeD(_activeChar.getClanCrestId()); // pledge crest id
 		writeD(_activeChar.getAllyId()); // ally id
-		writeC(_activeChar.getMountType()); // mount type
+		writeC(_activeChar.getMountType().ordinal()); // mount type
 		writeC(_activeChar.getPrivateStoreType());
 		writeC(_activeChar.hasDwarvenCraft() ? 1 : 0);
 		writeD(_activeChar.getPkKills());

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/Ride.java

@@ -33,7 +33,7 @@ public final class Ride extends L2GameServerPacket
 	{
 		_objectId = player.getObjectId();
 		_mounted = player.isMounted() ? 1 : 0;
-		_rideType = player.getMountType();
+		_rideType = player.getMountType().ordinal();
 		_rideNpcId = player.getMountNpcId() + 1000000;
 		_loc = player.getLocation();
 	}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/UserInfo.java

@@ -266,7 +266,7 @@ public final class UserInfo extends L2GameServerPacket
 		// 0x40 leader rights
 		// siege flags: attacker - 0x180 sword over name, defender - 0x80 shield, 0xC0 crown (|leader), 0x1C0 flag (|leader)
 		writeD(_relation);
-		writeC(_activeChar.getMountType()); // mount type
+		writeC(_activeChar.getMountType().ordinal()); // mount type
 		writeC(_activeChar.getPrivateStoreType());
 		writeC(_activeChar.hasDwarvenCraft() ? 1 : 0);
 		writeD(_activeChar.getPkKills());