Преглед изворни кода

Decrease KnowList time

-- Previous update note: movement now check geodata for movement with
offset distance, fix npc stuck in walls
Maneco2 пре 2 година
родитељ
комит
fbf51d8eab

+ 1 - 1
src/main/java/com/l2jserver/gameserver/model/actor/knownlist/AttackableKnownList.java

@@ -59,7 +59,7 @@ public class AttackableKnownList extends NpcKnownList {
 	
 	@Override
 	public int getDistanceToForgetObject(L2Object object) {
-		return (int) (getDistanceToWatchObject(object) * 1.5);
+		return getDistanceToWatchObject(object) + 500;
 	}
 	
 	@Override

+ 1 - 1
src/main/java/com/l2jserver/gameserver/model/actor/knownlist/NpcKnownList.java

@@ -60,7 +60,7 @@ public class NpcKnownList extends CharKnownList {
 	
 	@Override
 	public int getDistanceToForgetObject(L2Object object) {
-		return 2 * getDistanceToWatchObject(object);
+		return getDistanceToWatchObject(object) + 500;
 	}
 	
 	@Override

+ 12 - 20
src/main/java/com/l2jserver/gameserver/model/actor/knownlist/PcKnownList.java

@@ -131,21 +131,7 @@ public class PcKnownList extends PlayableKnownList {
 		if (object.isVehicle()) {
 			return 10000;
 		}
-		
-		// when knownlist grows, the distance to forget should be at least
-		// the same as the previous watch range, or it becomes possible that
-		// extra charinfo packets are being sent (watch-forget-watch-forget)
-		final int knownlistSize = getKnownObjects().size();
-		if (knownlistSize <= 25) {
-			return 4000;
-		}
-		if (knownlistSize <= 35) {
-			return 3500;
-		}
-		if (knownlistSize <= 70) {
-			return 2910;
-		}
-		return 2310;
+		return getDistanceToWatchObject(object) + 500;
 	}
 	
 	@Override
@@ -155,15 +141,21 @@ public class PcKnownList extends PlayableKnownList {
 		}
 		
 		final int knownlistSize = getKnownObjects().size();
-		if (knownlistSize <= 25) {
-			return 3400; // empty field
+		if ((knownlistSize <= 3) && !object.isAttackable()) {
+			return 4500; // Empty fields
+		}
+		if ((knownlistSize <= 10) && !object.isAttackable()) {
+			return 4000; // Empty fields
+		}
+		if ((knownlistSize <= 20) && !object.isAttackable()) {
+			return 3400;
 		}
-		if (knownlistSize <= 35) {
+		if (knownlistSize <= 30) {
 			return 2900;
 		}
-		if (knownlistSize <= 70) {
+		if (knownlistSize <= 40) {
 			return 2300;
 		}
-		return 1700; // Siege, TOI, city
+		return 3000; // Siege, TOI, City
 	}
 }

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

@@ -38,10 +38,9 @@ import com.l2jserver.gameserver.model.actor.instance.L2GuardInstance;
 public class KnownListUpdateTaskManager {
 	protected static final Logger _log = Logger.getLogger(KnownListUpdateTaskManager.class.getName());
 	
-	private static final int FULL_UPDATE_TIMER = 100;
+	private static final int FULL_UPDATE_TIMER = 1;
 	public static boolean updatePass = true;
 	
-	// Do full update every FULL_UPDATE_TIMER * KNOWNLIST_UPDATE_INTERVAL
 	public static int _fullUpdateTimer = FULL_UPDATE_TIMER;
 	
 	protected static final Set<L2WorldRegion> FAILED_REGIONS = ConcurrentHashMap.newKeySet(1);