Main Menu

Assassin's trick: Removal of Sneak attack immunity

Started by drakaden, Dec 06, 2015, 12:58 AM

Previous topic - Next topic

drakaden

This is inspired from the dungeon & dragon online game.

ddowiki.com/page/Assassin_enhancements

Assassin's Trick: Activate: Target opponent loses 25% of their fortification and 25% of their immunity to sneak attacks for 15 seconds. (Cooldown: 6 seconds)

Basically i am suggesting an incentive to bring assassin PrC to level 10, by creating a feat that can remove the sneak attack immunity from a target, it can be passive (at a certain % chance for it to trigger) or active (Infinite use with a cooldown between each use) at this level, this would bring the rogue characters up par to their fighter weapon masters and mages and arcane archers team mates and that would collectively help anyone who can do sneak damage.

Important tidbit, if set as an active feat it must be a free action and doesn't break stealth, the feat does not cause damage.

Nokteronoth

I don't think this is possible in game since immunity to crits/sneaks is typically built into a creature skin. In order to remove it, that skin would have to be changed. Far as I know anyways.

~BR

Remmy

That might me hard to do in NWN because of the manner in which such immunities are applied. They are often on the creature skin and unless I am mistaken such a feat would have to cause the creature to equip a second, identical skin, minus the sneak attack immunity, for the duration of the effect.

drakaden

Actually the removal of specific properties on an item is possible, i can't remember it on the top of my head but it's possible.

Edge

drakaden Avatar
Important tidbit, if set as an active feat it must be a free action and doesn't break stealth, the feat does not cause damage.
This is probably the part that is most difficult to do in NWN. Using any action while in Stealth Mode tends to turn it off. Using an item, activating a feat or spell, anything.

Not breaking invisibility is a little easier, since that requires you doing something hostile, but I don't think it's possible to create an activated effect that won't disable Stealth Mode.

And that's hardcoded and blackboxed, I'm 99% sure, so it's probably not something we can change.
Kestal | Bernadette | Eden | Tonya | Vaszayne | Koravia | Alastriona | Natascha | Emari | Urilias-Zhjaeve | Hiltrude | Tatya | Dioufn | Aida | Cyrillia | Megan | etc.
DM Tiamat | Szuriel | Maedhbh | Cassilda


drakaden

Edge Avatar
drakaden Avatar
Important tidbit, if set as an active feat it must be a free action and doesn't break stealth, the feat does not cause damage.
This is probably the part that is most difficult to do in NWN. Using any action while in Stealth Mode tends to turn it off. Using an item, activating a feat or spell, anything.

Not breaking invisibility is a little easier, since that requires you doing something hostile, but I don't think it's possible to create an activated effect that won't disable Stealth Mode.

And that's hardcoded and blackboxed, I'm 99% sure, so it's probably not something we can change.
I once seen some server using feats that doesn't trigger a "using" action, as if it was a free action, though i do not remember if it break stealth or not, but if it's just too difficult there's a couple turnaround that can be usedL turn on stealth by scripting, or giving temporary invisibility, or making the feat throwing an attack.

drakaden

This is part of an old script i had made for some anvil forging that could remove selective properties on gear years ago:

object oPC = GetPCSpeaker();
object oNPC = OBJECT_SELF;
object oOre;
oOre = GetItemPossessedBy(GetPCSpeaker(), "Obsidianore1");
object oAnvil = GetNearestObjectByTag("ForgeAnvil1", oPC);

object oAnvilItem;
oAnvilItem = GetFirstItemInInventory(oAnvil);

int iBadProperty;
iBadProperty = 0;

itemproperty ip;

ip = GetFirstItemProperty(oAnvilItem);

while (GetIsItemPropertyValid(ip) &&
iBadProperty !=1)
{

if (GetItemPropertyType(ip) == ITEM_PROPERTY_DAMAGE_VULNERABILITY ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_ABILITY_SCORE ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_AC ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_DAMAGE ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_ENHANCEMENT_MODIFIER ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_SAVING_THROWS ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_SAVING_THROWS_SPECIFIC ||
GetItemPropertyType(ip) == ITEM_PROPERTY_DECREASED_SKILL_MODIFIER ||
GetItemPropertyType(ip) == ITEM_PROPERTY_NO_DAMAGE ||
GetItemPropertyType(ip) == ITEM_PROPERTY_WEIGHT_INCREASE)
{
RemoveItemProperty(oAnvilItem, ip);
SendMessageToPC(oPC, "You succeeed to rectify the item, a bad property has been removed.");
iBadProperty = 1;
}

ip = GetNextItemProperty(oAnvilItem);
}


If you manage to somehow make this line work in the code you can get yer backstab immunity removed from the piece of gear, it's been a long time since i last did some major scripting so i would need to do some researching myself:
ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_BACKSTAB)

Edge

I'll leave script questions up to our scripter, but i wouldn't get my hopes up for something like that.
Kestal | Bernadette | Eden | Tonya | Vaszayne | Koravia | Alastriona | Natascha | Emari | Urilias-Zhjaeve | Hiltrude | Tatya | Dioufn | Aida | Cyrillia | Megan | etc.
DM Tiamat | Szuriel | Maedhbh | Cassilda


drakaden

Edge Avatar
I'll leave script questions up to our scripter, but i wouldn't get my hopes up for something like that.
Yea, no sweat, just throwing the idea.

Deleted

First, DDO resource is not a valid 3.5 resource.  It's 4th edition, and an MMO.  We're generally against house ruling in abilities.

Second, sneak immunity is built in for a reason and balance issues with dungeons.  Like it or not, it's there for a reason.

Third, if we were to allow this, it would be more than an assassin's trick.  Rogues, at the very least, would have it as a feat option after level 10.

Garage Trashcan

belladonna Avatar
Dec 6, 2015 15:50:55 GMT -5  @belladonna said:
First, DDO resource is not a valid 3.5 resource.  It's 4th edition, and an MMO.  We're generally against house ruling in abilities.

Second, sneak immunity is built in for a reason and balance issues with dungeons.  Like it or not, it's there for a reason.

Third, if we were to allow this, it would be more than an assassin's trick.  Rogues, at the very least, would have it as a feat option after level 10.



While you're correct, DDO is the 3.5 MMO, Neverwinter (Online) is the 4th Ed MMO.

Personally I'd prefer if sneak attack immunity were just straight up removed from most creatures like later editions did. The only thing broke. About it is how easy it is to get sneak attacks in NWN, which is why it won't happen.
Torsten Solberg - Jovial Jotunkind
Halonya Gabranth - Paladin of Hoar
Alethra Duskmantle - Spoiled Socialite
Retired PCs: Felix Greentrack, Nikolai Mikhailovich

suddenperihelion

Edge Avatar
This is probably the part that is most difficult to do in NWN. Using any action while in Stealth Mode tends to turn it off. Using an item, activating a feat or spell, anything.

Not breaking invisibility is a little easier, since that requires you doing something hostile, but I don't think it's possible to create an activated effect that won't disable Stealth Mode.

And that's hardcoded and blackboxed, I'm 99% sure, so it's probably not something we can change.

Actually the -hardest- part about this proposal is making it work with Pale Masters, as they gain sneak attack immunity as a class feature rather than as an item property.

Nevertheless, I managed to pull it off on another server. So it is technically possible. But it sounds like this is rejected on balance grounds anyhow, so moot point.

Atomic Twinkie

*cough cough*
If player has sneak attack
then check if target is immune
if target is immune
then deal [x] damage (where X is a flat number based on rogue+assassin levels)
else do nothing.

The only REAL big problem with this is that it'd be a small script that would be running every single time a character does a sneak attack. Unless it's tied to an ability then it'd run for the amount of time the ability runs for. Could potentially be cool.

Edit: Can even make it slashing or piercing damage, so it does give them a bit more capability against undead but doesn't instantly make them undead killing monsters.

suddenperihelion

There isn't, in default NWN, a hook to fire a script when a sneak attack happens. However, you could work around that by using a global OnHit event to check every time an attack happens, then ask if the target is in a sneak attack situation, and if so do extra damage if the target is immune to sneak attack (which would basically be a duplicate of what the engine already does internally).

Duplication tends to be a bit less computationally efficient in terms of use of resources on the host machine, so it wouldn't be my first choice of how to do it. My experience suggests that the overwhelming majority of resource use is generated by AI scripts, and stuff like the global OnHits I have done are essentially negligible in their resource use (Linux has an NWNX plugin that lets you monitor exactly which scripts/processes are eating up resources).

However, I was under the impression that a global OnHit was an architectural choice that C-D had decided against.

Atomic Twinkie

Global OnHit counters tend to cause massive amounts of lag, since it's constantly waiting, and when there's, let's say 2 parties killing things with an average of 3-5 hits per melee person, sometimes more, you start getting like ~12 requests per 6 seconds that it has to sit there and figure out. That's not saying it's a massive ask for a small script, but it adds to everything else that's already running. That's why a skill that you acquire on a level (which I believe would require a .tlk update anyways) that lets you hit the button and for some time the script runs for only you would be more efficient.