|
@@ -1762,7 +1762,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
|
|
|
|
|
|
if((sce=tsc->getSCE(SC_ARMOR)) && //NPC_DEFENDER
|
|
if((sce=tsc->getSCE(SC_ARMOR)) && //NPC_DEFENDER
|
|
sce->val3&flag && sce->val4&flag)
|
|
sce->val3&flag && sce->val4&flag)
|
|
- damage -= damage * tsc->getSCE(SC_ARMOR)->val2 / 100;
|
|
|
|
|
|
+ damage /= tsc->getSCE(SC_ARMOR)->val2;
|
|
|
|
|
|
if( tsc->getSCE(SC_ENERGYCOAT) && (skill_id == GN_HELLS_PLANT_ATK ||
|
|
if( tsc->getSCE(SC_ENERGYCOAT) && (skill_id == GN_HELLS_PLANT_ATK ||
|
|
#ifdef RENEWAL
|
|
#ifdef RENEWAL
|
|
@@ -2932,10 +2932,9 @@ static bool is_attack_critical(struct Damage* wd, struct block_list *src, struct
|
|
if (!first_call)
|
|
if (!first_call)
|
|
return (wd->type == DMG_CRITICAL || wd->type == DMG_MULTI_HIT_CRITICAL);
|
|
return (wd->type == DMG_CRITICAL || wd->type == DMG_MULTI_HIT_CRITICAL);
|
|
|
|
|
|
-#ifdef RENEWAL
|
|
|
|
if (skill_id == NPC_CRITICALSLASH || skill_id == LG_PINPOINTATTACK) //Always critical skills
|
|
if (skill_id == NPC_CRITICALSLASH || skill_id == LG_PINPOINTATTACK) //Always critical skills
|
|
return true;
|
|
return true;
|
|
-#endif
|
|
|
|
|
|
+
|
|
if( skill_id && !skill_get_nk(skill_id,NK_CRITICAL) )
|
|
if( skill_id && !skill_get_nk(skill_id,NK_CRITICAL) )
|
|
return false;
|
|
return false;
|
|
|
|
|
|
@@ -3367,18 +3366,26 @@ static bool attack_ignores_def(struct Damage* wd, struct block_list *src, struct
|
|
static bool battle_skill_stacks_masteries_vvs(uint16 skill_id, int type)
|
|
static bool battle_skill_stacks_masteries_vvs(uint16 skill_id, int type)
|
|
{
|
|
{
|
|
switch (skill_id) {
|
|
switch (skill_id) {
|
|
|
|
+ // PC skills that are unaffected
|
|
case PA_SHIELDCHAIN:
|
|
case PA_SHIELDCHAIN:
|
|
case CR_SHIELDBOOMERANG:
|
|
case CR_SHIELDBOOMERANG:
|
|
case AM_ACIDTERROR:
|
|
case AM_ACIDTERROR:
|
|
case MO_INVESTIGATE:
|
|
case MO_INVESTIGATE:
|
|
case MO_EXTREMITYFIST:
|
|
case MO_EXTREMITYFIST:
|
|
case PA_SACRIFICE:
|
|
case PA_SACRIFICE:
|
|
- case NPC_DRAGONBREATH:
|
|
|
|
case RK_DRAGONBREATH:
|
|
case RK_DRAGONBREATH:
|
|
case RK_DRAGONBREATH_WATER:
|
|
case RK_DRAGONBREATH_WATER:
|
|
case NC_SELFDESTRUCTION:
|
|
case NC_SELFDESTRUCTION:
|
|
case LG_SHIELDPRESS:
|
|
case LG_SHIELDPRESS:
|
|
case LG_EARTHDRIVE:
|
|
case LG_EARTHDRIVE:
|
|
|
|
+ // NPC skills that are unaffected
|
|
|
|
+ case NPC_FIREBREATH:
|
|
|
|
+ case NPC_ICEBREATH:
|
|
|
|
+ case NPC_THUNDERBREATH:
|
|
|
|
+ case NPC_ACIDBREATH:
|
|
|
|
+ case NPC_DARKNESSBREATH:
|
|
|
|
+ case NPC_VAMPIRE_GIFT:
|
|
|
|
+ case NPC_DRAGONBREATH:
|
|
return false;
|
|
return false;
|
|
case CR_GRANDCROSS:
|
|
case CR_GRANDCROSS:
|
|
case NPC_GRANDDARKNESS:
|
|
case NPC_GRANDDARKNESS:
|