mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2026-08-23 11:25:11 -06:00
aggro fixes
This commit is contained in:
parent
c6fd45eb62
commit
f797ea1b37
3 changed files with 17 additions and 12 deletions
|
|
@ -385,14 +385,14 @@ class DevelopmentCommandSet : CommandSet(Privilege.ADMIN) {
|
|||
sendMessage(player, "${player.location.chunk.players.size} players and ${player.location.chunk.npcs.size} npcs on this chunk.")
|
||||
sendMessage(player, "Entities on this tile:")
|
||||
for (p in RegionManager.getLocalPlayers(player.location, 0)) {
|
||||
sendMessage(p, " player ${player.username}")
|
||||
sendMessage(player, " player ${player.username}")
|
||||
}
|
||||
for (npc in RegionManager.getLocalNPCs(player.location, 0)) {
|
||||
sendMessage(player, " npc ${npc.name}")
|
||||
}
|
||||
sendMessage(player, "Entities within render distance:")
|
||||
for (p in RegionManager.getLocalPlayers(player.location)) {
|
||||
sendMessage(p, " player ${player.username} at ${player.location}")
|
||||
sendMessage(player, " player ${player.username} at ${player.location}")
|
||||
}
|
||||
for (npc in RegionManager.getLocalNPCs(player.location)) {
|
||||
sendMessage(player, " npc ${npc.name} at ${npc.location}}")
|
||||
|
|
|
|||
|
|
@ -250,7 +250,6 @@ public class RegionChunk {
|
|||
public void addPlayer(Player player) {
|
||||
players.add(player);
|
||||
Region region = getCurrentBase().getRegion();
|
||||
region.getTolerances().put(player.getName(), System.currentTimeMillis());
|
||||
region.flagActive();
|
||||
}
|
||||
|
||||
|
|
@ -284,7 +283,6 @@ public class RegionChunk {
|
|||
public void removePlayer(Player player) {
|
||||
players.remove(player);
|
||||
Region region = getCurrentBase().getRegion();
|
||||
region.getTolerances().remove(player.getName());
|
||||
region.checkInactive();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -382,12 +382,21 @@ object RegionManager {
|
|||
if (src?.chunk != dst.chunk) {
|
||||
when (entity) {
|
||||
is Player -> {
|
||||
if (src != null) {
|
||||
src.chunk.removePlayer(entity)
|
||||
src.region.decrementViewAmount()
|
||||
val player = entity.asPlayer()
|
||||
val sameRegion = src?.region == dst.region
|
||||
if (src != null && sameRegion) {
|
||||
src.chunk.removePlayer(player)
|
||||
dst.chunk.addPlayer(player)
|
||||
} else {
|
||||
if (src != null) {
|
||||
src.chunk.removePlayer(player)
|
||||
src.region.tolerances.remove(player.name)
|
||||
src.region.decrementViewAmount()
|
||||
}
|
||||
dst.chunk.addPlayer(entity)
|
||||
dst.region.tolerances[entity.asPlayer().name] = System.currentTimeMillis()
|
||||
dst.region.incrementViewAmount()
|
||||
}
|
||||
dst.chunk.addPlayer(entity)
|
||||
dst.region.incrementViewAmount()
|
||||
}
|
||||
is NPC -> {
|
||||
if (src != null) {
|
||||
|
|
@ -395,9 +404,7 @@ object RegionManager {
|
|||
}
|
||||
dst.chunk.add(entity)
|
||||
}
|
||||
else -> {
|
||||
throw (IllegalStateException("Tried to move an Entity that was neither Player nor NPC"))
|
||||
}
|
||||
else -> throw IllegalStateException("Tried to move an Entity that was neither Player nor NPC")
|
||||
}
|
||||
}
|
||||
entity.zoneMonitor.updateLocation(entity.walkingQueue.footPrint)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue