Skip to content

Feint feat possible ?

i read somewhere there is no chance to change sneak attack/crit immunity cuz it is hardcoded.

I was thinking to create custom feat which gives you spell or ability to use.
Using this spell/ability is full action
DC would be 1d20 or static 8 + bluff skill vs Will save enemy
If enemy fail it will take 1d6 dmg per 2 levels of rogue class ala sneak attack + 1d6 + str
If enemy is immune to critical dmg he is immune to this spell/ability

or maybe someone have better idea ?

Comments

  • TerrorbleTerrorble Member Posts: 188
    Can you commandeer one of the player tool feats to target a melee combatant and make a full attack action animation? I think so!? You'd have to check out ~probably~ feat.2da and see. (I'd try to mimic the entries of disarm or knockdown for starters.)

    Otherwise, you can script the DC, Save, immunity check, damage and feedback into the associated player tool script. You could try to attach the feat to the player via scripting or by making it a class feat and add it to their radial menu in the iprp_feat.2da (I forget, it's been a while.)
  • QuilistanQuilistan Member Posts: 193
    Sounds awesome!

    If there are cool downs on knockdown and hide in plain sight. This would make a really fun addition.
    knockdown, stab, feint, stab, stealth...

    feat and good playing needed to get around the cooldowns.

    I have not delved into adjusting/creating feats yet, but If you figure this out PLEASE post.

    I have always wanted to see a "Charge" feat for fighter types.

    Good Luck!
  • TerrorbleTerrorble Member Posts: 188
    FWIW, I made this a long time ago. It allowed me to use player tool 1 as a limited HiPS for the panther and to simulate a charge for the boar and minotaur shapes. The charge can be activated in the middle of doing things which makes it wonky, but it's fun. (you have to add player tool 1 to custom skins for each shape and edit shifter.2da so the shapes use those skins. also, I used custom shifting scripts from Iznoghoud i.e. I think, ScanForPolymorphEffect() )

    #include "ws_inc_shifter"
    void main()
    {
        object oPC = OBJECT_SELF;
        object oTarget = GetSpellTargetObject();
    
        //Limit uses
        if( GetLocalInt(oPC,"PLTOOL1") ) {
            SendMessageToPC(oPC,"You cannot activate this ability yet.");
            return;
        }
    
    
        //Disallow use if not in a shape
        if( ScanForPolymorphEffect(oPC) == -2 ) {
            SendMessageToPC(oPC,"Only usable while polymorphed.");
            return;
        }
    
    
        //-------------------------------------------------------------------------
        //LIMITED HIPS FOR PANTHER
        //-------------------------------------------------------------------------
    
        if( GetAppearanceType(oPC) == 202 /*APPEARANCE_TYPE_CAT_PANTHER*/ )
        {
            SetLocalInt(oPC,"PLTOOL1",1);
            DelayCommand(18.0,DeleteLocalInt(oPC,"PLTOOL1"));
    
            object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPC);
            itemproperty ipHIPS = ItemPropertyBonusFeat(IP_CONST_FEAT_HIDE_IN_PLAIN_SIGHT);
            IPSafeAddItemProperty(oSkin,ipHIPS,1.0f,X2_IP_ADDPROP_POLICY_IGNORE_EXISTING,FALSE,FALSE);
    
            DelayCommand(0.1,SetActionMode(oPC,ACTION_MODE_STEALTH,TRUE));
        }
    
    
        //-------------------------------------------------------------------------
        //BOAR CHARGE
        //The boar can charge someone from 10 to 25 meters away
        //It jumps you to their location and grants +1AB for a few seconds.  Squeel!
        //(This is more for fun than anything. It's possible you can jump to a spot you cannot return from.)
        //-------------------------------------------------------------------------
    
        else if( GetAppearanceType(oPC) == 21 /*APPEARANCE_TYPE_BOAR*/ ||
                 GetAppearanceType(oPC) == 22 /*APPEARANCE_TYPE_BOAR_DIRE*/ ||
                 GetAppearanceType(oPC) == 120 /*APPEARANCE_TYPE_MINOTAUR*/ ||
                 GetAppearanceType(oPC) == 121 /*EPIC MINO*/)
        {
    
            //---------------------- condition 1
            if( oTarget == oPC ) { //Should require the target to be hostile!?
                SendMessageToPC(oPC,"Select a target to charge other than yourself.");
                return;
            }
    
            //---------------------- condition 2
            float fDist = GetDistanceBetween(oPC,oTarget);
            if( fDist > 25.0 ) {
                FloatingTextStringOnCreature("Get closer to charge.",oPC,FALSE);
                return;
            }
            if( fDist < 10.0 ) {
                FloatingTextStringOnCreature("You are too close to charge.",oPC,FALSE);
                return;
            }
            fDist = fDist - 3.0; //subtract 3 so that we don't end up teleporting on top of the target
    
    
            //---------------------- condition 3
            vector vTarget = GetPosition(oTarget);
            vector vPC     = GetPosition(oPC);
    
            if( !LineOfSightVector(vPC,vTarget) ) {
                FloatingTextStringOnCreature("You must have line of sight to charge.",oPC);
                return;
            }
    
            //======================
            SetLocalInt(oPC,"PLTOOL1",1);
            DelayCommand(12.0,DeleteLocalInt(oPC,"PLTOOL1"));
    
    
            ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(460),oPC);
            string sOink;
            switch( d3() )
            {
                case 1: sOink = "Oink!"; break;
                case 2: sOink = "Snort!"; break;
                default: sOink = "Squeel!"; break;
            }
            FloatingTextStringOnCreature(sOink,oPC);
    
            SetFacingPoint(vTarget);
            float fFacing = GetFacing(oPC);
    
            location lTarget = GetLocation(oTarget);
            location lTarget1;
            float fDelay = 0.0;
            effect eHaste = EffectVisualEffect(VFX_IMP_HASTE);
    
            int denom = FloatToInt(fDist/3);//I want a haste visual to appear every 3 units between the player and target
    
            //fDist is the distance to the target - 4.0.
            //Determine the X and Y components of that direction and set its magnitude to 1/3 of fDist
            float fX = cos(fFacing)*fDist/denom;
            float fY = sin(fFacing)*fDist/denom;
    
            do
            {
                fDelay += 0.25;
    
                vPC.x = vPC.x + fX;
                vPC.y = vPC.y + fY;
                lTarget1 = Location( GetAreaFromLocation(lTarget), vPC, fFacing );
                DelayCommand(fDelay,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eHaste,lTarget1));
    
                denom--;
            }
            while( denom > 0 );
    
            ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectAttackIncrease(1),oPC,6.0);
    
            DelayCommand(fDelay-0.1,ActionJumpToLocation(lTarget1));
    
            DelayCommand(fDelay+0.1,ActionAttack(oTarget));
    
            //DelayCommand(fDelay+0.1,ActionDoCommand(SetCommandable(TRUE)));
            //SetCommandable(FALSE);
        }
    }
    
  • ForSeriousForSerious Member Posts: 515
    edited August 29
    I'm not finding a shifter.2da—at least, not in what I extracted last time. I thought I pulled everything though.
    EDIT: I think I found it: polymorph.2da
  • TerrorbleTerrorble Member Posts: 188
    polymorph.2da, yep, that's it! It's been a while since I've been in the toolset.
Sign In or Register to comment.