Issue information

Issue ID
#186
Status
Fixed
Severity
Low
Started
Hercules Elf Bot
Oct 7, 2007 0:02
Last Post
Hercules Elf Bot
Oct 7, 2007 0:02
Confirmation
N/A

Hercules Elf Bot - Oct 7, 2007 0:02

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

Currently on eAthena, whenever you cast Abracadabra, sometimes it will let you use a skill and other times it won't do anything even though a cast animation shows (thus wasting 2 gemstones).

After a small investigation I discovered this in skill_castend_nodamage_id() [skill.c]:
CODE
            if (sd)
            {    //Crash-protection against Abracadabra casting pets
                sd->skillitem = abra_skillid;
                sd->skillitemlv = abra_skilllv;
                sd->state.abra_flag = 1;
                clif_item_skill (sd, abra_skillid, abra_skilllv);
            } else


Problem is, clif_item_skill() sends an item skill usage packet to the client which is IGNORED for some skills. I checked the skills being used via a clif_displaymessage() function and it seems self buff skills (those with the bit INF_SELF_SKILL set for the skill) are ignored by the client.

Therefore I suggest the above be changed to this:
CODE
            if (sd)
            {    //Crash-protection against Abracadabra casting pets
                sd->skillitem = abra_skillid;
                sd->skillitemlv = abra_skilllv;
                sd->state.abra_flag = 1;
                if (skill_get_inf(abra_skillid)&INF_SELF_SKILL)
                    unit_skilluse_id(src, bl->id, abra_skillid, abra_skilllv);
                else
                    clif_item_skill (sd, abra_skillid, abra_skilllv);

            } else



That will allow things like Angelus to actually be casted through Abracadabra!







P.S. Another thing, the abra_db.txt is pretty old, and doesn't include even transcendant skills. Is it still like that on kRO? If so, can we have an abra_db2.txt that people can use that includes all the new skills?