Pārlūkot izejas kodu

BETA: Core-Part for [DP10395].
* Also dropping NPC enemy clan support from core.
* This was commited accidentally so DP AI part will be done soon.

Nos 10 gadi atpakaļ
vecāks
revīzija
28846700d2

+ 1 - 24
L2J_Server_BETA/build.xml

@@ -47,7 +47,7 @@
 		</mapper>
 	</pathconvert>
 
-	<target name="init" depends="checkRequirements,getChangelogDateVersion" description="Create the output directories.">
+	<target name="init" depends="checkRequirements" description="Create the output directories.">
 		<delete dir="${build.bin}" quiet="true" />
 		<mkdir dir="${build.bin}" />
 	</target>
@@ -56,8 +56,6 @@
 		<sync todir="${build.dist}" includeemptydirs="true">
 			<fileset dir="dist" />
 		</sync>
-		<concat destfile="${build.dist.doc}/L2J_Server_CHANGELOG.txt">${l2j.changelog}</concat>
-		<concat destfile="${build.dist.game}/config/l2j-version.properties">version=${l2j.version}${line.separator}builddate=${build.tstamp}</concat>
 	</target>
 
 	<target name="compile" depends="dist" description="Compile the source.">
@@ -209,25 +207,4 @@
 		<available classname="java.util.stream.Stream" property="JDK8.present" />
 		<fail unless="JDK8.present" message="Java 1.8 is required. But your version is Java ${ant.java.version} and probably JDK is not installed." />
 	</target>
-
-	<target name="getChangelogDateVersion" description="Get Changelog, Date, Version.">
-		<exec dir="${basedir}" executable="svn" outputproperty="l2j.changelog">
-			<arg value="log" />
-			<arg value="--stop-on-copy" />
-			<arg value="--limit=50" />
-		</exec>
-		<tstamp>
-			<format property="build.tstamp" pattern="dd/MM/yyyy HH:mm" />
-		</tstamp>
-		<exec dir="${basedir}" executable="svnversion" outputproperty="l2j.version">
-			<arg value="-c" />
-			<redirector>
-				<outputfilterchain>
-					<tokenfilter>
-						<replaceregex pattern="[0-9]+\:" replace="" />
-					</tokenfilter>
-				</outputfilterchain>
-			</redirector>
-		</exec>
-	</target>
 </project>

+ 2 - 55
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2AttackableAI.java

@@ -263,14 +263,6 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					return false;
 				}
 				
-				if (me.isInEnemyClan((L2Attackable) target))
-				{
-					if (me.isInsideRadius(target, me.getAggroRange(), false, false))
-					{
-						return GeoData.getInstance().canSeeTarget(me, target);
-					}
-					return false;
-				}
 				if (me.isChaos() && me.isInsideRadius(target, me.getAggroRange(), false, false))
 				{
 					if (((L2Attackable) target).isInMyClan(me))
@@ -2121,19 +2113,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					{
 						continue;
 					}
-					if (obj instanceof L2Attackable)
-					{
-						if (actor.isInEnemyClan((L2Attackable) obj))
-						{
-							if (dist2 <= range)
-							{
-								if (!getAttackTarget().isAffectedBySkill(sk.getId()))
-								{
-									return obj;
-								}
-							}
-						}
-					}
+					
 					if ((obj instanceof L2PcInstance) || (obj instanceof L2Summon))
 					{
 						if (dist2 <= range)
@@ -2216,19 +2196,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				{
 					continue;
 				}
-				if (obj instanceof L2Attackable)
-				{
-					if (actor.isInEnemyClan((L2Attackable) obj))
-					{
-						if (dist2 <= range)
-						{
-							if (getAttackTarget().getEffectList().getFirstEffect(L2EffectType.BUFF) != null)
-							{
-								return obj;
-							}
-						}
-					}
-				}
+				
 				if ((obj instanceof L2PcInstance) || (obj instanceof L2Summon))
 				{
 					
@@ -2313,10 +2281,6 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				}
 				if (obj instanceof L2Attackable)
 				{
-					if (actor.isInEnemyClan((L2Attackable) obj))
-					{
-						return obj;
-					}
 					if (actor.isChaos())
 					{
 						if (((L2Attackable) obj).isInMyClan(actor))
@@ -2413,11 +2377,6 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				}
 				else if (obj instanceof L2Attackable)
 				{
-					if (actor.isInEnemyClan((L2Attackable) obj))
-					{
-						actor.addDamageHate(obj, 0, actor.getHating(MostHate));
-						actor.setTarget(obj);
-					}
 					if (actor.isChaos())
 					{
 						if (((L2Attackable) obj).isInMyClan(actor))
@@ -2532,18 +2491,6 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				}
 				else if (obj instanceof L2Attackable)
 				{
-					if (actor.isInEnemyClan((L2Attackable) obj))
-					{
-						if (MostHate != null)
-						{
-							actor.addDamageHate(obj, 0, actor.getHating(MostHate));
-						}
-						else
-						{
-							actor.addDamageHate(obj, 0, 2000);
-						}
-						actor.setTarget(obj);
-					}
 					if (actor.isChaos())
 					{
 						if (((L2Attackable) obj).isInMyClan(actor))

+ 4 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2CharacterAI.java

@@ -1485,10 +1485,9 @@ public class L2CharacterAI extends AbstractAI
 					}
 					if (target instanceof L2Attackable)
 					{
-						L2Npc targets = ((L2Npc) target);
 						L2Npc actors = ((L2Npc) _actor);
 						
-						if (!targets.isInEnemyClan(actors) && !actors.isChaos())
+						if (!actors.isChaos())
 						{
 							continue;
 						}
@@ -1515,10 +1514,9 @@ public class L2CharacterAI extends AbstractAI
 					}
 					if (target instanceof L2Attackable)
 					{
-						L2Npc targets = ((L2Npc) target);
 						L2Npc actors = ((L2Npc) _actor);
 						
-						if (!targets.isInEnemyClan(actors) && !actors.isChaos())
+						if (!actors.isChaos())
 						{
 							continue;
 						}
@@ -1548,10 +1546,9 @@ public class L2CharacterAI extends AbstractAI
 					}
 					if (target instanceof L2Attackable)
 					{
-						L2Npc targets = ((L2Npc) target);
 						L2Npc actors = ((L2Npc) _actor);
 						
-						if (!targets.isInEnemyClan(actors) && !actors.isChaos())
+						if (!actors.isChaos())
 						{
 							continue;
 						}
@@ -1579,9 +1576,8 @@ public class L2CharacterAI extends AbstractAI
 					
 					if (target instanceof L2Attackable)
 					{
-						L2Npc targets = ((L2Npc) target);
 						L2Npc actors = ((L2Npc) _actor);
-						if (!targets.isInEnemyClan(actors) && !actors.isChaos())
+						if (!actors.isChaos())
 						{
 							continue;
 						}

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcData.java

@@ -104,7 +104,7 @@ public class NpcData extends DocumentParser
 						Map<String, Object> parameters = null;
 						Map<Integer, Skill> skills = null;
 						Set<Integer> clans = null;
-						Set<Integer> enemyClans = null;
+						Set<Integer> ignoreClanNpcIds = null;
 						Map<DropListScope, List<IDropItem>> dropLists = null;
 						set.set("id", npcId);
 						set.set("displayId", parseInteger(attrs, "displayId"));
@@ -389,13 +389,13 @@ public class NpcData extends DocumentParser
 															clans.add(getOrCreateClanId(clan_list_node.getTextContent()));
 															break;
 														}
-														case "enemy_clan":
+														case "ignore_npc_id":
 														{
-															if (enemyClans == null)
+															if (ignoreClanNpcIds == null)
 															{
-																enemyClans = new HashSet<>(1);
+																ignoreClanNpcIds = new HashSet<>(1);
 															}
-															enemyClans.add(getOrCreateClanId(clan_list_node.getTextContent()));
+															ignoreClanNpcIds.add(Integer.parseInt(clan_list_node.getTextContent()));
 															break;
 														}
 													}
@@ -591,7 +591,7 @@ public class NpcData extends DocumentParser
 						}
 						
 						template.setClans(clans);
-						template.setEnemyClans(enemyClans);
+						template.setIgnoreClanNpcIds(ignoreClanNpcIds);
 						
 						template.setDropLists(dropLists);
 					}

+ 5 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/handler/ActionShiftHandler.java

@@ -26,7 +26,7 @@ import com.l2jserver.gameserver.enums.InstanceType;
 /**
  * @author UnAfraid
  */
-public class ActionShiftHandler
+public class ActionShiftHandler implements IHandler<IActionHandler, InstanceType>
 {
 	private final Map<InstanceType, IActionHandler> _actionsShift;
 	
@@ -35,16 +35,19 @@ public class ActionShiftHandler
 		_actionsShift = new HashMap<>();
 	}
 	
+	@Override
 	public void registerHandler(IActionHandler handler)
 	{
 		_actionsShift.put(handler.getInstanceType(), handler);
 	}
 	
+	@Override
 	public synchronized void removeHandler(IActionHandler handler)
 	{
 		_actionsShift.remove(handler.getInstanceType());
 	}
 	
+	@Override
 	public IActionHandler getHandler(InstanceType iType)
 	{
 		IActionHandler result = null;
@@ -59,6 +62,7 @@ public class ActionShiftHandler
 		return result;
 	}
 	
+	@Override
 	public int size()
 	{
 		return _actionsShift.size();

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -1521,7 +1521,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 					continue;
 				}
 				
-				if (isAttackable() && obj.isAttackable() && !((L2Attackable) this).isInEnemyClan(((L2Attackable) obj)) && !((L2Attackable) this).isChaos())
+				if (isAttackable() && obj.isAttackable() && !((L2Attackable) this).isChaos())
 				{
 					continue;
 				}

+ 0 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java

@@ -534,11 +534,6 @@ public class L2Npc extends L2Character
 		return getTemplate().isClan(npc.getTemplate().getClans());
 	}
 	
-	public boolean isInEnemyClan(L2Npc npc)
-	{
-		return getTemplate().isEnemyClan(npc.getTemplate().getClans());
-	}
-	
 	/**
 	 * Return True if this L2NpcInstance is undead in function of the L2NpcTemplate.
 	 */

+ 6 - 74
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java

@@ -95,7 +95,7 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 	private Map<Integer, Skill> _skills;
 	private Map<AISkillScope, List<Skill>> _aiSkillLists;
 	private Set<Integer> _clans;
-	private Set<Integer> _enemyClans;
+	private Set<Integer> _ignoreClanNpcIds;
 	private Map<DropListScope, List<IDropItem>> _dropLists;
 	private double _collisionRadiusGrown;
 	private double _collisionHeightGrown;
@@ -523,85 +523,17 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 		return false;
 	}
 	
-	public Set<Integer> getEnemyClans()
+	public Set<Integer> getIgnoreClanNpcIds()
 	{
-		return _enemyClans;
+		return _ignoreClanNpcIds;
 	}
 	
 	/**
-	 * @param enemyClans A sorted array of enemy clan ids
+	 * @param ignoreClanNpcIds the ignore clan npc ids
 	 */
-	public void setEnemyClans(Set<Integer> enemyClans)
+	public void setIgnoreClanNpcIds(Set<Integer> ignoreClanNpcIds)
 	{
-		_enemyClans = enemyClans != null ? Collections.unmodifiableSet(enemyClans) : null;
-	}
-	
-	/**
-	 * @param clanName clan name to check if it belongs to this NPC template enemy clans.
-	 * @param clanNames clan names to check if they belong to this NPC template enemy clans.
-	 * @return {@code true} if at least one of the clan names belong to this NPC template enemy clans, {@code false} otherwise.
-	 */
-	public boolean isEnemyClan(String clanName, String... clanNames)
-	{
-		// Using local variable for the sake of reloading since it can be turned to null.
-		final Set<Integer> enemyClans = _enemyClans;
-		
-		if (enemyClans == null)
-		{
-			return false;
-		}
-		
-		int clanId = NpcData.getInstance().getClanId("ALL");
-		if (enemyClans.contains(clanId))
-		{
-			return true;
-		}
-		
-		clanId = NpcData.getInstance().getClanId(clanName);
-		if (enemyClans.contains(clanId))
-		{
-			return true;
-		}
-		
-		for (String name : clanNames)
-		{
-			clanId = NpcData.getInstance().getClanId(name);
-			if (enemyClans.contains(clanId))
-			{
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * @param clans A set of clan names to check if they belong to this NPC template enemy clans.
-	 * @return {@code true} if at least one of the clan names belong to this NPC template enemy clans, {@code false} otherwise.
-	 */
-	public boolean isEnemyClan(Set<Integer> clans)
-	{
-		// Using local variable for the sake of reloading since it can be turned to null.
-		final Set<Integer> enemyClans = _enemyClans;
-		
-		if ((enemyClans == null) || (clans == null))
-		{
-			return false;
-		}
-		
-		int clanId = NpcData.getInstance().getClanId("ALL");
-		if (enemyClans.contains(clanId))
-		{
-			return true;
-		}
-		
-		for (Integer id : clans)
-		{
-			if (enemyClans.contains(id))
-			{
-				return true;
-			}
-		}
-		return false;
+		_ignoreClanNpcIds = ignoreClanNpcIds != null ? Collections.unmodifiableSet(ignoreClanNpcIds) : null;
 	}
 	
 	public Map<DropListScope, List<IDropItem>> getDropLists()

+ 1 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/Skill.java

@@ -1201,10 +1201,7 @@ public final class Skill implements IChanceSkillTrigger, IIdentifiable
 			// target is mob
 			if ((targetPlayer == null) && (target instanceof L2Attackable) && (caster instanceof L2Attackable))
 			{
-				if (!((L2Attackable) caster).isInEnemyClan((L2Attackable) target))
-				{
-					return false;
-				}
+				return false;
 			}
 		}
 		

+ 1 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/KnownListUpdateTaskManager.java

@@ -29,7 +29,6 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.L2WorldRegion;
-import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.instance.L2GuardInstance;
@@ -116,7 +115,7 @@ public class KnownListUpdateTaskManager
 			}
 			
 			// Some mobs need faster knownlist update
-			final boolean aggro = (Config.GUARD_ATTACK_AGGRO_MOB && (object instanceof L2GuardInstance)) || ((object instanceof L2Attackable) && (((L2Attackable) object).getTemplate().getEnemyClans() != null));
+			final boolean aggro = (Config.GUARD_ATTACK_AGGRO_MOB && (object instanceof L2GuardInstance));
 			
 			if (forgetObjects)
 			{