Northlander Hewing

It Does What It Says on the Tin: Resolved Issues

Moderators: Moderator, Quality Control, Developer, DM

arakes99
Retired Staff
Posts: 441
Joined: Thu Dec 30, 2010 10:42 pm

Re: Northlander Hewing

Unread post by arakes99 »

Crits on this have never worked. Not since I first tried the feat.

Crit failed to confirm???????????????? I played a character with this for one hour during 100% RcR to figure that out.

If it's not fixable, just add it to the feat description. Don't try to make people pointing out the flaw look like they don't know how to test their character. Build does not matter, the feat bugs on crits.
User avatar
Valefort
Retired Admin
Posts: 9779
Joined: Thu Apr 28, 2011 5:07 pm
Location: France, GMT +2

Re: Northlander Hewing

Unread post by Valefort »

Crits don't fail to confirm, their damage is just not maximized.
Mealir Ostirel - Incorrigible swashbuckler
User avatar
dedude
Retired Staff
Posts: 1550
Joined: Wed Nov 02, 2016 11:21 am

Re: Northlander Hewing

Unread post by dedude »

Yes the crits confirm fine, just without maximizing they average out at about the same damage as a normal maximized non-crit.
User avatar
Valefort
Retired Admin
Posts: 9779
Joined: Thu Apr 28, 2011 5:07 pm
Location: France, GMT +2

Re: Northlander Hewing

Unread post by Valefort »

That's completely build dependant here.
Mealir Ostirel - Incorrigible swashbuckler
User avatar
dedude
Retired Staff
Posts: 1550
Joined: Wed Nov 02, 2016 11:21 am

Re: Northlander Hewing

Unread post by dedude »

Let me guess, building with unarmed strike is the worst possible combination? :|
arakes99
Retired Staff
Posts: 441
Joined: Thu Dec 30, 2010 10:42 pm

Re: Northlander Hewing

Unread post by arakes99 »

You also don't get the 2x str damage on crits. Crit damage with an x2 weapon is almost no higher than a normal hit. Unarmed you are actually doing less damage this way, ya because you don't get the x2 to str and the maximized. Just 2x your base, non feat dps.
User avatar
Valefort
Retired Admin
Posts: 9779
Joined: Thu Apr 28, 2011 5:07 pm
Location: France, GMT +2

Re: Northlander Hewing

Unread post by Valefort »

Yes since you have a lot of varying damage, weapon using builds usually only have their weapon damage to maximize.
Mealir Ostirel - Incorrigible swashbuckler
User avatar
Akroma666
Posts: 1888
Joined: Mon Jan 16, 2012 2:24 pm
Location: California

Re: Northlander Hewing

Unread post by Akroma666 »

So.. is there talk to allow this feat to get the bonus damage on a critical? Or is it working as intended?

Also, would this be available to shapechange in the future? It would be nice to use this for bear warrior to overcome DR.
Storm - The Blade Flurry
Druegar Grizzleclaw - The Mountain Ruin Tsar
Akroma Thuul - The Creepy Enchanter
Liliana Duskblade - The B*tch of Bane
Jamie Dawnbringer - The Light in the Darkness
User avatar
Theodore01
Recognized Donor
Posts: 2927
Joined: Wed Feb 16, 2011 5:32 pm

Re: Northlander Hewing

Unread post by Theodore01 »

And do we want northlander hewing fist monks with a flat 30++ damage a punch ?
User avatar
Valefort
Retired Admin
Posts: 9779
Joined: Thu Apr 28, 2011 5:07 pm
Location: France, GMT +2

Re: Northlander Hewing

Unread post by Valefort »

Yes for the shapechange, as for computing critical hits correctly don't coun't on it for now, I have no idea how to fix this.

NH now correctly halves the attacks, even for greater flurry monks so I think that's fine.
Mealir Ostirel - Incorrigible swashbuckler
User avatar
Akroma666
Posts: 1888
Joined: Mon Jan 16, 2012 2:24 pm
Location: California

Re: Northlander Hewing

Unread post by Akroma666 »

Valefort wrote:Yes for the shapechange, as for computing critical hits correctly don't coun't on it for now, I have no idea how to fix this.

NH now correctly halves the attacks, even for greater flurry monks so I think that's fine.
Is the code available for public view?
Storm - The Blade Flurry
Druegar Grizzleclaw - The Mountain Ruin Tsar
Akroma Thuul - The Creepy Enchanter
Liliana Duskblade - The B*tch of Bane
Jamie Dawnbringer - The Light in the Darkness
User avatar
Theodore01
Recognized Donor
Posts: 2927
Joined: Wed Feb 16, 2011 5:32 pm

Re: Northlander Hewing

Unread post by Theodore01 »

Valefort wrote:NH now correctly halves the attacks, even for greater flurry monks so I think that's fine.
Doesn't a monk get his first 3 (of4) flurrying hewing attacks a full bab.
That and 1d30 maximised looks pretty overpowered or not ?
User avatar
Valefort
Retired Admin
Posts: 9779
Joined: Thu Apr 28, 2011 5:07 pm
Location: France, GMT +2

Re: Northlander Hewing

Unread post by Valefort »

Northlander Hewing removes the last attacks on the attack schedule so a monk would lose the bugged flurry attack and then the attacks with the least AB.
Is the code available for public view?
Here is it if you want :

Code: Select all

/*
Rasael 
second pass by Valefort
*/

#include "nwnx_clock" 


void RecurNorthlander(object oPC)
{
	if(GetIsObjectValid(oPC) == FALSE)
		return;
	
	if(GetArea(oPC) == OBJECT_INVALID)
	{
		DelayCommand(6.0f, RecurNorthlander(oPC));
		return;
	}
	
	ExecuteScript("bg_feat_northlanderhewing", oPC);
} 

int CountTotalAttacks(object oPC)
{
	int iTotalAttacks = 1;
	
	// BAB
	
	int iBAB = GetTRUEBaseAttackBonus(oPC);	
	
	if(iBAB >= 25) 				{iTotalAttacks = 6;}
	else if(iBAB >= 21) 		{iTotalAttacks = 5;}
	else if(iBAB >= 16) 		{iTotalAttacks = 4;}
	else if(iBAB >= 11) 		{iTotalAttacks = 3;}
	else if(iBAB >= 6) 			{iTotalAttacks = 2;}
	
	// Haste, let's do this here before TWF
	
	if (GetHasSpellEffect( 647, oPC) == TRUE)
    {
		iTotalAttacks += 1;
	}
	
	// Flurry of blows, normal flurry is +1 attacks, greater flurry is +2. Let's ignore the bugged bonus attack here since it's not doubled by TWF we'll add it at the end
	
	if (GetActionMode(oPC, ACTION_MODE_FLURRY_OF_BLOWS) != FALSE)
	{
		iTotalAttacks += 1;
		
		// Greater Flurry
		if(GetLevelByClass(5, oPC) > 10) 
		{
			iTotalAttacks += 1;
		}	
	}	
	
	// TWF, let's first check if there is actually a weapon in the off-hand that is different from the main hand one
	
	object oWeaponA = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
	object oWeaponB = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
	
	if(GetIsObjectValid(oWeaponB) == TRUE && oWeaponB != oWeaponA) 
	{
		// PTWF, doubles the number of attacks		
		if (GetHasFeat(1972, oPC, TRUE) || GetHasFeat(1973, oPC, TRUE))
		{
			iTotalAttacks = 2*iTotalAttacks;
		}
		// GTWF		
		else if (GetHasFeat(1099, oPC, TRUE) || GetHasFeat(1736, oPC, TRUE))
		{
			iTotalAttacks += 3;
		}		
		// ITWF		
		else if (GetHasFeat(20, oPC, TRUE) || GetHasFeat(1735, oPC, TRUE))
		{
			iTotalAttacks += 2;
		}		
		// TWF		
		else if (GetHasFeat(41, oPC, TRUE) || GetHasFeat(1734, oPC, TRUE))
		{
			iTotalAttacks += 1;
		}
	}
	
	// bugged bonus attack from flurry of blows
	
	if (GetActionMode(oPC, ACTION_MODE_FLURRY_OF_BLOWS) != FALSE)
	{
		iTotalAttacks += 1;
	}
	
	return iTotalAttacks;
}

void main()
{
	object oPC = OBJECT_SELF;
	int iTime = GetUNIXTime();
	int iNorthlanderHewingActive = GetLocalInt(oPC, "bg_northlander_hewing");
	
	if(iNorthlanderHewingActive == 0) 
		{return;}
		
	int iNorthlanderHewingTimestamp = GetLocalInt(oPC, "bg_northlander_hewingA");
	
	if(iNorthlanderHewingTimestamp != 0 && iNorthlanderHewingTimestamp + 6 > iTime)
		{return;}
	
	SetLocalInt(oPC, "bg_northlander_hewingA", iTime);
	
	int iTotalAttacks = CountTotalAttacks(oPC)/2;

	// Total number of attacks divided by 2
	
	effect eAttacks = EffectModifyAttacks(-iTotalAttacks);
	
	int iPenalty = 2;
	int iStrengthMod = GetAbilityModifier(ABILITY_STRENGTH, oPC);
	effect eAC = EffectACDecrease(iPenalty);
	effect eAB = EffectAttackDecrease(iPenalty);
	effect eLink = EffectLinkEffects(eAttacks, eAC);
	eLink = EffectLinkEffects(eLink, eAB);
	effect eDamage = EffectMaxDamage();
	eLink = EffectLinkEffects(eLink, eDamage);
	
	// We want EB and effect damage increase to stack so we'll add the EB of the weapon to the iStrengthMod as the effectDamageIncrease function overrides the weapon's EB
	object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
	itemproperty ipWeapon = GetFirstItemProperty(oWeapon);

	while(GetIsItemPropertyValid(ipWeapon))
	{					
		if (GetItemPropertyType(ipWeapon) == ITEM_PROPERTY_ENHANCEMENT_BONUS)
		{
			iStrengthMod += GetItemPropertyCostTableValue(ipWeapon); //Enhance bonus	
		}						
		ipWeapon = GetNextItemProperty(oWeapon);
	}
	
	if(iStrengthMod > 0)
	{
		int nDamageBonus = DAMAGE_BONUS_1;
		if(iStrengthMod >= 24) {nDamageBonus = DAMAGE_BONUS_24;}		
		else if(iStrengthMod >= 23) {nDamageBonus = DAMAGE_BONUS_23;}
		else if(iStrengthMod >= 22) {nDamageBonus = DAMAGE_BONUS_22;}
		else if(iStrengthMod >= 21) {nDamageBonus = DAMAGE_BONUS_21;}
		else if(iStrengthMod >= 20) {nDamageBonus = DAMAGE_BONUS_20;}
		else if(iStrengthMod >= 19) {nDamageBonus = DAMAGE_BONUS_19;}
		else if(iStrengthMod >= 18) {nDamageBonus = DAMAGE_BONUS_18;}
		else if(iStrengthMod >= 17) {nDamageBonus = DAMAGE_BONUS_17;}
		else if(iStrengthMod >= 16) {nDamageBonus = DAMAGE_BONUS_16;}
		else if(iStrengthMod >= 15) {nDamageBonus = DAMAGE_BONUS_15;}
		else if(iStrengthMod >= 14) {nDamageBonus = DAMAGE_BONUS_14;}
		else if(iStrengthMod >= 13) {nDamageBonus = DAMAGE_BONUS_13;}
		else if(iStrengthMod >= 12) {nDamageBonus = DAMAGE_BONUS_12;}
		else if(iStrengthMod >= 11) {nDamageBonus = DAMAGE_BONUS_11;}
		else if(iStrengthMod >= 10) {nDamageBonus = DAMAGE_BONUS_10;}
		else if(iStrengthMod >= 9) {nDamageBonus = DAMAGE_BONUS_9;}
		else if(iStrengthMod >= 8) {nDamageBonus = DAMAGE_BONUS_8;}
		else if(iStrengthMod >= 7) {nDamageBonus = DAMAGE_BONUS_7;}
		else if(iStrengthMod >= 6) {nDamageBonus = DAMAGE_BONUS_6;}
		else if(iStrengthMod >= 5) {nDamageBonus = DAMAGE_BONUS_5;}
		else if(iStrengthMod >= 4) {nDamageBonus = DAMAGE_BONUS_4;}
		else if(iStrengthMod >= 3) {nDamageBonus = DAMAGE_BONUS_3;}
		else if(iStrengthMod >= 2) {nDamageBonus = DAMAGE_BONUS_2;}
		eLink = EffectLinkEffects(EffectDamageIncrease(nDamageBonus, DAMAGE_TYPE_BLUDGEONING, -1), eLink);
	}
	
	ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SetEffectSpellId(SupernaturalEffect(eLink), 1475), oPC, 6.0f);	
	DelayCommand(6.0f, RecurNorthlander(oPC));
}	
Mealir Ostirel - Incorrigible swashbuckler
User avatar
Akroma666
Posts: 1888
Joined: Mon Jan 16, 2012 2:24 pm
Location: California

Re: Northlander Hewing

Unread post by Akroma666 »

Ew.. that sucker is messy. Should have known.
Storm - The Blade Flurry
Druegar Grizzleclaw - The Mountain Ruin Tsar
Akroma Thuul - The Creepy Enchanter
Liliana Duskblade - The B*tch of Bane
Jamie Dawnbringer - The Light in the Darkness
User avatar
dedude
Retired Staff
Posts: 1550
Joined: Wed Nov 02, 2016 11:21 am

Re: Northlander Hewing

Unread post by dedude »

That's a pretty big script to have running on a heartbeat. Isn't it at bab 26 you get 6 apr? I guess it's EffectMaxDamage() that doesn't calculate properly on crits. Not sure that is solveable short of redefining the feat effect.

EDIT

Code: Select all

while(GetIsItemPropertyValid(ipWeapon))
   {               
      if (GetItemPropertyType(ipWeapon) == ITEM_PROPERTY_ENHANCEMENT_BONUS)
      {
         iStrengthMod += GetItemPropertyCostTableValue(ipWeapon); //Enhance bonus   
      }                  
      ipWeapon = GetNextItemProperty(oWeapon);
   }
Can a weapon have multiple enhancement bonuses? Weapon +3 and GMW +5 maybe? If so they probably shouldn't stack.
Post Reply

Return to “Solved Problems”