13号避难所

 找回密码
 立即注册
搜索
查看: 5399|回复: 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 18:54:34 | 显示全部楼层
sfall?
看来还要再研究一下这个了,刚刚开始研究脚本,路还是很长啊
板凳
 楼主| 发表于 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代码文件,所以记事本用不了。
地板
 楼主| 发表于 2011-3-15 22:29:51 | 显示全部楼层
加入新物品,然后在Obj_dude里加入代码定义新物品的效果,就OK,但这不是真正突破91%呀。
昨天突发奇想,能否将修改int16进制的方法应用到修改主程序,但暂时没有任何进展。

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

这几天正在体验(13-24)的野外战斗规模,结果碰上Enclave巡逻队就悲剧了。
Enclave巡逻队规模变成(13-24),上场率改成100%镭射Minigun,最高战斗难度,
太恐怖了,一回合我的6人小团队被灭团。
5#
 楼主| 发表于 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了。
6#
 楼主| 发表于 2011-3-16 10:25:34 | 显示全部楼层
回 哔哔咖啡:
要抓图只能等下班回家了。不过,NPC出现在野外队伍中——这一点绝对没问题。
我现在担心的是,假如把某个NPC事先拉过来,那么到原来NPC应该出现的场景 ,会不会出问题?
如果全局变量控制场景中人物的出现与否,那就不用担心了。


回10楼:
不是编译器的问题,而是把int反编译得来的ssl再编译成int的话,很容易出问题的 。
辐射2的ssl很少是单独存在的,绝大部分都是要引用一堆预定义。
RP使用了sfall之后,更是如此。
7#
 楼主| 发表于 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都会触发,
战斗全部改成赏金猎人与其它势力的火并,胜者追杀主角。
8#
 楼主| 发表于 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
9#
 楼主| 发表于 2011-3-18 15:29:06 | 显示全部楼层
不知道SFALL能否将辐射2队友堵路问题彻底解决呢?
在非战斗模式下,主角能穿越队友的人墙,
不然3位以上队友就能造成严重的交通堵塞...

如果没有这个问题,就可以大量增加队友数量,形成真正的团体战。
10#
 楼主| 发表于 2011-3-18 17:32:48 | 显示全部楼层
楼上的MOd我放弃下载了,30分钟网页死活打不开下载页面。

昨天研究盔甲MOD,我有了一个想法,能否弄出让队友复活的脚本呢?
比如说,对死去的队友施展医疗技能?
触发脚本里删除尸体,重建pro,重置变量
能否可行呢?
11#
 楼主| 发表于 2011-3-19 12:39:46 | 显示全部楼层
FO2的源代码有可能公开吗?
像铁血2,可是因为1.13的出现重新焕发青春呢。
12#
 楼主| 发表于 2011-3-21 02:14:21 | 显示全部楼层
还是一个好的编译器效率高啊,相比之下UltraEdit只能用在特定的几个方面。
这个帖子已经没有太大意义了...
感谢楼上几位的参与,我最近的一些成果已经另立帖子了,希望对别人有些帮助。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-27 17:30 , Processed in 0.067181 second(s), 14 queries .

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