Issue information

Issue ID
#166
Status
Fixed
Severity
None
Started
Hercules Elf Bot
Oct 3, 2007 9:49
Last Post
Hercules Elf Bot
Mar 5, 2012 16:30
Confirmation
N/A

Hercules Elf Bot - Oct 3, 2007 9:49

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

hello, regarding the forum, there is several uncorrected bugs into duo skills like marionette or moonlit.

Marionette :
-There should be a difference max level to use it. According to Freya sources, 5 level into same party. Actually, no restriction
-This skill cannot be used on other clown/gypsy. Actually, we can

Here is the code of Freya about it

CODE
case CG_MARIONETTE:
        if(sd && dstsd)
        {
            short jobid1 = pc_calc_base_job2(sd->status.class);
            short jobid2 = pc_calc_base_job2(dstsd->status.class);
            short lvcheck = 0;
            int sc = SC_MARIONETTE;
            int sc2 = SC_MARIONETTE2;

            // Clowns can't control Bards, and Gypsies can't control Dancers
            if(dstsd->bl.type != BL_PC || sd->bl.id == dstsd->bl.id || (jobid1 == 43 && jobid2 == 19) || (jobid1 == 44 && jobid2 == 20))
            {
                clif_skill_fail(sd, skillid, 0, 0);
                map_freeblock_unlock();
                return 1;
            }

            // +-5 levelcheck applies only to non-party members
            if(!sd->status.party_id || !dstsd->status.party_id || sd->status.party_id != dstsd->status.party_id)
            {
                lvcheck = sd->status.base_level - dstsd->status.base_level;
                if(lvcheck < -5 || lvcheck > 5)
                {
                    clif_skill_fail(sd, skillid, 0, 0);
                    map_freeblock_unlock();
                    return 1;
                }
            }

            if(sc_data[sc].timer == -1 && tsc_data[sc2].timer == -1)
            {
                status_change_start (src, sc, skilllv, 0, bl->id, 0, skill_get_time(skillid, skilllv), 0);
                status_change_start (bl, sc2, skilllv, 0, src->id, 0, skill_get_time(skillid, skilllv), 0);
                clif_skill_nodamage(src, bl, skillid, skilllv, 1);
            } else if(sc_data[sc].timer != -1 && tsc_data[sc2].timer != -1 && sc_data[sc].val3 == bl->id && tsc_data[sc2].val3 == src->id) {
                status_change_end(src, sc, -1);
                status_change_end(bl, sc2, -1);
                clif_skill_nodamage(src, bl, skillid, skilllv, 0);
            } else {
                clif_skill_fail(sd, skillid, 0, 0);
                map_freeblock_unlock();
                return 1;
            }
        }


        break;


Should be almost reusable as far as I checked.

Then MOONLIT:
- I don't know if it's normal or not, but both Clown and Gypsy get "knockbacked" when they start the dance.
- Whatever, only the one who start the dance is immune. The other can be hit by monsters

For this one, no idea right now exactly how it works and which source snippet is impacted.