Issue information

Issue ID
#1266
Status
Working as Intended
Severity
Low
Started
Hercules Elf Bot
Mar 25, 2008 9:35
Last Post
Hercules Elf Bot
Mar 25, 2008 9:35
Confirmation
N/A

Hercules Elf Bot - Mar 25, 2008 9:35

Originally posted by [b]theultramage[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=1266

http://svn.eathena.ws/bugs/changeset/1938
Whenever you're the only one on a map and you flywing, the user count drops to 0 and then goes back up to 1.
Since it goes to 0, the server will always invoke this:
CODE
void map_removemobs(int m)
{
    if (map[m].mob_delete_timer != -1)
        return; //Mobs are already scheduled for removal

    map[m].mob_delete_timer = add_timer(gettick()+battle_config.mob_remove_delay, map_removemobs_timer, m, 0);
}

Knowing this, there is a bug visible:
1. enter map
2. flywing -> respawn timer activates
3. hang around for ~4 minutes
4. leave map
5. the mapserver will unload the mobs a few seconds after you leave.

The issue can be resolved by properly starting and aborting the timer when the conditions are met - not having a single timer started and then doing a single check for player count after the timer runs out...