Issue information

Issue ID
#7708
Status
Fixed
Severity
None
Started
KyleZ
Sep 14, 2013 4:33
Last Post
gunzlinger
Oct 5, 2013 1:47
Confirmation
Yes (2)
No (0)

KyleZ - Sep 14, 2013 4:33

the basic chance is all right, well I can't say the same about the resist formula.

it's supposed to be:[quote][list]
[*]Succes chance is ( 25 + 10 * Skill Level )% - {( Target’s VIT + LUK ) / 5 }%
[/list][/quote]

but in our own version, currently it seems to be:[quote][list]
[*]Succes chance is ( 25 + 10 * Skill Level )% - {( Target’s VIT + LUK ) / [color=#ff0000][b]500[/b][/color] }%
[/list][/quote]

Here is it in status.c:[code=:0] case SC_MANDRAGORA: sc_def = (status->vit+status->luk)/5; break; [/code]
We know when sc_def reaches 10,000, one can get immune to a specific status, like:[code=:0] case SC_FREEZE: sc_def = status->mdef*100; [/code]

gunzlinger - Sep 14, 2013 14:21

The resist formula is not working at all - this is killing WoE in our server. Two genetics run in and Howl, and 9/10 of the defense is disabled. I should have 90% resistance, and I'm getting howled almost 75% of the time.
This was done over 500 trials. I think that should be enough evidence?

KyleZ - Sep 14, 2013 14:53

=3=
thanks for confirming this, and yeah this skill is quite imba especially when it has a success chance of 75%...

gunzlinger - Sep 14, 2013 15:07

Instant Cast Hell Plant + This skill + Hide tends to wreck most things.

KyleZ - Sep 16, 2013 14:50

Bump~

There is no PvP/WoE to talk about, before this is fixed.

gunzlinger - Sep 16, 2013 17:21

Support. Bump.

gunzlinger - Sep 21, 2013 3:15

Bump.
WoE with this is mostly spent casting "Hide" for a few seconds. lol
Or Body Relocation. -_-;

gunzlinger - Sep 23, 2013 17:07

Bump.

Michieru - Sep 24, 2013 11:43

according to this: [url="https://docs.google.com/document/pub?id=1TEIr4zpaXOUvgNFJ8pkFT41O0A_nxm3u3rRLQChg_Zo"]https://docs.google.com/document/pub?id=1TEIr4zpaXOUvgNFJ8pkFT41O0A_nxm3u3rRLQChg_Zo[/url]

here is the patch of the fix made by rytech in 3ceam[code=auto:0] db/re/skill_db.txt | 2 +- src/map/skill.c | 17 +++++++++++------ src/map/status.c | 5 +---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index 4b01cb3..831a5f4 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -1009,7 +1009,7 @@ 2489,11,6,1,0,0,0,10,1:2:3:4:5:6:7:8:9:10,no,0,0,0,weapon,0, GN_FIRE_EXPANSION_ACID,Fire Expansion Acid 2490,9,6,2,0,0x3,1,5,1,yes,0,0x80,2:3:4:5:6,none,0, GN_HELLS_PLANT,Hell's Plant 2491,0,6,1,0,0xC0,0,5,1,no,0,0,0,misc,0, GN_HELLS_PLANT_ATK,Hell's Plant Attack -2492,0,6,4,0,0x3,6:7:8:9:10,5,1,yes,0,0,0,none,0, GN_MANDRAGORA,Howling of Mandragora +2492,0,6,4,0,0x3,5:6:6:7:7,5,1,yes,0,0,0,none,0, GN_MANDRAGORA,Howling of Mandragora 2493,11,6,16,0,0x1,0,1,1,yes,0,0,0,none,0, GN_SLINGITEM,Sling Item 2494,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0, GN_CHANGEMATERIAL,Change Material 2495,0,6,4,0,0x1,0,2,1,no,0,0,0,none,0, GN_MIX_COOKING,Mix Cooking diff --git a/src/map/skill.c b/src/map/skill.c index 6ec9d2f..c9c1c27 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -9010,12 +9010,17 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case GN_MANDRAGORA: if( flag&1 ) { - if ( clif->skill_nodamage(bl, src, skill_id, skill_lv, - sc_start(bl, type, 25 + 10 * skill_lv, skill_lv, skill->get_time(skill_id, skill_lv))) ) - status_zap(bl, 0, status_get_max_sp(bl) * (25 + 5 * skill_lv) / 100); - } else - iMap->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), BL_CHAR, - src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill->castend_nodamage_id); + int chance = 25 + 10 * skill_lv - (status_get_vit(bl) + status_get_luk(bl)) / 5; + if ( chance < 10 ) + chance = 10;//Minimal chance is 10%. + if ( rand()%100 < chance ) {//Coded to both inflect the status and drain the target's SP only when successful. [Rytech] + sc_start(bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); + status_zap(bl, 0, status_get_max_sp(bl) * (25 + 5 * skill_lv) / 100); + } + } else if ( sd ) { + iMap->foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR,src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id); + clif->skill_nodamage(bl, src, skill_id, skill_lv, 1); + } break; case GN_SLINGITEM: diff --git a/src/map/status.c b/src/map/status.c index ee5d4bf..d08bf96 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4323,7 +4323,7 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang if(sc->data[SC_MARIONETTE]) int_ += ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF; if(sc->data[SC_MANDRAGORA]) - int_ -= 5 + 5 * sc->data[SC_MANDRAGORA]->val1; + int_ -= 4 * sc->data[SC_MANDRAGORA]->val1; if(sc->data[SC_COCKTAIL_WARG_BLOOD]) int_ += sc->data[SC_COCKTAIL_WARG_BLOOD]->val1; if(sc->data[SC_INSPIRATION]) @@ -6382,9 +6382,6 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti tick -= 1000 * ((iStatus->get_lv(bl) / 10) + ((sd?sd->status.job_level:0) / 5)); tick = max(tick,10000); break; - case SC_MANDRAGORA: - sc_def = (status->vit+status->luk)/5; - break; case SC_KYOUGAKU: tick -= 1000 * status_get_int(bl) / 20; break; [/code]

gunzlinger - Sep 24, 2013 11:44

Thanks a lot!

KyleZ - Sep 26, 2013 12:27

:wub: Thanks for the patch~

and bump btw :D

gunzlinger - Sep 26, 2013 13:07

Will this be added to the next revision?

gunzlinger - Sep 28, 2013 4:48

Bump since it's the weekend. ;o;
Maybe we can get it by next patch haha.

gunzlinger - Oct 2, 2013 1:35

Bump so it can get Malufett's attention...

gunzlinger - Oct 3, 2013 6:25

Bump...

Ind - Oct 5, 2013 1:26

Fixed in [url="https://github.com/HerculesWS/Hercules/commit/715016aa21dae454fbe430e9c806fd8cef769a27"]https://github.com/HerculesWS/Hercules/commit/715016aa21dae454fbe430e9c806fd8cef769a27[/url]

gunzlinger - Oct 5, 2013 1:47

Woot!
Thanks a lot!