找回密码
 注册
查看: 22616|回复: 93

[资料] 关于坐骑的召唤

[复制链接]
发表于 2009-1-24 15:21:43 | 显示全部楼层 |阅读模式
觉得只有圣骑士才能召唤坐骑有点不爽,所以研究了一下能不能召唤通用的坐骑,结果如下。附件里有现成的东西,如果想自己做的话,请接着往下看。我们的目的是建一个可以召唤梦魇兽的戒指,当使用这个戒指吟唱1级生物召唤的时候,召唤出一头梦魇兽。

首先确认你安装的是NWN1.69的版本,支持骑乘系统(废话)。

1、随便新建一个模组,在里面建一个名叫“Ring of Nightmare”的戒指,在其属性里面添加“召唤1级生物”魔法。当然,把这个戒指放到地上或者箱子里,让玩家进入地图的时候可以得到。

2、用脚本编辑器打开nw_s0_summon脚本,把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
        return;
    }
// End of Spell Cast Hook

    //Declare major variables
    int nSpellID = GetSpellId();
    if(nSpellID == SPELL_SUMMON_CREATURE_I && GetResRef(GetSpellCastItem()) == "ringofnightmare")
    {
        HorseCreateHorse("X3_NIGHTMARE001", GetSpellTargetLocation(), GetItemPossessor(GetSpellCastItem()));
    }
    else
    {
        int nDuration = GetCasterLevel(OBJECT_SELF);
        nDuration = 24;
        if(nDuration == 1)
        {
            nDuration = 2;
        }
        effect eSummon = SetSummonEffect(nSpellID);
        //Make metamagic check for extend
        int nMetaMagic = GetMetaMagicFeat();
        if (nMetaMagic == METAMAGIC_EXTEND)
        {
            nDuration = nDuration *2;   //Duration is +100%
        }
        //Apply the VFX impact and summon effect
        ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration));
    }

其实这个脚本只改了一点点东西,自己对比一下就知道怎么实现的了。

3、保存这个模组后就可以用它开局试一下了。进入后取得这个戒指,装备,然后用它施放召唤1级生物魔法。看看是不是成功了?

4、现在我们已经做到了在单个模组中实现。要在其他模组中实现召唤,只需要保存你装备了戒指的人物,然后导出nw_s0_summon脚本到erf,接着解压该erf中的两个文件到override中即可。

现在用保存的人物开局,看看效果吧:
Nightmare.JPG

Nightmare.rar

4.25 KB, 下载次数: 102, 下载积分: 奥币 -1

评分

参与人数 2威望 +7 奥币 +14 收起 理由
flitter + 3 + 6 我很赞同
nidhogg + 4 + 8

查看全部评分

发表于 2009-1-24 15:24:50 | 显示全部楼层
不知道为何,我的圣骑一上马之后马就隐身了,而我的圣骑骑马蹲裆式悬在空中
发表于 2009-1-24 18:17:14 | 显示全部楼层
对楼上出现的状况彻底无语。。。
发表于 2009-1-27 18:11:48 | 显示全部楼层
这个东西不错,我可以学下甘道夫了,谢谢楼主了。新年快乐。

我试了好久,还是没能弄好,总说我编译错误,能发几个操作的图说明一下吗?
                                                                                         ---想学习的小白敬上
发表于 2009-1-31 13:34:25 | 显示全部楼层
我的NWN只能在飞龙里才有骑乘........
太可悲了
发表于 2009-2-3 16:23:14 | 显示全部楼层
那么我现在有个疑问
是不是替换之后
所有的1级召唤术都是召唤模型为梦魇属性为1级召唤生物的宠物出来
 楼主| 发表于 2009-2-5 21:45:29 | 显示全部楼层
原帖由 黑骑士001 于 2009-2-3 16:23 发表
那么我现在有个疑问
是不是替换之后
所有的1级召唤术都是召唤模型为梦魇属性为1级召唤生物的宠物出来


注意这句
if(nSpellID == SPELL_SUMMON_CREATURE_I && GetResRef(GetSpellCastItem()) == "ringofnightmare")

红色部分说明只用使用梦魇之戒所召唤出来的1级生物才会是nightmare
 楼主| 发表于 2009-2-5 21:53:09 | 显示全部楼层
原帖由 ufa31415 于 2009-1-27 18:11 发表
这个东西不错,我可以学下甘道夫了,谢谢楼主了。新年快乐

          我试了好久,还是没能弄好,总说我编译错误,能发几个操作的图说明一下吗?
                                                             ...

附件里面有现成的erf文件,用nwviewer解包出来,拷贝到override文件夹中就可以实现需要的召唤功能。另外一个erf文件直接用模组编辑器导入就有梦魇之戒的模板了。放一个在地上,然后开局捡起来就行。
发表于 2009-2-11 00:49:21 | 显示全部楼层
是不是说原版和资料片中也能骑马了?
发表于 2009-2-12 15:58:32 | 显示全部楼层
nwviewer那里有下载?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-16 23:54 , Processed in 0.016325 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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