关于怪物寻路和仇恨AI的优化,很多开源模拟器都是使用全图广播的线程机制,对CPU开销极大。这里我们将怪物的AI轮询由原来的1秒改为动态心跳:当怪物周围20格内没有在线玩家时,关闭AI轮询;一旦有玩家进入可视视野,立刻唤醒。这样做在怪物数量多达数万只的地图上能显著降低服务端CPU占用率达30%以上。
实现按在线时长自动发放积分。我们在服务端主循环初始化时注册一个单线程调度任务(ScheduledExecutorService),每隔1小时执行一次,扫描全局在线玩家 `L1World.getInstance().getAllPlayers()`,为每位在线玩家积分加5。这样可以有效增加服务器的在线率与活跃度,也可以避免前台网站轮询打库的性能开销。