The correct way to solve this is to change the NPC display logic
I liked it before when the Event hall was purely to house the lagging NPC’s and all other event related NPC’s could be found ouside of that Lag domain.
But now it appears Nexon want people to go there to use the event coins gained which would be no problem outside the fact that at least one of the 3 NPC’s still generates tremendous lag and, for me at least, causes the game to freeze up. then I have to close maple using the Task Manager and reload maple all over again and try to access the coinshop again, this can take me 30+ attempts before I can get a single item I want.
I want to know how others manage to cope with this ongoing issue, as well as what are some Ideas to fix this or make it not effect the players so much.
The correct way to solve this is to change the NPC display logic so that it doesn’t consume so much CPU.
What happens with these NPCs is that they each have a long script that tells them what to wear depending on the date. Around Christmas they wear Christmas costumes, around Anniversary they wear that year’s Anniversary set, and so on.
The problem with that is twofold:
The script is never cleaned up. When a new event season comes out, a line is added to the scripts, but old event dates and costumes remain there too.
The script is processed all over again every second (or every server tick?).
These two points put together mean that your client is constantly checking the current time against the time-windows of all events past, until it decides what sprite to show for these NPCs. If your PC’s CPU is not powerful enough, then by the time this decision is made, a new tick starts and the client does the whole thing all over again.
However, if the client just decided on the costume when you enter the map, and noted to itself when the current event ends, then all it would have to do every tick after that is make sure the end time hasn’t arrived yet. That’s a single comparison of the sort your client is doing regularly anyway (to check whether items in your inventory have expired), so it should not put any stress on the CPU.
(A more radical suggestion would be to just decide on appearance once and leave it like that until you leave the map. But heaven forbid that it turns midnight and the NPC still looks like the event that already ended!).
If the above solution is not feasible (since it does require a bit of programming, namely adding “appearance expires at” field to every NPC), then the next best thing is to perform regular cleanup of these NPCs’ scripts. Make it a habit to do so in every patch, when adding the new event costumes, to remove old expired events records from the script.
A much inferior solution to both of the above would be to exile Cassandra, Maple Admin, and Gaga even further. Make a second event map that is accessible from the first. The first one will contain event shops and NPCs (such as Boss Kumi) and other homeless NPCs (Mr. Lee?), and the second one will contain the laggy NPCs.
The problem with this solution is that while it solves the issue of access to other NPCs, it does nothing for those events or tasks that require you to talk to Cassandra, Maple Admin, or Gaga “in person.”