- Fixed chances for inflicting status changes on Spectral Spear (self), Ivory Lance and Pagdayaw

- Fixed Raid to deal damage in a 7x7 area in renewal (bugreport:7381)
- Fixed success chance of Storm Gust's freeze status change in pre-renewal, iROwiki says 150% and feedback from official server players confirmed that it is indeed 150%
- Second phase of the big status resistance update:
* Created a structure to consider status change source (we are still missing the information and use a copy of target instead right now, lighta is working on a solution)
* Entered the fully official formulas of all status changes based on an Aegis leak (since source is not in right now the level difference will always give "0")
* As tick_def2 is never equal to sc_def2, it will not use it by default anymore
* Applied Deep Sleep's kRO balance update, duration can now be reduced by 50ms for each int and each base level, minimum duration is 5000ms
* The final chance for the status change will now consider Aegis accuracy (everything between 0.01% and 0.09% should actually be 0.1%, etc.)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17206 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
playtester 2013-03-22 22:27:45 +00:00
parent 263aa1fc7f
commit afd58bbb45
5 changed files with 69 additions and 38 deletions

View File

@ -748,13 +748,13 @@
1474,Gae_Bolg,Gae Bolg,4,20,,2000,160,,3,0,0x00004082,7,2,34,4,60,1,5,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10; },{},{}
1475,Horseback_Lance,Equestrian's Spear,4,20,,3700,200,,4,0,0x00004082,7,2,34,4,75,1,5,{},{},{}
1476,Crescent_Scythe_,Crescent Scythe,4,20,,2500,180,,3,1,0x00004082,7,2,34,4,48,1,5,{ bonus bCritical,30; bonus bHit,10; },{},{}
1477,Spectral_Spear,Spectral Spear,4,20,,2000,170,,3,0,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus3 bAddEff,Eff_Confusion,10000,ATF_SELF|ATF_SHORT; bonus bHPGainValue,50; },{},{}
1477,Spectral_Spear,Spectral Spear,4,20,,2000,170,,3,0,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
1478,Ahlspiess,Ahlspiess,4,20,,1000,120,,3,0,0x00004080,7,2,34,4,65,1,5,{ bonus bIgnoreDefRace,RC_NonBoss; bonus bIgnoreDefRace,RC_Boss; bonus2 bAddRace,RC_DemiHuman,10; bonus3 bAutoSpell,"KN_PIERCE",5,30; },{},{}
1479,Spectral_Spear_,Spectral Spear,4,20,,2000,170,,3,1,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus3 bAddEff,Eff_Confusion,10000,ATF_SELF|ATF_SHORT; bonus bHPGainValue,50; },{},{}
1479,Spectral_Spear_,Spectral Spear,4,20,,2000,170,,3,1,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
1480,Gae_Bolg_,Gae Bolg,4,20,,2000,160,,3,2,0x00004082,7,2,34,4,60,1,5,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10; },{},{}
1481,Zephyrus_,Zephyrus,4,20,,2000,170,,3,3,0x00004082,7,2,34,4,48,1,5,{ bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,"MG_THUNDERSTORM",3,100; },{},{}
1482,BF_Lance1,Assaulter Lance,4,,,0,160,,3,0,0x00004082,7,2,34,3,80,1,5,{ bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bUnbreakableWeapon,0; },{},{}
1483,Ivory_Lance,Ivory Lance,4,20,,1000,160,,3,1,0x00004082,2,2,34,3,50,1,5,{ bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,100; bonus3 bAutoSpell,"LK_JOINTBEAT",1,100; skill "KN_SPEARSTAB",5; },{},{}
1483,Ivory_Lance,Ivory Lance,4,20,,1000,160,,3,1,0x00004082,2,2,34,3,50,1,5,{ bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,"LK_JOINTBEAT",1,100; skill "KN_SPEARSTAB",5; },{},{}
1484,Cardo,Cardo,4,20,,5600,150,,3,1,0x00000080,2,2,34,4,70,1,5,{ bonus bAspdRate,-10; bonus bDef,getrefine()/2; },{},{}
1485,Battle_Fork,Battle Fork,4,20,,700,112,,3,4,0x00004082,2,2,34,2,50,1,5,{},{},{}
1486,Krieger_Twohand_Spear1,Glorious Lance,4,20,,0,220,,3,0,0x00004082,7,2,34,4,80,1,5,{ bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,"KN_PIERCE","NPC_CRITICALWOUND",2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,"PA_PRESSURE",5,200; } },{},{}
@ -2430,7 +2430,7 @@
5260,Cookie_Hat,Cookie Hat,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,0,1,217,{ bonus bAgi,1; bonus bFlee2,5; bonus bCritAtkRate,5; },{},{}
5261,Silver_Tiara_,Silver Tiara,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,0,1,218,{ bonus bInt,2; if(BaseClass==Job_Mage) bonus bMatkRate,(JobLevel/20); if(Baseclass==Job_Acolyte) bonus bUseSPrate,-(JobLevel/10); if(BaseClass==Job_Archer) bonus bMaxSP,(JobLevel*2); },{},{}
5262,Gold_Tiara_,Golden Tiara,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,0,1,232,{ bonus bStr,2; bonus bUnbreakableHelm,0; if((readparam(bDex)<56)&&(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief)) bonus bDex,JobLevel/7; },{},{}
5263,Ati_Atihan_Hat,Pagdayaw,5,20,,100,,1,,0,0xFFFFFFFE,7,2,769,,20,1,303,{ bonus2 bSubEle,Ele_Water,1; bonus2 bSubEle,Ele_Earth,1; bonus2 bSubEle,Ele_Fire,1; bonus2 bSubEle,Ele_Wind,1; bonus2 bAddEff,Eff_Curse,3; },{},{}
5263,Ati_Atihan_Hat,Pagdayaw,5,20,,100,,1,,0,0xFFFFFFFE,7,2,769,,20,1,303,{ bonus2 bSubEle,Ele_Water,1; bonus2 bSubEle,Ele_Earth,1; bonus2 bSubEle,Ele_Fire,1; bonus2 bSubEle,Ele_Wind,1; bonus2 bAddEff,Eff_Curse,300; },{},{}
5264,Aussie_Flag_Hat,Australian Flag Hat,5,20,,500,,4,,0,0xFFFFFFFF,7,2,256,,0,1,304,{ bonus bAllStats,2; },{},{}
5265,Apple_Of_Archer_C,Apple of Archer,5,1,,0,,7,,0,0xFFFFFFFE,7,2,256,,1,0,72,{ bonus bDex,4; },{},{}
5266,Bunny_Band_C,Bunny Band,5,1,,0,,9,,0,0xFFFFFFFF,7,2,256,,1,0,15,{ bonus bMdef,5; bonus2 bSubRace,RC_DemiHuman,10; },{},{}

View File

@ -780,9 +780,9 @@
1474,Gae_Bolg,Gae Bolg,4,20,,2000,160,,3,0,0x00004082,7,2,34,4,60,1,5,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10; },{},{}
1475,Horseback_Lance,Equestrian's Spear,4,20,,3700,200,,4,0,0x00004082,7,2,34,4,75,1,5,{},{},{}
1476,Crescent_Scythe_,Crescent Scythe,4,20,,2500,180,,3,1,0x00004082,7,2,34,4,48,1,5,{ bonus bCritical,30; bonus bHit,10; },{},{}
1477,Spectral_Spear,Spectral Spear,4,20,,2000,170,,3,0,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus3 bAddEff,Eff_Confusion,10000,ATF_SELF|ATF_SHORT; bonus bHPGainValue,50; },{},{}
1477,Spectral_Spear,Spectral Spear,4,20,,2000,170,,3,0,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
1478,Ahlspiess,Ahlspiess,4,20,,1000,120,,3,0,0x00004080,7,2,34,4,65,1,5,{ bonus bIgnoreDefRace,RC_NonBoss; bonus bIgnoreDefRace,RC_Boss; bonus2 bAddRace,RC_DemiHuman,10; bonus3 bAutoSpell,"KN_PIERCE",5,30; },{},{}
1479,Spectral_Spear_,Spectral Spear,4,20,,2000,170,,3,1,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus3 bAddEff,Eff_Confusion,10000,ATF_SELF|ATF_SHORT; bonus bHPGainValue,50; },{},{}
1479,Spectral_Spear_,Spectral Spear,4,20,,2000,170,,3,1,0x00004082,7,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
1480,Gae_Bolg_,Gae Bolg,4,20,,2000,160,,3,2,0x00004082,7,2,34,4,60,1,5,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddRace,RC_Boss,10; },{},{}
1481,Zephyrus_,Zephyrus,4,20,,2000,170,,3,3,0x00004082,7,2,34,4,48,1,5,{ bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,"MG_THUNDERSTORM",3,100; },{},{}
1482,BF_Lance1,Assaulter Lance,4,,,0,160,,3,0,0x00004082,7,2,34,3,80,1,5,{ bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bUnbreakableWeapon,0; },{},{}
@ -2886,7 +2886,7 @@
5260,Cookie_Hat,Cookie Hat,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,0,1,217,{ bonus bAgi,1; bonus bFlee2,5; bonus bCritAtkRate,5; },{},{}
5261,Silver_Tiara_,Silver Tiara,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,0,1,218,{ bonus bInt,2; if(BaseClass==Job_Mage) bonus bMatkRate,(JobLevel/20); if(Baseclass==Job_Acolyte) bonus bUseSPrate,-(JobLevel/10); if(BaseClass==Job_Archer) bonus bMaxSP,(JobLevel*2); },{},{}
5262,Gold_Tiara_,Golden Tiara,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,0,1,232,{ bonus bStr,2; bonus bUnbreakableHelm,0; if((readparam(bDex)<56)&&(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief)) bonus bDex,JobLevel/7; },{},{}
5263,Ati_Atihan_Hat,Pagdayaw,5,20,,100,,1,,0,0xFFFFFFFE,7,2,769,,20,1,303,{ bonus2 bSubEle,Ele_Water,1; bonus2 bSubEle,Ele_Earth,1; bonus2 bSubEle,Ele_Fire,1; bonus2 bSubEle,Ele_Wind,1; bonus2 bAddEff,Eff_Curse,3; },{},{}
5263,Ati_Atihan_Hat,Pagdayaw,5,20,,100,,1,,0,0xFFFFFFFE,7,2,769,,20,1,303,{ bonus2 bSubEle,Ele_Water,1; bonus2 bSubEle,Ele_Earth,1; bonus2 bSubEle,Ele_Fire,1; bonus2 bSubEle,Ele_Wind,1; bonus2 bAddEff,Eff_Curse,300; },{},{}
5264,Aussie_Flag_Hat,Australian Flag Hat,5,20,,500,,4,,0,0xFFFFFFFF,7,2,256,,0,1,304,{ bonus bAllStats,2; },{},{}
5265,Apple_Of_Archer_C,Apple of Archer,5,1,,0,,7,,0,0xFFFFFFFE,7,2,256,,1,0,72,{ bonus bDex,4; },{},{}
5266,Bunny_Band_C,Bunny Band,5,1,,0,,9,,0,0xFFFFFFFF,7,2,256,,1,0,15,{ bonus bMdef,5; bonus2 bSubRace,RC_DemiHuman,10; },{},{}

View File

@ -257,7 +257,7 @@
211,1,6,1,0,0x1,0,10,1,no,0,0,0,weapon,0, RG_STEALCOIN,Mug
212,-1,6,1,-1,0x40,0,10,1,no,0,0,0,weapon,0, RG_BACKSTAP,Back Stab
213,0,0,0,0,0,0,5,0,no,0,0,0,none,0, RG_TUNNELDRIVE,Stalk
214,0,6,4,-1,0x2,1,5,1,no,0,0,0,weapon,0, RG_RAID,Sightless Mind
214,0,6,4,-1,0x2,3,5,1,no,0,0,0,weapon,0, RG_RAID,Sightless Mind
215,1,6,1,0,0x1,0,5,1,no,0,0,0,weapon,0, RG_STRIPWEAPON,Divest Weapon
216,1,6,1,0,0x1,0,5,1,no,0,0,0,weapon,0, RG_STRIPSHIELD,Divest Shield
217,1,6,1,0,0x1,0,5,1,no,0,0,0,weapon,0, RG_STRIPARMOR,Divest Armor

View File

@ -1001,9 +1001,9 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint
#ifdef RENEWAL
sc_start(bl,SC_FREEZE,65-(5*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
#else
//Tharis pointed out that this is normal freeze chance with a base of 300%
//On third hit, there is a 150% to freeze the target
if(tsc->sg_counter >= 3 &&
sc_start(bl,SC_FREEZE,300,skill_lv,skill_get_time2(skill_id,skill_lv)))
sc_start(bl,SC_FREEZE,150,skill_lv,skill_get_time2(skill_id,skill_lv)))
tsc->sg_counter = 0;
/**
* being it only resets on success it'd keep stacking and eventually overflowing on mvps, so we reset at a high value

View File

@ -6195,17 +6195,22 @@ void status_change_init(struct block_list *bl)
//the flag values are the same as in status_change_start.
int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int tick, int flag)
{
//Temporary to simulate *src which lighta will add [Playtester]
struct block_list *src = bl;
//Percentual resistance: 10000 = 100% Resist
//Example: 50% -> sc_def=5000 -> 25%; 5000ms -> tick_def=5000 -> 2500ms
int sc_def = 0, tick_def = -1; //-1 = use sc_def
//Linear resistance substracted from rate and tick after percentual resistance was applied
//Example: 25% -> sc_def2=2000 -> 5%; 2500ms -> tick_def2=2000 -> 500ms
int sc_def2 = 0, tick_def2 = -1; //-1 = use sc_def2
struct status_data* status;
struct status_change* sc;
int sc_def2 = 0, tick_def2 = 0;
struct status_data *status, *status_src;
struct status_change *sc;
struct map_session_data *sd;
nullpo_ret(bl);
nullpo_retr(src, tick?tick:1); //If no source, it can't be resisted (NPC given)
//Status that are blocked by Golden Thief Bug card or Wand of Hermod
if (status_isimmune(bl))
@ -6245,68 +6250,93 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
sd = BL_CAST(BL_PC,bl);
status = status_get_status_data(bl);
status_src = status_get_status_data(src);
sc = status_get_sc(bl);
if( sc && !sc->count )
sc = NULL;
switch (type) {
case SC_STUN:
case SC_POISON:
if( sc && sc->data[SC__UNLUCKY] )
return tick;
case SC_DPOISON:
sc_def = status->vit*100;
sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10;
if (sd) {
//For players: 60000 - 450*vit - 100*luk
tick_def = status->vit*75;
tick_def2 = status->luk*100;
} else {
//For monsters: 30000 - 200*vit
tick>>=1;
tick_def = (status->vit*200)/3;
}
break;
case SC_STUN:
if( sc && sc->data[SC__UNLUCKY] )
return tick;
case SC_SILENCE:
case SC_BLEEDING:
sc_def = status->vit*100;
sc_def2 = status->luk*10;
sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10;
tick_def2 = status->luk*10;
break;
case SC_SLEEP:
sc_def = status->int_*100;
sc_def2 = status->luk*10;
sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10;
tick_def2 = status->luk*10;
break;
case SC_DEEPSLEEP:
sc_def = status->int_*50;
tick_def = status->int_*10 + status_get_lv(bl) * 65 / 10; //Seems to be -1 sec every 10 int and -5% chance every 10 int.
break;
case SC_DECREASEAGI:
case SC_ADORAMUS: //Arch Bishop
if (sd) tick>>=1; //Half duration for players.
case SC_STONE:
//Impossible to reduce duration with stats
tick_def = 0;
tick_def2 = 0;
sc_def = status->mdef*100;
sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10;
tick_def = 0; //No duration reduction
break;
case SC_FREEZE:
sc_def = status->mdef*100;
sc_def2 = status->luk*10;
sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10;
tick_def2 = status_src->luk*-10; //Caster can increase final duration with luk
break;
case SC_CURSE:
//Special property: inmunity when luk is greater than level or zero
if (status->luk > status_get_lv(bl) || status->luk == 0)
//Special property: immunity when luk is zero
if (status->luk == 0)
return 0;
sc_def = status->luk*100;
sc_def2 = status->luk*10;
sc_def2 = status->luk*10 - status_get_lv(src)*10; //Curse only has a level penalty and no resistance
tick_def = status->vit*100;
tick_def2 = status->luk*10;
break;
case SC_BLIND:
if( sc && sc->data[SC__UNLUCKY] )
return tick;
sc_def = (status->vit + status->int_)*50;
sc_def2 = status->luk*10;
sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10;
tick_def2 = status->luk*10;
break;
case SC_CONFUSION:
sc_def = (status->str + status->int_)*50;
sc_def2 = status->luk*10;
sc_def2 = status_get_lv(src)*10 - status_get_lv(bl)*10 - status->luk*10; //Reversed sc_def2
tick_def2 = status->luk*10;
break;
case SC_DECREASEAGI:
case SC_ADORAMUS: //Arch Bishop
if (sd) tick>>=1; //Half duration for players.
sc_def = status->mdef*100;
tick_def = 0; //No duration reduction
break;
case SC_ANKLE:
if(status->mode&MD_BOSS) // Lasts 5 times less on bosses
tick /= 5;
sc_def = status->agi*50;
break;
case SC_DEEPSLEEP:
sc_def = status->int_*50;
tick_def = 0; //Linear reduction instead
tick_def2 = (status->int_ + status_get_lv(bl))*50; //kRO balance update lists this formula
break;
case SC_MAGICMIRROR:
case SC_ARMORCHANGE:
if (sd) //Duration greatly reduced for players.
tick /= 15;
sc_def2 = status_get_lv(bl)*20 + status->vit*25 + status->agi*10; // Lineal Reduction of Rate
tick_def2 = 0; //No duration reduction
break;
case SC_MARSHOFABYSS:
//5 second (Fixed) + 25 second - {( INT + LUK ) / 20 second }
@ -6337,7 +6367,6 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
break;
case SC_BITE: // {(Base Success chance) - (Target's AGI / 4)}
sc_def2 = status->agi*25;
tick_def2 = 0; //No duration reduction
break;
case SC_ELECTRICSHOCKER:
if( bl->type == BL_MOB )
@ -6399,11 +6428,9 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
sc_def += sc->data[SC_SIEGFRIED]->val3*100; //Status resistance.
}
//When no tick def, reduction is the same for both.
if(tick_def < 0)
//When tick def not set, reduction is the same for both.
if(tick_def == -1)
tick_def = sc_def;
if(tick_def2 < 0)
tick_def2 = sc_def2;
//Natural resistance
if (!(flag&8)) {
@ -6425,6 +6452,9 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
if( sd->sc.data[SC_COMMONSC_RESIST] )
rate -= rate*sd->sc.data[SC_COMMONSC_RESIST]->val1/100;
}
//Aegis accuracy
if(rate > 0 && rate%10 != 0) rate += (10 - rate%10);
}
if (!(rnd()%10000 < rate))
@ -6445,6 +6475,7 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
case SC_ANKLE:
case SC_MARSHOFABYSS:
case SC_STASIS:
case SC_DEEPSLEEP:
tick = max(tick, 5000); //Minimum duration 5s
break;
case SC_BURNING: