Jump to content
模组网
icedream

【破甲心得】从-1开始用破甲

Recommended Posts

0.序
  首先声明:小弟不是高手,是伸手党一名,也在不断学习之中;这次写这个东西,只是伸手党的揭竿——不是所有的伸手党都是大爷,至少我不是~所以,这篇心得没有良好的售后服务,希望诸位能理解,就像理解T网里那些日本Modder说“My English is poor”一样……
  其次,在研究破甲脚本时,参考了newalbert和jewelswey两位大大的的教程,下面是传送门:
     jewelswey:从零开始学破甲
     newalbert:破衣框架BUFramework_v1.01解析上古4脚本学习 (2010.01.04 68楼增加第三课:mod基础概念和流控)
  而这东西是更加小白的东西,所以高手看到此可以无视我了。

  再者,各位如果希望更详细的东西,还是先请过了六级吧……国外的站点的资源真心丰富【没有任何冒犯之意】
  接下来,破甲又称BreakUndiesFramework,在T网上已经出到2.0版本。题外话一下:如果诸位真心想观赏破甲的话,PC平台请度娘 I社的BattleRaper,游戏机平台请度娘 灵魂能力;
  最后,解释一下为什么会广告其他游戏:小弟感觉上古卷轴4比起I社那些纯粹以Yellow作为话题的游戏来说,更好的是它自由的剧情、真实的世界和开放的修改系统,所以我并没有装一些纯H的Mod,譬如XLover之类的。我最YD的Mod应该是BBB、BU和触手Mod了,所以希望别向小弟伸手那些东西的相关资源~

1.使用的工具【链接就懒得发了,都是大街货】
   Iroha女仆装及其可破甲版【例子】
   BUFramework v2.0
   obse v0020
   TESConstructionSet【简称CS】

2.使用办法【以Iroha为例】
   (1)安装好以上的Mod文件,安装好obse v0020后你会看到在游戏主文件夹(X:\Program Files\Oblivion,其中X为你的盘符)下会有一个obse_loder.exe,右击之,选择【创建快捷方式】,右键点开快捷方式,如下图,在【目标】那里的最后补上个 -editor,这样就可以通过obse调用CS了
gallery_1_70_4326.png
     (2)双击运行之,出现CS的界面,选择gallery_1_70_907.png,第二个按钮打开
     (3)勾上主文件(Oblivion.esm),破甲框架(BreakUndies.esm),IrohaClothes.esp
gallery_1_70_1515.pnggallery_1_70_730.png
记得对蓝色显示的IrohaClothes.esp选择下方的按钮:gallery_1_70_156.png激活之
     (4)等待加载成功之后,会出现界面【Object Window】,在左侧的选择框(如下图所示)点开【Armor(盔甲)】左侧的+号,gallery_1_70_3982.png找到Iroha,点击之,此时界面应当如右图所示:  gallery_1_70_7508.png

       (5)上侧右方的图是修改过的了,若否,则在【Script】那一栏中第一项空白,第三项有IrohaBreakVar。所以现在就是关键了——
       (6)【若您希望对原版文件直接修改】,请确认您的文件夹X:\Program Files\Oblivion\Data\meshes\BaronB\Iroha(X为安装盘符)里面有以下图中所示的文件(基本上按照ReadMe.txt安装的都应该有):
        即iroha new.nif、iroha newb1.nif、iroha newb1.nif、iroha newb1.nif、Iroha_terra.nif、Iroha_testa.nif
gallery_1_70_72396.png
       / *【题外】据我少得可怜的知识,仅知道Iroha_terra.nif是衣服扔在地上时的模型文件,对于破甲使用并无直接影响*/
         好,现在双击irohaclothes,【即第(4)步中的最后一张图右侧栏中的第一项】,出现如下图所示的东东:
gallery_1_70_22925.png
         找到【Script】,看到【Script】那行右边的三个点【...】,点开之,出现下图gallery_1_70_9185.png
          点击菜单栏的【Script】,点击【New...】,出现空白画面
          然后请把下边这些东西复制进去。点击【Script】,【Save】,关闭。
; Sample of object script put on individual equipment
scn aaBUIroha

array_var param
int ret

ref rEquip
array_var aEquip
array_var aMesP
array_var aMesA

Begin gamemode
let ret := Call BUCmnFnc param aEquip aMesP aMesA
if (ret == 0)
        return
endif
if (ret == 2)
        let param := aEquip := aMesP := aMesA := ar_Null
        return
endif

; Initialization
let aEquip := ar_Construct Array
let aMesP := ar_Construct Array
let aMesA := ar_Construct Array

; Individually needing the change : START
        ; Specify EditorID of the object equipment.
        ; Bundle it by "" when EditorID starts by the figure. ex) "00BUDWD"
        set rEquip to "irohaclothes"

        ; Specify the nif file by each destructive phase.
        let aEquip[ar_Size aEquip] := "Meshes\BaronB\Iroha\iroha new.nif"
        let aEquip[ar_Size aEquip] := "Meshes\BaronB\Iroha\iroha newb1.nif"
        let aEquip[ar_Size aEquip] := "Meshes\BaronB\Iroha\iroha newb2.nif"
        let aEquip[ar_Size aEquip] := "Meshes\BaronB\Iroha\iroha newb3.nif"

        ; Set messages of a number that is less than one number of stages above.(for player)
        let aMesP[ar_Size aMesP] := "Clothes tore by the furious struggle.(1st)"
        let aMesP[ar_Size aMesP] := "Clothes tore by the furious struggle.(2nd)"
        let aMesP[ar_Size aMesP] := "Clothes tore by the furious struggle.(3rd)"
        ; Messages (for enemy)
        let aMesA[ar_Size aMesA] := "Enemy's clothes tore by the furious struggle.(1st)"
        let aMesA[ar_Size aMesA] := "Enemy's clothes tore by the furious struggle.(2nd)"
        let aMesA[ar_Size aMesA] := "Enemy's clothes tore by the furious struggle.(3rd)"
; Individually needing the change : END

let param := ar_List 0, 0, 0, (ar_Size aEquip) - 1, rEquip
; Initialization end
End

               出来点击右下角的【OK】,再在CS的主界面的工具栏中点击【保存】,这个新的IrohaClothes.esp就有了破甲功能了!
                记得在游戏中装备要是IrohaClothes而不是IrohaClothesVar(介个接下来会讲)
        (7)【如果你不想开CS,想直接调用BUFramework v2.0】,破甲框架里面的Readme.txt,小弟略略读了一遍,和v1.2有不同的地方是:
            ** Merge your ini\BreakUndies.ini to add new breakable equipment.
        也就说,比起1.2版本来说,2.0需要在ini文件里面做点手脚。ini文件一般存放在X:\Program Files\Oblivion\Data\ini里面,名称是BreakUndies.ini
        首先将原IrohaClothes的脚本文件删除,或者点开BreakUndies.ini,将里面的set aaBUData.ForceOverwrite to 0语句改成set aaBUData.ForceOverwrite to 1
       下面有一大堆东西,看不懂无所谓,我也不懂,找到
;================ When you specify the message =================
这行,然后将这行到下一个分隔符【====】之间的文字替换为下面的代码

set aaBUData.DATA to sv_Construct "BaronB\Iroha\iroha new.nif"
SetStage aaBUDataIni 10
set aaBUData.DATA to sv_Construct "BaronB\Iroha\iroha newb1.nif"
SetStage aaBUDataIni 10
set aaBUData.DATA to sv_Construct "BaronB\Iroha\iroha newb2.nif"
SetStage aaBUDataIni 10
set aaBUData.DATA to sv_Construct "BaronB\Iroha\iroha newb3.nif"
SetStage aaBUDataIni 10

set aaBUData.DATA to sv_Construct "Iroha's clothes in the furious struggle shifted!"
SetStage aaBUDataIni 20
set aaBUData.DATA to sv_Construct "Iroha's clothes in the furious struggle tore!!"
SetStage aaBUDataIni 20
set aaBUData.DATA to sv_Construct "Clothes of Iroha came off by the furious struggle!!!"
SetStage aaBUDataIni 20

set aaBUData.ID to GetFormFromMod "IrohaClothes.esp" "0015AA"
SetStage aaBUDataIni 30

          至此,一切大功告成,可以进去穿IrohaClothesVar了
           /*记得删除前面的分号!*/

3.原理简述【无爱的话可以略过】
(1)原版文件修改法,NewAlbert大人已经讲得很清楚了,小弟就不再狗尾续貂。   
(2)而要采用新版的破甲框架的话,按照T网上原作者的意见,IrohaClothesVar中的破甲剧本是“Very very old version”,也就是说很旧的版本,不兼容于现有的破甲框架。因此如果您强行穿之,继续游戏的话,有可能导致悲剧,例如说死机乃至CTD等。如果没有死机,证明真实运气好,那么你可以看看主文件夹X:\Program Files\Oblivion下的obse.log文件,总会找到一段话:
Error in script XXXXXXX
Invalid array access - the array was not initialized.
    File: IrohaClothes.esp Offset: 0x0617 Command: Let
Error in script XXXXXXX
Operator [ failed to evaluate to a valid result
    File: IrohaClothes.esp Offset: 0x0617 Command: Let
原作者对此给出了两个解决方法,特翻译并注解如下:

you should delete the v1 script in the "FSN Equipments.esp" already been given in original. Or ForceOverwrite to be 1 in the BreakUndies.ini and GetFormFromMod line to be
set aaBUData.ID to GetFormFromMod "FSN Equipments.esp" "00000F11"

你可以删除版本1的脚本,或者将BreakUndies.ini里面的set aaBUData.ForceOverwrite to 0语句改成set aaBUData.ForceOverwrite to 1,从而达到改写原脚本的目的;而且要修改set aaBUData.ID to GetFormFromMod +“要修改的esp名称” +“物品的ID”这段语句。【在本例中,可以参见上面给出的修改方式,就是set aaBUData.ID to GetFormFromMod "IrohaClothes.esp" "0015AA"】而上面给出的两种方法都是基于这两条建议而行的。
       /*【题外】从上面作者的话也可以看到,FSN Equipments.esp也不兼容,小弟也打开看过它的破甲脚本,确实和IrohaClothesVar的原本的脚本一模一样*/

4.跋
   写到这里,萦绕几天的烦恼似乎烟消云散一般。但是脚本语言如此深奥,谁也难以遑论是牛掰。所以希望能共同讨论一下。至于怎么安装啊、兼容性什么的请恕小弟无能为力了,因为小弟也是个——伸手党。祝龙年元宵节快

 

教程v1.1版本更新:
1.向ostinseed大致意,这有助于进一步理解,传送门上古新技術(階段破甲)介紹貼完整版已經發布!~目前最有潛力的技術之一~為上古注入一股新活力
2.从ostinseed大处偷来一份breakundiestutorial,分流了里面的一份示例程序:该程序比起正文的程序来说更加专业【也就是jewelswey大教程中的模板】,小弟凭自己生疏的编程感觉+google翻译成全脚本中文注释,用法和原文的esp修改法一样。
3.有错漏之处敬请指正,元宵快乐!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...