找回密码
 注册
查看: 3177|回复: 7

[攻略心得] 【法术研究之:藤蔓源泉(Vine Mine)】

[复制链接]
发表于 2007-4-24 16:48:45 | 显示全部楼层 |阅读模式
看来有必要开个新帖了。关于Vine Mine的讨论请都归到本帖里来。


基本资料:
藤蔓源泉(Vine Mine)
施法者等级:德鲁伊3,植物领域5
固有等级:5
派别:咒法系
组件:言语,姿势
范围:中距离
效果区域/目标:巨型范围
持续时间:10轮/等级
豁免:可(缠绕)
法术抵抗:可
描述:
当施展此法术的时,施法者必须在下面效果中选择其一:
- 纠缠术(如同名法术)
- 伪装(+4躲藏环境加值检定)
- 阻碍移动(移动速度减半)


这里可选择的第一个类别——纠缠术,在脚本中出现了一个重大BUG:程序员未添加vinementa.nss这个脚本,也就是on enter效果鉴定脚本。它所造成的直接后果便是该类别失效。我起初不信,还特意测试了一下,结果和理论完全吻合,OTZ。

这里第二个类别——伪装,从脚本来看没有什么问题,效果是自己或者队友hide鉴定+4,而且还有范围限制,跑出该区域奖励消失,这对于一个3级法术来说效果相当有限,几乎可以无视。我想只有int为3的小德才会为了那+4的hide奖励躲到一堆谁都能看到的草堆里>.<

Vine Mine的真正作用恰恰落在了这第三个类别——阻碍移动上,其效果就是无SR和SAVE鉴定将目标速度直接降为原来的50%,而变态的是减速效果叠加,更为变态的是即使目标离开法术AOE区域其减速DEBUFF仍然存在,并且只要重复进入哪怕是只有一个vinemine的AOE范围,减速效果都会叠加。

恩...刚才自己的一个假设被自己推翻了,531貌似是可以被识别的。
发表于 2007-4-24 19:51:13 | 显示全部楼层
非常有可能。:)本来下午看到准备回帖的,但没时间了。既然新开了一帖,在这回吧。

我机器玩不了NWN2,实际我把1的代码和AZ帖的主要代码比较了下。,代码和NWN1是一样的。所以应该本身问题不大。


干脆把1代的代码帖出来。

X2_S0_VineMHmpB:
#include "NW_I0_SPELLS"

#include "x2_inc_spellhook"

void main()
{


    //Declare major variables
    //Get the object that is exiting the AOE
    object oTarget = GetExitingObject();
    int bValid = FALSE;
    effect eAOE;
    if(GetHasSpellEffect(531, oTarget))
    {
        //Search through the valid effects on the target.
        eAOE = GetFirstEffect(oTarget);
        while (GetIsEffectValid(eAOE) && bValid == FALSE)
        {
            if (GetEffectCreator(eAOE) == GetAreaOfEffectCreator())
            {
                if(GetEffectType(eAOE) == EFFECT_TYPE_MOVEMENT_SPEED_DECREASE)
                {
                    //If the effect was created by the Acid_Fog then remove it
                    if(GetEffectSpellId(eAOE) == 531)
                    {
                        RemoveEffect(oTarget, eAOE);
                        bValid = TRUE;
                    }
                }
            }
            //Get next effect on the target
            eAOE = GetNextEffect(oTarget);
        }
    }
}
发表于 2007-4-24 20:19:31 | 显示全部楼层
X2_S0_VineMHmpC:
#include "NW_I0_SPELLS"
#include "x0_i0_spells"
#include "x2_inc_spellhook"

void main()
{

    //Declare major variables
    object oTarget;
    effect eVis = EffectVisualEffect(VFX_IMP_SLOW);
    effect eSlow = EffectMovementSpeedDecrease(50);
    effect eLink = EffectLinkEffects(eVis, eSlow);
    float fDelay;


    //--------------------------------------------------------------------------
    // GZ 2003-Oct-15
    // When the caster is no longer there, all functions calling
    // GetAreaOfEffectCreator will fail. Its better to remove the barrier then
    //--------------------------------------------------------------------------
    if (!GetIsObjectValid(GetAreaOfEffectCreator()))
    {
        DestroyObject(OBJECT_SELF);
        return;
    }


    //Get first target in spell area
    oTarget = GetFirstInPersistentObject();
    while(GetIsObjectValid(oTarget))
    {
        if(!GetHasFeat(FEAT_WOODLAND_STRIDE, oTarget) &&(GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) != TRUE) )
        {
            if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator()))
            {
                SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), GetSpellId()));
                fDelay = GetRandomDelay(0.0, 2.0);
                DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget));
            }
        }
        //Get next target in spell area
        oTarget = GetNextInPersistentObject();
    }
}




AZ帖的2代这里很有趣:
// if(!GetHasFeat(FEAT_WOODLAND_STRIDE, oTarget) &&(GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) != TRUE) )
        if( (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) != TRUE) )        // AFW-OEI 05/01/2006: Woodland Stride no longer protects from spells

他把1代判断是否穿林步专长所在的地方屏蔽掉了。而改用了去掉专长的判断。

并说明:穿林不再免疫法术效果。
发表于 2007-4-24 20:26:57 | 显示全部楼层
恩 海底眼 修正的附件在 http://game1.ali213.net/thread-1294270-1-1.html 发布了

把效果叠加的部分去掉了,同时离开效果区域不受影响。但效果范围内仍然不做SR和豁免鉴定……
发表于 2007-4-24 20:46:12 | 显示全部楼层
果然做研究了...上次才发帖"劝诱"[s:13]
发表于 2007-4-27 10:43:05 | 显示全部楼层
baby,有空的话顺便测一下诗人的高级 法术 Dirge 挽歌……

照脚本的情形来看也是个 没鉴定且效果叠加的大YY(和当前这个法术写法类似)

bug 需求已提交
http://game1.ali213.net/thread-1294270-2-1.html

犯了个错误……
刚刚仔细看了描述……每轮叠加不应该算bug。而是这个法术确实应该每轮叠加效果(太牛了)。难怪最后打了一个补丁防止造成永久属性伤害……

baby 改 帮忙测是不是累加,且离开区域会不会正常好了
发表于 2007-5-4 16:07:57 | 显示全部楼层
那也就是说除了第三个效果,其他的都没用?那这个每轮叠加的法术会不会出现导致死机?

PS:这个法术...是神术版的幽影咒啊!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|奥德赛公会

GMT+8, 2026-6-17 15:34 , Processed in 0.013740 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表