|
@@ -5432,7 +5432,8 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
|
skillratio += skillratio * sc->getSCE(SC_LIGHTOFSTAR)->val2 / 100;
|
|
skillratio += skillratio * sc->getSCE(SC_LIGHTOFSTAR)->val2 / 100;
|
|
break;
|
|
break;
|
|
case DK_SERVANTWEAPON_ATK:
|
|
case DK_SERVANTWEAPON_ATK:
|
|
- skillratio += -100 + 500 + 400 * skill_lv + 5 * sstatus->pow;
|
|
|
|
|
|
+ skillratio += -100 + 450 + 800 * skill_lv;
|
|
|
|
+ skillratio += 5 * sstatus->pow;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case DK_SERVANT_W_PHANTOM:
|
|
case DK_SERVANT_W_PHANTOM:
|
|
@@ -5445,7 +5446,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
|
break;
|
|
break;
|
|
case DK_HACKANDSLASHER:
|
|
case DK_HACKANDSLASHER:
|
|
case DK_HACKANDSLASHER_ATK:
|
|
case DK_HACKANDSLASHER_ATK:
|
|
- skillratio += -100 + 200 + 750 * skill_lv;
|
|
|
|
|
|
+ skillratio += -100 + 350 + 820 * skill_lv;
|
|
skillratio += 7 * sstatus->pow;
|
|
skillratio += 7 * sstatus->pow;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
@@ -5456,7 +5457,8 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case DK_MADNESS_CRUSHER:
|
|
case DK_MADNESS_CRUSHER:
|
|
- skillratio += -100 + 350 + 1600 * skill_lv + 10 * sstatus->pow;
|
|
|
|
|
|
+ skillratio += -100 + 1000 + 3800 * skill_lv;
|
|
|
|
+ skillratio += 10 * sstatus->pow;
|
|
if( sd != nullptr ){
|
|
if( sd != nullptr ){
|
|
int16 index = sd->equip_index[EQI_HAND_R];
|
|
int16 index = sd->equip_index[EQI_HAND_R];
|
|
|
|
|
|
@@ -5469,18 +5471,25 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
|
skillratio *= 2;
|
|
skillratio *= 2;
|
|
break;
|
|
break;
|
|
case DK_STORMSLASH:
|
|
case DK_STORMSLASH:
|
|
- skillratio += -100 + 200 + 400 * skill_lv + 5 * sstatus->pow;
|
|
|
|
|
|
+ skillratio += -100 + 300 + 750 * skill_lv;
|
|
|
|
+ skillratio += 5 * sstatus->pow;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
if (sc && sc->getSCE(SC_GIANTGROWTH) && rnd_chance(60, 100))
|
|
if (sc && sc->getSCE(SC_GIANTGROWTH) && rnd_chance(60, 100))
|
|
skillratio *= 2;
|
|
skillratio *= 2;
|
|
break;
|
|
break;
|
|
case DK_DRAGONIC_BREATH:
|
|
case DK_DRAGONIC_BREATH:
|
|
skillratio += -100 + 50 + 350 * skill_lv;
|
|
skillratio += -100 + 50 + 350 * skill_lv;
|
|
- skillratio += 5 * sstatus->pow;
|
|
|
|
- //TODO: needs official HP/SP scaling [Muh]
|
|
|
|
- skillratio += sstatus->max_hp / 500 + status_get_max_sp(src) / 40;
|
|
|
|
- if (sc && sc->getSCE(SC_DRAGONIC_AURA))
|
|
|
|
- skillratio += sstatus->max_hp / 500 + status_get_max_sp(src) / 40;
|
|
|
|
|
|
+ skillratio += 7 * sstatus->pow;
|
|
|
|
+
|
|
|
|
+ if (sc && sc->getSCE(SC_DRAGONIC_AURA)) {
|
|
|
|
+ skillratio += 3 * sstatus->pow;
|
|
|
|
+ skillratio += (skill_lv * (sstatus->max_hp * 25 / 100) * 5) / 100; // Skill level x 0.05 x ((MaxHP / 4) + (MaxSP / 2))
|
|
|
|
+ skillratio += (skill_lv * (sstatus->max_sp * 50 / 100) * 5) / 100;
|
|
|
|
+ } else {
|
|
|
|
+ skillratio += (skill_lv * (sstatus->max_hp * 25 / 100) * 7) / 100; // Skill level x 0.07 x ((MaxHP / 4) + (MaxSP / 2))
|
|
|
|
+ skillratio += (skill_lv * (sstatus->max_sp * 50 / 100) * 7) / 100;
|
|
|
|
+ }
|
|
|
|
+
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case IQ_OLEUM_SANCTUM:
|
|
case IQ_OLEUM_SANCTUM:
|
|
@@ -9718,7 +9727,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
|
|
}
|
|
}
|
|
|
|
|
|
if( sc ){
|
|
if( sc ){
|
|
- if( sc->getSCE( SC_SERVANTWEAPON ) && sd->servantball > 0 && rnd() % 100 < ( 3 * sc->getSCE( SC_SERVANTWEAPON )->val1 ) ){
|
|
|
|
|
|
+ if( sc->getSCE( SC_SERVANTWEAPON ) && sd->servantball > 0 && rnd_chance( 5 * sc->getSCE( SC_SERVANTWEAPON )->val1, 100 ) ){
|
|
uint16 skill_id = DK_SERVANTWEAPON_ATK;
|
|
uint16 skill_id = DK_SERVANTWEAPON_ATK;
|
|
uint16 skill_lv = sc->getSCE(SC_SERVANTWEAPON)->val1;
|
|
uint16 skill_lv = sc->getSCE(SC_SERVANTWEAPON)->val1;
|
|
|
|
|