Jump to content
  • 0

Question

I have this problem in my script which is the tarot script in skill.c, the issue is when i use the tarot skill to a player when the yellow sun which is the card will appear it will stop i need to hit the player so that na tarot will start again, this is my script see picture attached also.
 

case CG_TAROTCARD:
            {
                int count = -1;
                if (tsc && tsc->data[type]) {
                    map->freeblock_unlock();
                    return 0;
                }
                if (rnd() % 100 > skill_lv * 8 || (dstmd && ((dstmd->guardian_data && dstmd->class_ == MOBID_EMPELIUM) || mob_is_battleground(dstmd)))) {
                    if (sd != NULL)
                        clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
 
                    map->freeblock_unlock();
                    return 0;
                }
                status_zap(src,0,skill->dbs->db[skill->get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded [inkfish]
                do {
                    int eff = rnd() % 14;
                    if( eff == 5 )
                        clif->specialeffect(src, 528, AREA);
                    else
                        clif->specialeffect(bl, 523 + eff, AREA);
                    switch (eff)
                    {
                    case 0: // heals SP to 0
                        status_percent_damage(src, bl, 0, 100, false);
                        break;
                    case 1: // matk halved
                        sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
                        break;
                    case 2: // all buffs removed
                        status->change_clear_buffs(bl,1);
                        break;
                    case 3: // 1000 damage, random armor destroyed
                        {
                            status_fix_damage(src, bl, 1000, 0);
                            clif->damage(src,bl,0,0,1000,0,BDT_NORMAL,0);
                            if( !status->isdead(bl) ) {
                                int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM, EQP_SHOES, EQP_GARMENT };
                                skill->break_equip(bl, where[rnd()%5], 10000, BCT_ENEMY);
                            }
                        }
                        break;
                    case 4: // atk halved
                        sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
                        break;
                    case 5: // 2000HP heal, random teleported
                        status->heal(src, 2000, 0, 0);
                        if( !map_flag_vs(bl->m) )
                            unit->warp(bl, -1,-1,-1, CLR_TELEPORT);
                        break;
                    case 6: // random 2 other effects
                        if (count == -1)
                            count = 3;
                        else
                            count++; //Should not re-trigger this one.
                        break;
                    case 7: // stop freeze or stoned
                        {
                            enum sc_type sc[] = { SC_STOP, SC_FREEZE, SC_STONE };
                            sc_start(src,bl,sc[rnd()%3],100,skill_lv,skill->get_time2(skill_id,skill_lv));
                        }
                        break;
                    case 8: // curse coma and poison
                        sc_start(src,bl,SC_COMA,100,skill_lv,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_CURSE,100,skill_lv,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_POISON,100,skill_lv,skill->get_time2(skill_id,skill_lv));
                        break;
                    case 9: // confusion
                        sc_start(src,bl,SC_CONFUSION,100,skill_lv,skill->get_time2(skill_id,skill_lv));
                        break;
                    case 10: // 6666 damage, atk matk halved, cursed
                        status_fix_damage(src, bl, 6666, 0);
                        clif->damage(src,bl,0,0,6666,0,BDT_NORMAL,0);
                        sc_start(src,bl,SC_INCATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_INCMATKRATE,100,-50,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_CURSE,skill_lv,100,skill->get_time2(skill_id,skill_lv));
                        break;
                    case 11: // 4444 damage
                        status_fix_damage(src, bl, 4444, 0);
                        clif->damage(src,bl,0,0,4444,0,BDT_NORMAL,0);
                        break;
                    case 12: // stun
                        sc_start(src,bl,SC_STUN,100,skill_lv,5000);
                        break;
                    case 13: // atk,matk,hit,flee,def reduced
                        sc_start(src,bl,SC_INCATKRATE,100,-20,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_INCMATKRATE,100,-20,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_INCHITRATE,100,-20,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_INCFLEERATE,100,-20,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,SC_INCDEFRATE,100,-20,skill->get_time2(skill_id,skill_lv));
                        sc_start(src,bl,type,100,skill_lv,skill->get_time2(skill_id,skill_lv));
                        break;
                    default:
                        break;
                    }
                } while ((--count) > 0);
                clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
            }
 

post-15665-0-85413800-1496584762_thumb.jpg

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.