|
@@ -4231,7 +4231,7 @@ static void battle_calc_multi_attack(struct Damage* wd, struct block_list *src,s
|
|
|
break;
|
|
|
}
|
|
|
case ABC_FRENZY_SHOT:
|
|
|
- if( rnd()%100 < 5 * skill_lv ){
|
|
|
+ if( rnd_chance( 5 * skill_lv, 100 ) ){
|
|
|
wd->div_ = 3;
|
|
|
}
|
|
|
break;
|
|
@@ -5734,7 +5734,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_ABYSS_DAGGER:
|
|
|
- skillratio += -100 + 100 + 900 * skill_lv;
|
|
|
+ skillratio += -100 + 350 + 1400 * skill_lv;
|
|
|
skillratio += 5 * sstatus->pow;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
@@ -5743,20 +5743,22 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_CHAIN_REACTION_SHOT:
|
|
|
- skillratio += -100 + 850 * skill_lv + 15 * sstatus->con;
|
|
|
+ skillratio += -100 + 850 * skill_lv;
|
|
|
+ skillratio += 15 * sstatus->con;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_CHAIN_REACTION_SHOT_ATK:
|
|
|
- skillratio += -100 + 600 + 2350 * skill_lv + 15 * sstatus->con;
|
|
|
+ skillratio += -100 + 800 + 2550 * skill_lv;
|
|
|
+ skillratio += 15 * sstatus->con;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_DEFT_STAB:
|
|
|
- skillratio += -100 + 250 + 350 * skill_lv;
|
|
|
- skillratio += 5 * sstatus->pow;
|
|
|
+ skillratio += -100 + 700 + 550 * skill_lv;
|
|
|
+ skillratio += 7 * sstatus->pow;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_FRENZY_SHOT:
|
|
|
- skillratio += -100 + 150 + 600 * skill_lv;
|
|
|
+ skillratio += -100 + 250 + 800 * skill_lv;
|
|
|
skillratio += 15 * sstatus->con;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
@@ -8307,13 +8309,16 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_ABYSS_STRIKE:
|
|
|
- skillratio += -100 + 2200 * skill_lv + 10 * sstatus->spl;
|
|
|
+ skillratio += -100 + 2650 * skill_lv;
|
|
|
+ skillratio += 10 * sstatus->spl;
|
|
|
if (tstatus->race == RC_DEMON || tstatus->race == RC_ANGEL)
|
|
|
- skillratio += 150 * skill_lv;
|
|
|
+ skillratio += 200 * skill_lv;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_ABYSS_SQUARE:
|
|
|
- skillratio += -100 + ( 570 + 20 * pc_checkskill( sd, ABC_MAGIC_SWORD_M ) ) * skill_lv + 5 * sstatus->spl;
|
|
|
+ skillratio += -100 + 750 * skill_lv;
|
|
|
+ skillratio += 40 * pc_checkskill( sd, ABC_MAGIC_SWORD_M ) * skill_lv;
|
|
|
+ skillratio += 5 * sstatus->spl;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case TR_METALIC_FURY:
|
|
@@ -8388,7 +8393,8 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case ABC_FROM_THE_ABYSS_ATK:
|
|
|
- skillratio += -100 + 100 + 500 * skill_lv + 5 * sstatus->spl;
|
|
|
+ skillratio += -100 + 150 + 650 * skill_lv;
|
|
|
+ skillratio += 5 * sstatus->spl;
|
|
|
RE_LVL_DMOD(100);
|
|
|
break;
|
|
|
case EM_ELEMENTAL_BUSTER_FIRE:
|
|
@@ -9912,7 +9918,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
|
|
|
sd->state.autocast = 0;
|
|
|
}
|
|
|
|
|
|
- if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd() % 100 < 15 ){
|
|
|
+ if( sc->getSCE(SC_ABYSSFORCEWEAPON) && sd->abyssball > 0 && rnd_chance( 25, 100 ) ){
|
|
|
uint16 skill_id = ABC_FROM_THE_ABYSS_ATK;
|
|
|
uint16 skill_lv = sc->getSCE(SC_ABYSSFORCEWEAPON)->val1;
|
|
|
|