vivec吧 关注:3,850贴子:45,233
  • 4回复贴,共1

【MOD】A Really Useful Lullian Harquebus 安眠轮之改造安眠枪

取消只看楼主收藏回复

http://pan.baidu.com/s/1kT9m70V
花了窝三天终于完成了:一把真正安全有用的安眠枪。
使用方法:解压覆盖安眠轮mod的1.3补丁。


1楼2014-12-29 21:11回复
    安眠轮mod主线最终奖励安眠枪"Lullian Harquebus"在我的电脑上稳定地导致游戏跳出。
    最初我以为是它身上的script导致崩溃,花了两天时间想尽各种方法来改,最终才发现是模型原因。那就没办法只有放弃原来的模型了。不过它的script本来也是bug的。于是这就是我的改造版。下面慢慢介绍特点~


    2楼2014-12-29 21:18
    回复
      7. 虽然后来确认原版安眠枪的script不是导致游戏跳出的元凶,但script本身明显是bug的。
      Trainwiz很厚道地在他的bsa文件里提供了所有script的源代码。虽说安眠枪附带的script的源代码psc文件不是用来编译真实pex代码文件的,但结构大致相同。
      总的来说毛病是,在Event OnEquipped(actor)时给玩家添弹药,而不是给真正装备这件武器的actor添弹药,Event OnUnequipped(actor)也是同样的毛病。
      这可能是他为了避免卡死做出的调整,因为在Event OnEquipped(actor)中给对象actor添加物品是很危险的:NPC每次被增添新物品时都会自动卸下旧物品重新装备一遍,然后这个Event就又启动了一次,又添加一次,然后陷入无限循环直到卡死。要避免这个问题也不是很难,在additem之前设定个条件终止第二次迭代就好了。
      不过要真这么简单就好了。问题还是NPC的AI干扰我们的设定。安眠枪这个设定的思路是在装备上手时自动添加并装备弹药,但NPC会选择自己的武器,如果他们物品栏内没有弹药根本就不会装备这件武器,除非这是他们唯一的武器。即使在这种情况下,NPC装备武器后,script自动添加弹药又会导致NPC卸下武器。虽然游戏的算法(我也不知道是怎么做到的)瞬间就能化解这个矛盾,但经常结果是NPC装备上隐形武器,注册了这件物品已装备,拔武器有对应的音效和动作,但武器不显示,也无法正常使用。虽然再给NPC重新卸下再装备武器数次后还是能修复这个问题,但这当然是个不能让人满意的解决方案。
      总之试了很多其它策略之后,我最终还是决定将NPC和玩家区分对待。具体可以看"_LullHarqScript",我也提供了源代码psc文件,直接就能打开。总之如果是玩家装备上安眠枪,在这时添加并装备弹药,玩家卸下安眠枪时移除弹药。但如果是NPC,则在安眠枪进入他们物品栏时添加弹药,在装备该武器时通过一个法术效果开启"_LullHarqRegenScript",每隔8秒监测是否需要补充弹药(顺便修补一个NPC不愿使用安眠弹药的问题),然后在安眠枪离开NPC物品栏时移除所有多余弹药。总而言之NPC能跟玩家一样拥有无尽的弹药且相当情愿地使用,不过玩家通过重新装备安眠枪的方式补充弹药,而NPC是自动补充。
      Trainwiz的源代码中是有给玩家自动补充弹药的设定,但我觉得没必要且占资源。
      8. 原版安眠枪是自动添加900发弹药,我觉得没必要,因为根本用不完。我一次添加108发,因为正常一轮6发总共18轮,或者按住连射18发6回。
      9. 说道连射,因为箭术的快射perk影响这个script,所以在装备机关枪时自动移除了快射perk,在卸下武器后自动点回。我修改的安眠枪沿用了机关枪的连射script所以当然也要移除快射perk,所以如果不小心发现丢了这个perk不要紧张也千万不要浪费其它perk去补它。
      如果以后有时间我想修改一下这个自动连射的script,因为我感觉实际射击间隔不是很稳定,然后希望能找到方法同时保留单射功能,这样就不用杀只雪鼠也耗六法子弹了。


      5楼2014-12-29 23:11
      回复
        4楼是我抽掉的,手抖发早了。
        楼上没说清楚,psc源代码文件用记事本就能直接打开。
        然后就这么多了~
        总之这算是我第一个正经编程作品吧,虽然都是很基础的东西,但还是忙了三天,其实第一天就想放弃的因为还有篇论文要赶。
        不过Papyrus这个专门为TESV编写的编程语言还是挺有趣的,比如其它语言大概都会用anActor就它要说akActor~~


        6楼2014-12-29 23:23
        回复
          http://pan.baidu.com/s/1hq1lpVe
          再次更新~ 这次取消了上膛过程 真正成为全自动的枪。并加入了盾牌的脚本 用它盾击会有跟盾牌同样的效果~~
          我发誓这是最后一次更新了。。。


          11楼2015-01-02 16:15
          回复