More and more attacks

Hello !
Un des problèmes de Neverwinter Nights 2 est la lenteur des attaques en début de partie (une par round, et un round de SIX SECONDES).
Y aurait-il moyen de refiler, par script ou don en jeu, une attaque de plus dès le niveau 1 au personnage joueur?
Bon confinement pour les concernés, restez actifs !

Hello !
One of the problems of Neverwinter Nights 2 is the slowness of the attacks at the start of the game (one per round, and one round of SIX SECONDS).
Would it be possible to pass on, by script or in-game attribute, one more attack for a level 1 player character?
Good containment for those concerned, stay active!

Yes, it would be possible to do so via script.
Your best bet is to implement this on the On Equip event script, since it’s fired whenever a character equips something, and whenever a game is loaded.

The name of the script is x2_mod_def_equ , once you save and compile it, you should move it to the override folder (both files, .nss and .ncs).

It might not work properly if you load a saved game and a module restart might be required, but I’m not sure about that, honestly.

Keep in mind that this effect is not shown on your character sheet, but during combat you will notice the extra attack. (it’s like the Frenzied Bersker’s Frenzy extra attack).
If a character dies, they will lose the extra attack, but you can just give it back by unequipping and re-equipping any item.

Here’s the involved part of the script and how it would be modified:

#include "x2_inc_switches"
#include "x2_inc_intweapon"
#include "nw_i0_spells"

const int FX_ADDATTACK = -333;

void ApplyAdditionalAttack(object oPC)
{
	if (GetHasSpellEffect(FX_ADDATTACK, oPC) == TRUE) return;
	effect eFX = EffectModifyAttacks(1);
	eFX = SupernaturalEffect(eFX);
	eFX = SetEffectSpellId(eFX, FX_ADDATTACK);
	ApplyEffectToObject(DURATION_TYPE_PERMANENT, eFX, oPC);
}

void main()
{
    object oItem = GetPCItemLastEquipped();
    object oPC   = GetPCItemLastEquippedBy();
	if (GetBaseAttackBonus(oPC) < 6) ApplyAdditionalAttack(oPC);
	else RemoveSpecificEffect(FX_ADDATTACK, oPC);
//Remaning part of the script below here
}
3 Likes

Or just use the console to giveitem nw_it_mpotion004
(Potion of Speed)
By default it creates stacks of ten.