I tried replacing maps while the server was running, with less than spectacular results. I ended up with having all the exits leading to areas that were not in the server's memory to be closed. YMMV and you might end up with a less broken server state, but basically there are no guarantees currently about what will happen.
One possibility to handle this is to open everything under maps/ on server startup and just give file descriptors from that pool to the server whenever it wants to read maps from there. The inodes will remain open until the file descriptors are closed and it'll be possible to replace or even remove altogether the maps while the server is running and the server won't notice a thing. This would make changing the mapsets happen smoothly. Still, there is a need to make the server use the new maps without restarting. As far as I can see there isn't really any way to transparently, reliably and automatically transfer players to the new mapset from the old one. The simplest thing to do would be to immediately teleport all the players to Scorn (or some other known place) and purge the old maps from memory and close the file handles. But that hardly would go well with players. An idea I got was to have a DM command (or something like that) which would insert an undroppable portal in all player's inventories. Activating that would remove the portal and teleport the player to the new mapset. The file descriptors of the old maps would be closed when the last player had used the portal. Perhaps the players could be made to gain no exp while on the expired maps to add an incentive to vacate them... But that's details. Any comments about this before I start writing a patch? Does this sound like a viable plan? It doesn't sound like the most trivial thing to implement... _______________________________________________ crossfire mailing list [email protected] http://mailman.metalforge.org/mailman/listinfo/crossfire

