Issue Information
-
#008548
-
0 - None Assigned
-
New
Issue Confirmations
-
Yes (0)No (0)
0
Homunculus Sera Skill - Pain Killer: Does not buff or work at all
Posted by Zia on 25 February 2015 - 08:17 AM
Pain Killer does not grant the lowered aspd, damage decrease, and endure status that it should.
Here's what it should do:
Skill Description
Sera attacks a target with a paralyzing poison, slowing the target's ASPD and decreasing the damage it receives. Targets inflicted with the Paralysis status will be under the Endure status for the skill's duration.
Note:
Results of testing in our test server
Buff Test:
Damage Reduction Test:
Here's what it should do:
Skill Description
Sera attacks a target with a paralyzing poison, slowing the target's ASPD and decreasing the damage it receives. Targets inflicted with the Paralysis status will be under the Endure status for the skill's duration.
Note:
- The damage reduction provided is a flat reduction of (SkillLevel*200)*(HomunculusLevel/150) upto a maximum of 1000.
- The damage reduction is applied after all % based reductions with the exception of Mental Strength.
- The endure effect is lost upon receiving 7 hits.
- Skills that hit more than once (e.g. - Firebolt) will have the damage reduction applied to each hit.
- Skills that hit more than once but calculate the entire damage and then divide by number of hits (e.g. - Arrow Storm) will have the damage reduction apply only once.
Results of testing in our test server
Buff Test:
Damage Reduction Test:
bump
The whole block is actually wrong (status.c).
What it's supposed to do is apply level 7 Endure, with normal duration and hit limit.
Here's a ghetto solution:
case SC_PAIN_KILLER: //[Lighta] need real info val2 = 2*val1; //aspd reduction % val3 = 2*val1; //dmg reduction % if(sc->data[SC_NEEDLE_OF_PARALYZE]) sc_start(src, bl, SC_ENDURE, 100, val1, tick); //start endure for same duration break;It only applies Endure (wrong duration too) if you are affected by Needle of Paralyze, no idea where this wrong info was fished. Damage and ASPD reductions are wrong as well.
What it's supposed to do is apply level 7 Endure, with normal duration and hit limit.
Here's a ghetto solution:
case SC_PAIN_KILLER: val2 = 10 * val1; // ASPD reduction % val3 = min((( 200 * val1 ) * status_get_lv(src)) / 150, 1000); // flat DMG reduction up to a maximum of 1000 [iRO Wiki] sc_start(src, bl, SC_ENDURE, 100, 7, tick); // Starts level 7 Endure break;
if (sc->data[SC_PAIN_KILLER]) bonus -= sc->data[SC_PAIN_KILLER]->val2;
if( sc->data[SC_PAIN_KILLER]) aspd_rate += sc->data[SC_PAIN_KILLER]->val2 * 10;
Edited by Anisotropic Defixation, 25 October 2015 - 06:22 PM.
Worth a try since this report isn't getting any love at all.
I was told there's a fix like 3 months ago or so but I dunno why its not being added
I was told there's a fix like 3 months ago or so but I dunno why its not being added
Edited by Zia, 19 June 2015 - 05:39 PM.
So I tried your fix.
Plus, I edited skill_db
from
8021,1,6,1,0,0x1,0,5,1,no,0,0,0,none,0, MH_PAIN_KILLER,Pain Killer
to
8021,1,6,16,0,0x1,0,5,1,no,0,0,0,none,0, MH_PAIN_KILLER,Pain Killer
and battle.c
from
if(sc->data[SC_PAIN_KILLER]){
damage -= sc->data[SC_PAIN_KILLER]->val3/100;
to
if(sc->data[SC_PAIN_KILLER]){
damage -= sc->data[SC_PAIN_KILLER]->val3;
damage = max(1,damage);
and it worked. buff could be cast on friendly units, lasted for 60 seconds, was only receiving 1 damage from every hit, etc.
Plus, I edited skill_db
from
8021,1,6,1,0,0x1,0,5,1,no,0,0,0,none,0, MH_PAIN_KILLER,Pain Killer
to
8021,1,6,16,0,0x1,0,5,1,no,0,0,0,none,0, MH_PAIN_KILLER,Pain Killer
and battle.c
from
if(sc->data[SC_PAIN_KILLER]){
damage -= sc->data[SC_PAIN_KILLER]->val3/100;
to
if(sc->data[SC_PAIN_KILLER]){
damage -= sc->data[SC_PAIN_KILLER]->val3;
damage = max(1,damage);
and it worked. buff could be cast on friendly units, lasted for 60 seconds, was only receiving 1 damage from every hit, etc.