背着悬赏目标进行地图传送。游戏原本会让你独自传送而把他丢下;这个改动会把他一起带过去,活着,且仍可交付。四个两字节补丁和一个钩子,不触碰任何游戏文件,每个地址都已对照
赏金传送背负赏金目标时使用地图传送。适用于《红色沙漠》1.0.0.2944、1.0.0.2949或1.0.0.2976版本。抓住他,打开地图,随便选个地方。他会跟你一起走,而且你落地后仍然可以把他交上去。
未安装模组的游戏并不会阻止你旅行,只是不会带上他。你会独自抵达,而你费尽力气在战斗中绑住的那个人,要么回到你发现他的地方,要么已从这个世界上消失。
它不会更改任何游戏文件。 四个双字节补丁和三个钩子,在游戏运行时注入,插件卸载时移除。
1.0.7修复了1.0.6在任务过场动画中导致的崩溃,例如第六章Yann登场时以及“在Ivynook寻找William”任务中出现的崩溃。该版本尚未在实际游玩中测试。 如果仍有问题,请附上日志在漏洞标签页发帖。请参阅下方“如果出现问题”。
它改变了什么- 传送不再使他坠落。 游戏里把背着人称为“接住”,而移动会在三个不同的地方主动结束这一状态,一次在服务器端,两次在客户端。这三处都被跳过了。
- 离开场地后不再删除他。 远行会拆散你所在位置由你的会话生成的所有角色,而被抓住的亡命徒就是其中之一。它会放过任何仍被别人控制的目标,而且之前没有任何东西告诉它你正控制着他。现在有了。
- 一分钟后他还在你背上。 第四件事漏掉了一个捕获,搬运动画不再作为后备,而到达某处时恰好重置那些标志。每次落地后它大约运行一秒,这就是为什么在找到问题之前,五次测试运行都以他脸朝下趴在目的地告终。
- 只有在你带着他的时候。 那四个也是游戏结束时抚摸动物、收起纸条以及在抓取被挣脱时掉落赏金的方式。当传送开始时你正抱着某人,该模组只会为你和你抱着的人关闭这些功能,并在抱持结束的瞬间重新开启。其他所有角色,以及你在其余时间,都和不装模组时完全一样地松手放下东西。1.0.6版本为游戏中的每个角色都关闭了这些功能,这正是导致过场动画崩溃的原因。
设置BountyTeleportation.ini 位于插件旁边,在 [Settings] 下。两者默认都是开启的,通常都不需要改动。该文件在游戏启动时只读取一次。
- 保留接球 (1) 在传送过程中保持对捕获物的抓取,从传送开始直至搬运结束。
- 保留携带 (1)通过告诉离场扫描程序仍有人持有该角色,从而保留角色本身。单独使用毫无作用,因为释放操作先执行,并清除它所读取的标志。
安装使用终极模组管理器(DMM)- 下载DMM文件并将其拖放到DMM窗口中。
- 启用并骑乘。
手工- Ultimate ASI Loader 必须放在游戏的 bin64 文件夹中,与 CrimsonDesert.exe 位于同一目录下。如果它被命名为 version.dll 且没有加载任何内容,请将其重命名为 winmm.dll。
- 关闭游戏后,将 BountyTeleportation.asi 复制到 bin64 文件夹中。游戏首次启动时,会在其自身所在位置生成 BountyTeleportation.ini。
两个下载包都不包含ini文件,因为插件会在首次运行时自行生成。DMM下载的是纯插件版本,仅包含DMM注册所需的内容;手动下载则额外附带说明文件和许可证文件。
更新中 正在替换 BountyTeleportation.asi。你的 ini 配置将保留。
卸载 正在从bin64中删除BountyTeleportation文件。
卡住了,正搬着东西1.0.0在整个会话期间都让那四项保持关闭,结果玩家会因为抚摸过的狗而被冻结,卡在拿着已经收起的笔记的状态,还会穿着只抓取了一半的赏金目标。安装1.0.1后应该会自动清除这些问题,因为游戏的清理逻辑会再次运行。如果仍未解决,请将KeepCatch设为0,启动游戏一次,然后再改回来。
放下你背着的人,再移除模组。 在带球过程中把球拿出来,会让游戏保留一个无人能自行清除的接球状态,而解决办法还是一样的。
已知限制- 传送后搬运失败,例如在搬运你带来的不法分子时被击中,仍会跳过那四个人,直到该次搬运结束。将KeepCatch=0设置一次即可清除该状态。
- 扛着一个活生生的亡命之徒走进镇子,当地人的反应跟你预想的一样。那是游戏本体的反应,不是这个模组加的内容。
- 悬赏目标是它专为设计和测试的用途。你能捡到的其他东西都未经测试。
兼容性- 为Steam版《红色沙漠》打造,适用于CrimsonDesert.exe 1.0.0.2944、1.0.0.2949或1.0.0.2976。1.0.0、1.0.3和1.0.4在发布前已于游戏内测试,一名玩家在1.0.5发布当天确认可用,一名玩家在1.0.6的测试版本上完成了悬赏任务。1.0.7发布前未经过测试。1.0.1和1.0.2未经过测试。尚未针对2.02.00进行验证。
- 七个地址已被写入或挂钩,每个地址在写入任何内容之前都会先对照应有的字节进行校验。插件为它所知悉的每个游戏版本各携带一套地址,并使用与你游戏匹配的那一套。后续补丁会再次移动这些地址,如果所有套装都不匹配,它就完全不写入任何内容,并在日志中指明失败的校验项。它会停止工作,而不是写到错误的地方——9月21日和23日发生的情况正是如此:模组静默失效,没有对游戏造成任何损害。
- 更快的原版动画修剪器 由kuiye123制作,属于跳过所有加载场景的一部分,在1.0.4之前会丢下赏金目标。其KLIFF TELEPORT分类大幅缩短了Kliff的传送时间,导致游戏在此模组开始保持搬运状态之前就丢下了赏金目标。1.0.5从更早的时刻开始保持搬运,zx3691在开启修剪器的情况下于游戏中确认了这一点。感谢zx3691发现该冲突并提供了解释和确认此问题的日志,感谢hansdepaula将其缩小到该分类。thatswedishdad的日志后来显示游戏从第二个位置提前丢下目标,1.0.6也已覆盖该情况。
- 它与你的其他插件除了加载器外没有任何共同之处。它不读取任何输入,也不绑定任何按键。
如果有问题附上日志。没有日志的报告很难修复。日志文件是bin64目录下的BountyTeleportation.log,就在插件旁边。它只有几十行,没有需要开启的设置,所以请附上整个文件。它记录了每一次触发那四个跳过功能的传送,以及每一次它们再次关闭的时间,因此能直接看出模组是否与所发生的情况有关。从1.0.4版本开始,它还会标明是游戏的哪个部分释放了携带的赏金,正是这一行能确定与另一个模组的冲突。
如果你之后重启过游戏,那么上一次会话的日志是 BountyTeleportation.01.log,更早的日志则一直到 .24。请附上出问题那次会话的日志,在 bugs 标签页或作为 GitHub issue 提交。
它是如何被发现的第二个插件是为这项任务专门写的,它挂接了传送和接取机制,并记录下它们所做的一切。四次释放中有三次是通过读取搬运状态消失前最后运行的是哪个调用而找到的,每一次都耗费了一轮测试运行和一名倒地的法外之徒。第四次用那种方式始终没能找到,因为它根本不在传送路径上,而调用日志无法把它从你落地后一秒内发生的所有其他事情中挑出来。找到它的是每秒十次监视接取组件自身的字节,并记录下每一个发生变动的字节。其中一轮运行表明,双方在同一个时钟周期内、从同一个调用点丢失了相同的四个字段,并指出了它。两个插件以及完整的说明都在GitHub上。
文件1.0.7 的 SHA-256:
b7a4edf010c1469b088fc5bd1cdb6dc7e43b3df255dd788eb1dcea23bec570f5 BountyTeleportation-1.0.7-DMM.zip
0b771b5b103a19fbff6f382dafbfa653811fe06cb6ec01e1fb9d6dcd5f31cf6d 赏金传送-1.0.7.zip
4e818fb6f4a6e80d70305c42cb397a4ef950d97ea7b61c46404726b8fe63f126 BountyTeleportation.asi
VirusTotal对1.0.7版本的插件检测结果为0/71,其DMM归档为0/64,手动归档为0/68。该插件在1.0.0版本检测结果为0/70,1.0.1版本为0/71,1.0.3至1.0.6各版本均为0/71,而1.0.2版本为1/70,那一项是微软的Trojan:Win32/Wacatac.B!ml,这个名称是微软对其机器学习模型不喜欢的文件所起的,并非在其中识别出了任何具体特征。普通机器上的Windows Defender在该文件中未发现任何问题,且自那以后的所有版本,从1.0.3到1.0.7,均通过了微软的检测。报告是公开的:
插件 和
DMM档案库扫描器将来仍可能把BountyTeleportation.asi标记为可疑,因为它所做的事情从模型角度来看很像修改器:它是一个加载进游戏的DLL,在游戏自身的四个函数上写入跳转,并挂钩了另外三个函数。它只导入kernel32,没有其他导入,因此其中没有网络代码,也没有窗口,并且不读写任何注册表键或游戏文件。它带有代码签名,在“属性”→“数字签名”中会显示Seth Walker,位于微软的身份验证链下。每一行代码都在GitHub上,你可以自行阅读或构建。
来源与许可麻省理工学院。来源位于
github.com/shin2344234/bounty-teleportation,以及与之配套的研究插件,而FEASIBILITY.md则是完整的工作内容,包括那些错误的读数。
Discord 和 PatreonShin234的模组和东西 是Discord,用于提问和查看正在进行的开发进度。Bug最好通过GitHub issues或Bug标签页提交,以便得到追踪。Patreon是
patreon.com/cw/Shin234所有已发布内容保持免费,不会为此有所保留。