region heights issue
This commit is contained in:
@@ -342,8 +342,11 @@ public class InfoCmd extends AbstractDevCmd {
|
|||||||
output += newline;
|
output += newline;
|
||||||
output += "isMoving : " + targetPC.isMoving();
|
output += "isMoving : " + targetPC.isMoving();
|
||||||
output += newline;
|
output += newline;
|
||||||
output += "Zerg Multiplier : " + targetPC.ZergMultiplier+ newline;
|
output += "Zerg Multiplier : " + targetPC.ZergMultiplier + newline;
|
||||||
output += "Hidden : " + targetPC.getHidden();
|
output += "Hidden : " + targetPC.getHidden() + newline;
|
||||||
|
output += "Target Loc: " + targetPC.loc + newline;
|
||||||
|
output += "Player Loc: " + pc.loc + newline;
|
||||||
|
output += "Distance Squared: " + pc.loc.distanceSquared(targetPC.loc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NPC:
|
case NPC:
|
||||||
|
|||||||
@@ -620,9 +620,6 @@ public class MobAI {
|
|||||||
|
|
||||||
if (mob == null)
|
if (mob == null)
|
||||||
return;
|
return;
|
||||||
if(mob.isAlive())
|
|
||||||
if(!mob.getMovementLoc().equals(Vector3fImmutable.ZERO))
|
|
||||||
mob.setLoc(mob.getMovementLoc());
|
|
||||||
|
|
||||||
if (mob.getTimestamps().containsKey("lastExecution") == false)
|
if (mob.getTimestamps().containsKey("lastExecution") == false)
|
||||||
mob.getTimestamps().put("lastExecution", System.currentTimeMillis());
|
mob.getTimestamps().put("lastExecution", System.currentTimeMillis());
|
||||||
@@ -678,6 +675,10 @@ public class MobAI {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mob.isAlive())
|
||||||
|
if(!mob.getMovementLoc().equals(Vector3fImmutable.ZERO))
|
||||||
|
mob.setLoc(mob.getMovementLoc());
|
||||||
|
|
||||||
if(mob.isPet() == false && mob.isPlayerGuard == false)
|
if(mob.isPet() == false && mob.isPlayerGuard == false)
|
||||||
CheckToSendMobHome(mob);
|
CheckToSendMobHome(mob);
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import engine.Enum.GameObjectType;
|
|||||||
import engine.Enum.GridObjectType;
|
import engine.Enum.GridObjectType;
|
||||||
import engine.InterestManagement.HeightMap;
|
import engine.InterestManagement.HeightMap;
|
||||||
import engine.InterestManagement.WorldGrid;
|
import engine.InterestManagement.WorldGrid;
|
||||||
|
import engine.gameManager.ZoneManager;
|
||||||
import engine.job.AbstractScheduleJob;
|
import engine.job.AbstractScheduleJob;
|
||||||
import engine.job.JobContainer;
|
import engine.job.JobContainer;
|
||||||
import engine.job.JobScheduler;
|
import engine.job.JobScheduler;
|
||||||
@@ -500,8 +501,24 @@ public abstract class AbstractWorldObject extends AbstractGameObject {
|
|||||||
if (loc.x > MBServerStatics.MAX_WORLD_WIDTH || loc.z < MBServerStatics.MAX_WORLD_HEIGHT)
|
if (loc.x > MBServerStatics.MAX_WORLD_WIDTH || loc.z < MBServerStatics.MAX_WORLD_HEIGHT)
|
||||||
return;
|
return;
|
||||||
this.lastLoc = new Vector3fImmutable(this.loc);
|
this.lastLoc = new Vector3fImmutable(this.loc);
|
||||||
|
if(AbstractCharacter.IsAbstractCharacter(this)){
|
||||||
|
float y;
|
||||||
|
float worldHeight = HeightMap.getWorldHeight(loc);
|
||||||
|
Zone zone = ZoneManager.findSmallestZone(loc);
|
||||||
|
if(zone != null && zone.isPlayerCity()){
|
||||||
|
worldHeight = zone.absY;
|
||||||
|
}
|
||||||
|
if(this.region != null){
|
||||||
|
float regionAlt = this.region.lerpY(this);
|
||||||
|
float altitude = this.getAltitude();
|
||||||
|
y = regionAlt + altitude + worldHeight;
|
||||||
|
}else{
|
||||||
|
y = HeightMap.getWorldHeight(loc) + this.getAltitude();
|
||||||
|
}
|
||||||
|
loc.setY(y);
|
||||||
|
}
|
||||||
this.loc = loc;
|
this.loc = loc;
|
||||||
this.loc = this.loc.setY(HeightMap.getWorldHeight(this) + this.getAltitude());
|
//this.loc = this.loc.setY(HeightMap.getWorldHeight(this) + this.getAltitude());
|
||||||
|
|
||||||
//lets not add mob to world grid if he is currently despawned.
|
//lets not add mob to world grid if he is currently despawned.
|
||||||
if (this.getObjectType().equals(GameObjectType.Mob) && ((Mob) this).despawned)
|
if (this.getObjectType().equals(GameObjectType.Mob) && ((Mob) this).despawned)
|
||||||
|
|||||||
@@ -5330,9 +5330,11 @@ public class PlayerCharacter extends AbstractCharacter {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setLoc(newLoc);
|
|
||||||
this.region = AbstractWorldObject.GetRegionByWorldObject(this);
|
this.region = AbstractWorldObject.GetRegionByWorldObject(this);
|
||||||
|
|
||||||
|
setLoc(newLoc);
|
||||||
|
|
||||||
if (this.getDebug(1))
|
if (this.getDebug(1))
|
||||||
ChatManager.chatSystemInfo(this,
|
ChatManager.chatSystemInfo(this,
|
||||||
"Distance to target " + this.getEndLoc().distance2D(this.getLoc()) + " speed " + this.getSpeed());
|
"Distance to target " + this.getEndLoc().distance2D(this.getLoc()) + " speed " + this.getSpeed());
|
||||||
|
|||||||
Reference in New Issue
Block a user