SF and GSF Transmutation not applying to animal spells

  • Area name: N/A
    Issue Location: N/A
    Quest Name: N/A
    Store Name: N/A
    NPC Name: N/A
    NPC Location: N/A
    Server Version: Puffy 6571
    Screen Shot: oops
    Time: lots of times

    Issue Description: You can still roll 2s and 3s on animal buffs, even with GSF Transmutation.

    Going ahead and compiling the module to see if that helps.

  • Area name: N/A
    Issue Location: N/A
    Quest Name: N/A
    Store Name: N/A
    NPC Name: N/A
    NPC Location: N/A
    Server Version: 6662
    Screen Shot:
    Time: lots of times

  • Admin [DM]

    We know, and we know it's still broken. We do not need duplicate entries. When it's fixed, a DM will post here.

  • I was told by a DM who was not aware that this bug existed to bug report it.

  • Storyteller [DM]

    // Bull's Strength
    // Created By: Brenon Holmes
    // Created On: 10/12/2000
    // Description: This script changes someone's strength
    // Updated 2003-07-17 to fix stacking issue with blackguard
    //:: Modified By: Fargle
    //:: Modified On: 11/26/19
    //:: Modifications: Casters with SF Transmutation now buff by 1d3+2 (3-5)
    //::                Casters with GSF Transmutation now buff by 1d2+3 (4-5)
    #include "x2_inc_spellhook"
    #include "nw_i0_spells"
    void main() {
          Spellcast Hook Code
          Added 2003-06-23 by GeorgZ
          If you want to make changes to all spells,
          check x2_inc_spellhook.nss to find out more
        if (!X2PreSpellCastCode()) {
            // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
        // End of Spell Cast Hook
        //Declare major variables
        object oTarget = GetSpellTargetObject();
        effect eStr;
        effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
        effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
        int nCasterLvl = GetAdjustedCasterLevel(OBJECT_SELF);
        // int nModify = d4() + 1; ---REMOVED BY FARGLE 11/26/19:--- deprecated by new code
        //---ADDED BY FARGLE 11/26/19---
        int nModify;
        //---ADDED BY FARGLE 12/16/19---
        //Debug messages, to figure out why the heck stuff isn't working.
        SendMessageToPC(OBJECT_SELF, "bHasSFT, checking feat no. " + IntToString(FEAT_SPELL_FOCUS_TRANSMUTATION) + ": " + IntToString(bHasSFT));
        SendMessageToPC(OBJECT_SELF, "bHasGSFT, checking feat no. " + IntToString(FEAT_GREATER_SPELL_FOCUS_TRANSMUTATION) + ": " + IntToString(bHasGSFT));
        //---END ADDED BY FARGLE 12/16/19---
        //If the caster has GSF Transmutation, then the buff should be 4-5 points;
        //If they have SF Transmutation, the buff should be 3-5 points;
        //If neither, it should be the standard 2-5.
        if(bHasGSFT == TRUE) {
            nModify = Random(2) + 4;
        } else if(bHasSFT == TRUE) {
            nModify = Random(3) + 3;
        } else {
            nModify = Random(4) + 2;
        //---END ADDED BY FARGLE 11/26/19---
        float fDuration = HoursToSeconds(nCasterLvl);
        int nMetaMagic = GetMetaMagicFeat();
        //Signal the spell cast at event
        SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_BULLS_STRENGTH, FALSE));
        //Enter Metamagic conditions
        if (nMetaMagic == METAMAGIC_MAXIMIZE) {
            nModify = 5;//Damage is at max
        if (nMetaMagic == METAMAGIC_EMPOWER) {
            nModify = nModify + (nModify / 2);
        if (nMetaMagic == METAMAGIC_EXTEND) {
            fDuration = fDuration * 2.0;    //Duration is +100%
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
        // This code was there to prevent stacking issues, but programming says thats handled in code...
        /*    if (GetHasSpellEffect(SPELL_GREATER_BULLS_STRENGTH))
            //Apply effects and VFX to target
            RemoveSpellEffects(SPELL_BULLS_STRENGTH, OBJECT_SELF, oTarget);
            RemoveSpellEffects(SPELLABILITY_BG_BULLS_STRENGTH, OBJECT_SELF, oTarget);
        eStr = EffectAbilityIncrease(ABILITY_STRENGTH, nModify);
        effect eLink = EffectLinkEffects(eStr, eDur);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration);

    This is the script.

  • Admin [DM]


  • @Echo

Log in to reply