Changeset 1527

User picture

Author: sphinx

(2010/03/14 23:01) Almost 2 years ago

- fix mapid check on isInRange (thx sweetkr)
- fix Z distance check when attack and in knownlist

Affected files

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/controllers/PlayerController.java Download diff

15261527
252
252
253
		Creature target = (Creature) sp.getWorld().findAionObject(targetObjectId);
253
		Creature target = (Creature) sp.getWorld().findAionObject(targetObjectId);
254
254
255
		//check player attack Z distance
256
		if(Math.abs(player.getZ() - target.getZ()) > 6)
257
			return;
258
		
255
		if(!RestrictionsManager.canAttack(player, target))
259
		if(!RestrictionsManager.canAttack(player, target))
256
			return;
260
			return;
257
261

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/utils/MathUtil.java Download diff

15261527
292
	 */
292
	 */
293
	public static boolean isInRange(VisibleObject object1, VisibleObject object2, float range)
293
	public static boolean isInRange(VisibleObject object1, VisibleObject object2, float range)
294
	{
294
	{
295
		if(object1.getWorldId() != object2.getWorldId())
296
			return false;
297
		
295
		float dx = (object2.getX() - object1.getX());
298
		float dx = (object2.getX() - object1.getX());
296
		float dy = (object2.getY() - object1.getY());
299
		float dy = (object2.getY() - object1.getY());
297
		return dx * dx + dy * dy < range * range;
300
		return dx * dx + dy * dy < range * range;

Updated trunk/AE-go_GameServer/src/com/aionemu/gameserver/world/KnownList.java Download diff

15261527
43
43
44
	// how far any visible object will see other visible object
44
	// how far any visible object will see other visible object
45
	private static final int						npcVisibilityDistance		= 80;
45
	private static final int						npcVisibilityDistance		= 80;
46
	
47
	// maxZvisibleDistance
48
	private static final int						maxZvisibleDistance 		= 400;
46
49
47
	/**
50
	/**
48
	 * Owner of this KnownList.
51
	 * Owner of this KnownList.
...
...
193
196
194
	private boolean checkObjectInRange(VisibleObject owner, VisibleObject newObject)
197
	private boolean checkObjectInRange(VisibleObject owner, VisibleObject newObject)
195
	{
198
	{
199
		//check if Z distance is greater than maxZvisibleDistance		
200
		if(Math.abs(owner.getZ() - newObject.getZ()) > maxZvisibleDistance)
201
			return false;				
202
		
196
		if(owner instanceof Player)
203
		if(owner instanceof Player)
197
			return MathUtil.isInRange(owner, newObject, playerVisibilityDistance);
204
			return MathUtil.isInRange(owner, newObject, playerVisibilityDistance);
198
		else
205
		else