Jump to content

  •  

Bug Tracker Migration

June 3rd
Good news everyone! The staff has decided that it is time to slowly kill off this Bug Tracker. We will begin the process of slowly migrating from this Bug Tracker over to our Github Issues which can be found here: https://github.com/HerculesWS/Hercules/issues

Over the next couple of days, I will be closing off any opportunity to create new reports. However, I still will keep the opportunity to reply to existing Bug Reports. Doing this will allow us to slowly fix any bug reports we have listed here so that we can easily migrate over to our Issue Tracker.

Update - June 7th 2015: Creating new bug posts has been disabled. Please use our https://github.com/HerculesWS/Hercules/issues tracker to post bugs. Users are still able to reply to existing bug posts.

- Administration

Issue Information

  • #007708

  • 0 - None Assigned

  • Fixed

Issue Confirmations

  • Yes (2)No (0)
Photo

Mandragora Howl chance --- way too high

Posted by KyleZ on 14 September 2013 - 04:33 AM

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

it's supposed to be:

  • Succes chance is ( 25 + 10 * Skill Level )% - {( Target’s VIT + LUK ) / 5 }%


but in our own version,  currently it seems to be:

  • Succes chance is ( 25 + 10 * Skill Level )% - {( Target’s VIT + LUK ) / 500 }%


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

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?

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

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

Bump~

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

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

according to this: https://docs.google....xm3u3rRLQChg_Zo

here is the patch of the fix made by rytech in 3ceam
 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;



:wub: Thanks for the patch~

and bump btw :D

Will this be added to the next revision?

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

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

changed status to: Confirmed

Ind 
changed status to: Fixed