Issue information

Issue ID
#1313
Status
Fixed
Severity
Medium
Started
Hercules Elf Bot
Apr 4, 2008 10:03
Last Post
Hercules Elf Bot
Apr 4, 2008 10:03
Confirmation
N/A

Hercules Elf Bot - Apr 4, 2008 10:03

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

A random person on irc mentioned that there's a problem with guild skills, particularly that they affect the emperium as well!
After some code inspection and svn blame-ing, here are the results:

CODE
    case GD_RESTORE:
        if(flag&1) {
            if (status_get_guild_id(src) == status_get_guild_id(bl))
                clif_skill_nodamage(src,bl,AL_HEAL,status_percent_heal(bl,90,90),1);
        } else if (status_get_guild_id(src)) {
            clif_skill_nodamage(src,bl,skillid,skilllv,1);
            map_foreachinrange(skill_area_sub, src,
                skill_get_splash(skillid, skilllv), BL_CHAR,
                src,skillid,skilllv,tick, flag|BCT_GUILD|1,
                skill_castend_nodamage_id);
BL_CHAR | BCT_GUILD. Since BL_CHAR is a macro for players, mobs and homunculi, this thing also heals guardians, emperium, player homunculi and summoned mobs. I am not sure what the real target of this skill should be, but my guess is BL_PC only.

Same deal with GD_REGENERATION and GD_BATTLEORDER.
Bug first appeared in eathena svn r347, where it replaced code that iterated over all guild members on the same map.