wolfzhu 发表于 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中即可。

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

yin518720 发表于 2009-1-24 15:24:50

不知道为何,我的圣骑一上马之后马就隐身了,而我的圣骑骑马蹲裆式悬在空中

lovehylg 发表于 2009-1-24 18:17:14

对楼上出现的状况彻底无语。。。

ufa31415 发表于 2009-1-27 18:11:48

这个东西不错,我可以学下甘道夫了,谢谢楼主了。新年快乐。

我试了好久,还是没能弄好,总说我编译错误,能发几个操作的图说明一下吗?
                                                                                       ---想学习的小白敬上

171733 发表于 2009-1-31 13:34:25

我的NWN只能在飞龙里才有骑乘........
太可悲了

黑骑士001 发表于 2009-2-3 16:23:14

那么我现在有个疑问
是不是替换之后
所有的1级召唤术都是召唤模型为梦魇属性为1级召唤生物的宠物出来

wolfzhu 发表于 2009-2-5 21:45:29

原帖由 黑骑士001 于 2009-2-3 16:23 发表 http://www.odyguild.org/bbs/images/common/back.gif
那么我现在有个疑问
是不是替换之后
所有的1级召唤术都是召唤模型为梦魇属性为1级召唤生物的宠物出来

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

红色部分说明只用使用梦魇之戒所召唤出来的1级生物才会是nightmare

wolfzhu 发表于 2009-2-5 21:53:09

原帖由 ufa31415 于 2009-1-27 18:11 发表 http://www.odyguild.org/bbs/images/common/back.gif
这个东西不错,我可以学下甘道夫了,谢谢楼主了。新年快乐

          我试了好久,还是没能弄好,总说我编译错误,能发几个操作的图说明一下吗?
                                                             ...
附件里面有现成的erf文件,用nwviewer解包出来,拷贝到override文件夹中就可以实现需要的召唤功能。另外一个erf文件直接用模组编辑器导入就有梦魇之戒的模板了。放一个在地上,然后开局捡起来就行。

ddbo 发表于 2009-2-11 00:49:21

是不是说原版和资料片中也能骑马了?

ddbo 发表于 2009-2-12 15:58:32

nwviewer那里有下载?
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 关于坐骑的召唤