Hadeszeus
New member
Can someone help me on how to lower the chance of summoning MVP's using ABRACADABRA skill? This can be spam on any server. Thanks in advance!
Code:
case SA_ABRACADABRA: { int abra_skill_id = 0, abra_skill_lv, abra_idx; do { abra_idx = rnd() % MAX_SKILL_ABRA_DB; abra_skill_id = skill->abra_db[abra_idx].skill_id; } while (abra_skill_id == 0 || skill->abra_db[abra_idx].req_lv > skill_lv || //Required lv for it to appear rnd()%10000 >= skill->abra_db[abra_idx].per ); abra_skill_lv = min(skill_lv, skill->get_max(abra_skill_id)); clif->skill_nodamage (src, bl, skill_id, skill_lv, 1); if( sd ) {// player-casted sd->state.abra_flag = 1; sd->skillitem = abra_skill_id; sd->skillitemlv = abra_skill_lv; clif->item_skill(sd, abra_skill_id, abra_skill_lv); } else {// mob-casted struct unit_data *ud = unit->bl2ud(src); int inf = skill->get_inf(abra_skill_id); if (!ud) break; if (inf&INF_SELF_SKILL || inf&INF_SUPPORT_SKILL) { if (src->type == BL_PET) bl = (struct block_list*)((TBL_PET*)src)->msd; if (!bl) bl = src; unit->skilluse_id(src, bl->id, abra_skill_id, abra_skill_lv); } else { //Assume offensive skills int target_id = 0; if (ud->target) target_id = ud->target; else switch (src->type) { case BL_MOB: target_id = ((TBL_MOB*)src)->target_id; break; case BL_PET: target_id = ((TBL_PET*)src)->target_id; break; } if (!target_id) break; if (skill->get_casttype(abra_skill_id) == CAST_GROUND) { bl = map->id2bl(target_id); if (!bl) bl = src; unit->skilluse_pos(src, bl->x, bl->y, abra_skill_id, abra_skill_lv); } else unit->skilluse_id(src, target_id, abra_skill_id, abra_skill_lv); } } } break;