无冬之夜吧 关注:28,817贴子:908,945
  • 7回复贴,共1

[求助] 1代diy向问题

只看楼主收藏回复

@已知未来
最近重玩Kosigan,准备用自己diy的classes.2da
然而模组需要kosigan_class.hak才能载入,其中有模组自己的classes.2da,导致无法载入override下的classes.2da
1)能否通过toolset来取消该hak,使得模组载入override下的classes.2da?
该系列英文版出了5集,共6个模组,用toolset改起来也有点麻烦。。。
2)如果自建一个空白hak覆盖掉kosigan_class.hak,能否达到目的?
3)如果用util文件夹下的工具,能否把override下的classes.2da重新封包进kosigan_class.hak,以达到目的?


1楼2016-04-22 10:12回复
    1、utils\nwhak.exe,一般而言,正确的hak覆盖姿势应该是自己用这个2da做一个小hak,(命名为xxxtop如果有必要的话),然后放在这个mod所有hak列表顶部,这样你改写的是这个mod,hak不会变,不容易产生歧义。如果hak里只有那个2da,那随便改。当然这是大型mod开发的姿势,个人的话你自己要删hak里的2da还是改hak里的2da都随你了。以及改mod的hak关联是个很容易的事,leto就能完成,不建议开慢吞吞的toolset。
    2、可以,也算是比较简单易行有效的解决方法。
    3、看1,容易产生歧义(比如有其它mod用一个公共hak的时候就不能这么做,但是考虑到这个hak名就叫kosigan,应该是这个mod自用的hak,那么这种情况无所谓),具体看你需要。


    2楼2016-04-22 14:50
    回复
      2025-07-23 15:15:06
      广告
      不感兴趣
      开通SVIP免广告
      overrider下的都是全局变量,比如头像,模型,以及一些自定义动作都可以放到里面,这样能全局改变.
      但是一些如spells.2da,classes.2da非常不推荐直接改了放那里,这样会污染全局变量.
      正确姿势就是如同楼上那位说的那样.
      PS:我一直把楼上错认为是我们家食人魔的马甲..XD (后来证明不是...


      IP属地:浙江3楼2016-04-22 16:37
      收起回复
        letoscript命令行工具叫moneo,改这些东西很好用,推荐。
        这里是我之前批量重设商店买卖价的脚本:
        %f = 'E:\NWN\modules\te_tmp.mod';
        for ('*.git' in %f)
        {
        $are = substr($_, 0, $_.length);
        for (/storelist) { if (/~/maxbuyprice != 1350)
        {
        print "$are $x,$y, /~/maxbuyprice\n";
        replace('maxbuyprice','*',1350);
        print "/~/maxbuyprice\n"
        }
        }
        %f = '>';
        需要注意的是,moneo有几个版本,语法有些许区别,当然不写插件不要紧。


        来自Android客户端4楼2016-04-22 17:12
        回复
          已解决,感谢楼上各位的答复


          6楼2016-04-25 10:50
          回复
            Kosigan最终章还是没英文版吧?


            IP属地:河北来自Android客户端7楼2016-04-30 18:48
            收起回复