13号避难所

 找回密码
 立即注册
搜索
查看: 5384|回复: 28
打印 上一主题 下一主题

交流一下UltraEdit修改辐射2脚本的心得

[复制链接]
跳转到指定楼层
楼主
发表于 2011-3-14 12:24:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
修改脚本正常的流程是,先修改/新建SSL代码文件,然后编译成int文件。
但对像我这样没有没有创造大型MOD的欲望,只稍作一些调整的人来讲,
以上方法效率很低,也很痛苦.毕竟拿不到其它人的SSL,只靠Modmapper的SSL和反编译int得到的SSl做参考.。

最近我尝试用UltraEdit修改脚本,发现在修改某些变量方面,UltraEdit效率很高。
ssl编译成int,不会进行压缩或加密,所以ssl中所有数字变量,
在int中都是可见的,只是变成了16进制数据而已,所以用UltraEdit修改int是可行的。
比如说,把商人的货架更新时间改成0。
辐射2中,更新时间基本上都是以小时为基本单位,而1小时 = 60 * 60 * 10,1天 = 24 * 60 * 60 * 10。
60 * 60 * 10, 在int文件中是 3c c0 01 00 00 00 3c c0 01 00 00 00 0a  ,
如果把这些改成 3c c0 01 00 00 00 3c c0 01 00 00 00 00 ,就是60 * 60 * 0。
把所有商人的货架更新脚本文件逐一进行上述替换,就能实现商人0时间更新(切换地图就更新)。
麦朗的制药、武器升级时间都可以用上述方法,改成0。

进一步,也可以用UltraEdit,改脚本的触发条件的数字变量。
NewReno机械店,游戏结束(enclave毁灭)后,可以给你的汽车做的2次升级。
我把条件改成不是色情明星,就可以触发,可以提前享受开车兜风几乎不耗电池。

我现在头疼的是,如何修改没有特定脚本的物品,比如各类图书91%的限制,读书时间等等。
我猜测有2种可能: 1. 有一个公用脚本,专门处理所有misc物品的使用效果。
                                    2. 直接就是辐射2主程序中处理。
我找了周末2天时间,还是没有找到所谓的公用misc物品脚本的存在,
但是看header文件,似乎有相关的文件存在。
如果哪位知道,请告知。
沙发
发表于 2011-3-14 12:47:33 | 只看该作者
膜拜高人
板凳
发表于 2011-3-14 15:01:20 | 只看该作者
引用楼主runx于2011-03-14 12:24发表的 交流一下UltraEdit修改辐射2脚本的心得 :
我现在头疼的是,如何修改没有特定脚本的物品,比如各类图书91%的限制,读书时间等等。
我猜测有2种可能: 1. 有一个公用脚本,专门处理所有misc物品的使用效果。
                                    2. 直接就是辐射2主程序中处理。
我找了周末2天时间,还是没有找到所谓的公用misc物品脚本的存在,
但是看header文件,似乎有相关的文件存在。
如果哪位知道,请告知。
.......
我印象沒錯的話,書的部分是寫死在引擎內的。
想修改書的效果,可以參考Nirran做的mod看看(要配合sfall)

過去NMA的Lich有想到一些鬼點子,例如把Steal置換成Robbery並影響玩家在搜索容器時找到物品的機率,或是做一本“萬用書”,看了是隨機提升一個技能:
http://www.nma-fallout.com/forum/viewtopic.php?t=37299
地板
 楼主| 发表于 2011-3-14 18:54:34 | 只看该作者
sfall?
看来还要再研究一下这个了,刚刚开始研究脚本,路还是很长啊
5#
发表于 2011-3-14 19:02:35 | 只看该作者
其实可以用NotePad,我觉得比较好用~
6#
 楼主| 发表于 2011-3-15 00:38:37 | 只看该作者
回 novarain:
非常感谢,Nirran和Lich的想法对我很有帮助,他们的实现方法,我也大概了解了。
尝试了一下,在Obj_dude.int 中定义了枪与子弹的使用效果,
但是还是原来的效果,主程序看来要比脚本优先级高,突破91%看来没什么办法。
关于sfall,好像就是一套函数库,
在RP2.1.2b的int反编译文件中看到了诸如asm(0x802f);等代码,这应该就是sfall的调用吧。
在看不到RP2.1.2b的源代码SSL的情况下,我暂时还是继续研究直接修改int的方法吧。
虽然只是取巧的方法,但还是能实现一些东西。
RP2.1.2b中,用Obj_dude.int文件,减少了带脚本的物品的数量。
Obj_dude.int 好像是使用物品时,辐射2程序自动调用的脚本。
简单的物品使用效果可以在这里添加,RP里添加的有效果没脚本的物品代码都在这里。
RP2.1.2b,居然有一本中国军队训练手册,效果是肉搏/潜行 +5%。
之前一直以为那几本新加的军队手册都是没效果的呢。


回 哔哔咖啡:
你好像没有仔细看我的帖子。我的想法是直接修改int文件,不是SSL代码文件,所以记事本用不了。
7#
发表于 2011-3-15 11:18:00 | 只看该作者
Nirran的那些技能書是用另一種方式運\作(和Lich的類似),簡單來說就是把遊戲中所有原本的“書”全置換成他的新書(新物品),而這些新書的運\作方式和原本那些得照引擎內寫死的方式不同,所以不受91%限制(他默認設定是能看書到接近300%)。

另外那本中國軍隊訓練手冊好像沒實裝在RP 2.1.2b內,至少我沒找到過它,大概和環境裝甲一樣(1.2版有,但問題多加上不合設定,所以後來拿掉了,但檔案還是在)。
8#
 楼主| 发表于 2011-3-15 22:29:51 | 只看该作者
加入新物品,然后在Obj_dude里加入代码定义新物品的效果,就OK,但这不是真正突破91%呀。
昨天突发奇想,能否将修改int16进制的方法应用到修改主程序,但暂时没有任何进展。

中国军队训练手册
我看到Obj_dude.int里已经写好了代码,代码也简单,应该不会有问题,
我准备放到野外商人身上,也量产。
按RP的情节,这本书放在那艘潜艇应该最合适。
我游戏进程还没到潜艇,到时候一定仔细搜搜。

这几天正在体验(13-24)的野外战斗规模,结果碰上Enclave巡逻队就悲剧了。
Enclave巡逻队规模变成(13-24),上场率改成100%镭射Minigun,最高战斗难度,
太恐怖了,一回合我的6人小团队被灭团。
9#
 楼主| 发表于 2011-3-16 01:14:07 | 只看该作者
发现主程序有CRC校验,只能放弃这方面的尝试了

发现添加NPC伙伴最简单的方法:在WORLDMAP.TXT中野外战斗队伍设定中加人。

[Encounter: WILD1_Trader]
type_01=pid:16777719, Script:1406
这样加进去之后,野外商人(卖外星人枪的那位)队伍里多出来DEX,
和在EPA一样,对话后即可加入。
虽然野外战斗是随机可重复,但可加入NPC的存在应该是唯一的。
我在EPA选了Kitsune,队伍里有她,WORLDMAP.TXT中再添加Kitsune,好像就没有效果了。
这样理论上,可以创造野外相识,一起结伴而行的NPC了。
10#
发表于 2011-3-16 07:52:15 | 只看该作者
楼主,你可以把相应的截图放出了,大家参考一下~
11#
发表于 2011-3-16 08:40:41 | 只看该作者
记得有编译int的工具的,不是官方的,兼容没问题的~
12#
 楼主| 发表于 2011-3-16 10:25:34 | 只看该作者
回 哔哔咖啡:
要抓图只能等下班回家了。不过,NPC出现在野外队伍中——这一点绝对没问题。
我现在担心的是,假如把某个NPC事先拉过来,那么到原来NPC应该出现的场景 ,会不会出问题?
如果全局变量控制场景中人物的出现与否,那就不用担心了。


回10楼:
不是编译器的问题,而是把int反编译得来的ssl再编译成int的话,很容易出问题的 。
辐射2的ssl很少是单独存在的,绝大部分都是要引用一堆预定义。
RP使用了sfall之后,更是如此。
13#
发表于 2011-3-16 10:41:15 | 只看该作者
引用第11楼runx于2011-03-16 10:25发表的  :
不是编译器的问题,而是把int反编译得来的ssl再编译成int的话,很容易出问题的 。
辐射2的ssl很少是单独存在的,绝大部分都是要引用一堆预定义。
RP使用了sfall之后,更是如此。
.......
Nirran有修改原本Noid的編譯/反編譯器並支援sfall的函式,或許可以試試。

原始的ssl之前killap在非官方修正1.02.25時有放出來過,但也只是非官方版的內容而已,不過或許可以拿來參照反編譯出來的內容再修改重新編譯比較不會有問題。RP的ssl你真的要的話可能得寄信和他問問,大概等到RP 2.2出來之後再要比較好(他之前提過RP 2.2之後可能會停很久一段時間)。
14#
 楼主| 发表于 2011-3-16 12:06:55 | 只看该作者
我现在手里的只有MODmapper里的SSL,反编译后预定义的还原有点麻烦,毕竟反编译和编译不是一一对应的。
最稳妥的方法是,用反编译的内容做参考,以原始SSL的基础上自己写代码。
针对RP这种大型MOD就头疼了,光是弄清楚一堆新追加的global变量就很麻烦。
RP积累到现在的地步,我很佩服他们的勇气和毅力。
如果worldmap加人确认不会导致BUG的话,我准备弄个RP2.1.2b基础上的类似安逸补丁MOD,
以我现在自己正在玩的为基础,主题是安逸+飞刀,有兴趣的一起凑一下热闹也好。
做一个自己想玩的小小Mod,这是我现在的计划。
以下的是已经做到的:
治疗针 -10重量
商人即时更新
武术训练、制药、升级即时完成
汽车提前改造
SAD军事基地地图
野外战斗增加大量的飞刀、莫洛托夫酒
野外战斗战利品增加语音/医疗模块、AP+1针、能量武器书、中国训练手册、兄弟会甲、
动力甲1代 / 2代等高级货和所有的书籍
飞刀、莫洛托夫酒所需AP减少
阿路由卢卡斯教投抛至60%
EPA的3个NPC、盖西迪、史力克、天网等野外招募
可加入NPC属性、防御强化
所有野外战斗各势力规模扩至(13-24)
赏金猎人遭遇战触发条件改为正负karma都会触发,
战斗全部改成赏金猎人与其它势力的火并,胜者追杀主角。
15#
发表于 2011-3-16 13:48:31 | 只看该作者
嗯,可以向他们要开发文档,SFall源代码貌似无注释,或许作者保留有带注释的版本~
如果人家原意提供,总比自己瞎弄好多了~
16#
 楼主| 发表于 2011-3-16 22:14:39 | 只看该作者
上传worldmap加人的抓图
我在商人那里加了7位NPC的代码,但其中4位已经是我的伙伴,所以在商人队伍中只能看到3人。
[Encounter: WILD1_Trader]
type_00=pid:16777274, Item:9(wielded), Item0-3)40, Script:741           ; Average Male Merchant
type_01=pid:16777718, Item:143(wielded), Item0-3)40, Script:1408          ;Kitsune
type_02=pid:16777719, Item:143(wielded), Item0-3)40, Script:1406          ;Dex
type_03=pid:16777720, Item:143(wielded), Item0-3)40, Script:1407          ;Cat Jules
type_04=pid:16777376, Item:143(wielded), Item0-3)40, Script:437            ;Myron
type_05=pid:16777305, Item:143(wielded), Item0-3)40, Script:572            ;Cassidy
type_06=pid:16777313, Item:143(wielded), Item0-3)40, Script:383            ;Sulik
type_07=pid:16777323, Item:143(wielded), Item0-3)40, Script:139            ;Lenny

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
17#
发表于 2011-3-17 08:55:03 | 只看该作者
引用第8樓runx於2011-03-16 01:14發表的  :
發現主程序有CRC校驗,只能放棄這方面的嘗試了

發現添加NPC夥伴最簡單的方法:在WORLDMAP.TXT中野外戰鬥隊伍設定中加人。

[Encounter: WILD1_Trader]
.......


這裡有繁體 SFALL 但還沒完善

你能試試

http://www.bn13.com/bbs/read.php?tid=82423&fpage=2
18#
 楼主| 发表于 2011-3-18 15:29:06 | 只看该作者
不知道SFALL能否将辐射2队友堵路问题彻底解决呢?
在非战斗模式下,主角能穿越队友的人墙,
不然3位以上队友就能造成严重的交通堵塞...

如果没有这个问题,就可以大量增加队友数量,形成真正的团体战。
19#
发表于 2011-3-18 15:35:45 | 只看该作者
引用第17楼runx于2011-03-18 15:29发表的  :
不知道SFALL能否将辐射2队友堵路问题彻底解决呢?
目前只有叫隊友散開一點的mod:http://www.nma-fallout.com/forum/viewtopic.php?t=52908
20#
 楼主| 发表于 2011-3-18 17:32:48 | 只看该作者
楼上的MOd我放弃下载了,30分钟网页死活打不开下载页面。

昨天研究盔甲MOD,我有了一个想法,能否弄出让队友复活的脚本呢?
比如说,对死去的队友施展医疗技能?
触发脚本里删除尸体,重建pro,重置变量
能否可行呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|13号避难所

GMT+8, 2024-5-6 19:41 , Processed in 0.063107 second(s), 14 queries .

快速评论 返回顶部 返回列表