icedream 210 Report post Posted February 21, 2015 本文转自《【破甲心得】从-1开始用破甲——向newalbert、jewelswey致敬【更小白向】【10楼更新】》,原作者为。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了 (2)双击运行之,出现CS的界面,选择,第二个按钮打开 (3)勾上主文件(Oblivion.esm),破甲框架(BreakUndies.esm),IrohaClothes.esp 记得对蓝色显示的IrohaClothes.esp选择下方的按钮:激活之 (4)等待加载成功之后,会出现界面【Object Window】,在左侧的选择框(如下图所示)点开【Armor(盔甲)】左侧的+号,找到Iroha,点击之,此时界面应当如右图所示: (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 / *【题外】据我少得可怜的知识,仅知道Iroha_terra.nif是衣服扔在地上时的模型文件,对于破甲使用并无直接影响*/ 好,现在双击irohaclothes,【即第(4)步中的最后一张图右侧栏中的第一项】,出现如下图所示的东东: 找到【Script】,看到【Script】那行右边的三个点【...】,点开之,出现下图 点击菜单栏的【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