Abstract channel schedulers + Mob animation track + More portal SFX
Implemented an improved scheduler system for channels, on where Runnables objects are "registered in" to run on a scheduled future time (effective run time will depend on the proc time of the worker acting under-the-hood). Implemented a channel scheduler for detecting "mobs currently on animation state". This allows the server to send info to the client about whether a mob should cast a skill or not at that moment. Improved concurrent protection on MapleMonster listeners registry. Improved resource deallocation when destroying a monster object. Added a server flag to allow clean slates to be used on equipments even on the "only successfully used scroll slots" case. Fixed a critical deadlock case with MapleServerHandler. Added the portal SFX for many scripted portals that still lacked the sound effect.
This commit is contained in:
@@ -189,10 +189,12 @@ public class MapleServerHandler extends IoHandlerAdapter {
|
||||
|
||||
private void registerIdleSession(MapleClient c) {
|
||||
if(idleLock.tryLock()) {
|
||||
idleSessions.put(c, System.currentTimeMillis());
|
||||
c.announce(MaplePacketCreator.getPing());
|
||||
|
||||
idleLock.unlock();
|
||||
try {
|
||||
idleSessions.put(c, System.currentTimeMillis());
|
||||
c.announce(MaplePacketCreator.getPing());
|
||||
} finally {
|
||||
idleLock.unlock();
|
||||
}
|
||||
} else {
|
||||
tempLock.lock();
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user