3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 3639|回复: 9
打印 上一主题 下一主题

[原创] [MOD]收取“御剑飞行”和“沦波舟”的研究报告

  [复制链接]

5

主题

25

帖子

477

积分

高级玩家

Rank: 4

贡献度
93
金元
945
积分
477
精华
1
注册时间
2010-11-28
跳转到指定楼层
主题
发表于 2011-1-14 22:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 louyihua 于 2011-1-14 22:59 编辑

书信“御剑飞行”和“沦波舟”的研究报告在目前游戏中是无法正常获取的,早在去年9月已经有人提出来了。

但是,对于MOD党来说,收封信还是可以的:自己动手,丰衣足食。

首先,分析一下信件收不到的原因:
这两封信件均不属于“主线信件”,因此会由分散在各个场景中的showMail函数负责派发给玩家。
在解包后的脚本Scripts\Q07.LU A(安陆县场景脚本)中,可以看到showMail函数开始的几行如下:

查阅解包后的data.table文件可知,这两个ID(134和135)正是信件“御剑飞行研究报告”和“沦波舟研究报告”的信件ID。那既然这两封信件没有收到,必然是其sendMail函数没有被执行到的缘故;该函数没有执行到,必然是上述两条if语句的条件得不到满足所致;而这两条if语句的条件很简单,是一个对剧情变量(GetMainStory())的判断和一个对场景次地点(minor)判断的条件作逻辑“与”得来的,也就是说如果其中一个条件得不到满足,整个if语句的测试就会失败。回头再查data.table,会发现上述if语句中的两个剧情变量值91600和130100分别对应剧情“第二章:感恩”和“第三章:返回安陆”,也就是说攻略本上关于两个词条获得时间的说明并无问题;而其场景次地址的值“Q13N01”查data.table可知是安陆县的长庚书院。两个条件加起来,应该是说在特定的剧情点时,进入长庚书院将会收到这两封信(这里攻略本上把地点说错了)。
可是,遗憾地是,即使在正确的时间进入了正确的地点,依然没有信件收到……那问题出在哪了呢?显然GetMainStory是一个全局定义的函数,到处都在用,它出错是不可能的,唯一的可能就是minor变量的值不对,不是条件中测试的这个值,那它的值究竟是什么呢?等等,minor这个变量在哪定义了?明明,明明没有在这个函数里定义嘛~貌似,它也不是全局变量哦~这么着……它不就得是空值(nil)了么?唉……一个nil怎么会和“Q13N01”相等呢……难怪各位玩家从来也收不到书信了!(写这部分的是哪位程序员TX啊?是不是C语言写惯了习惯让编译器帮检查变量有无定义?像LU A这种动态语言变量是不能乱写滴~~~赶紧蹲墙角画圈圈去!)

好,既然原因找到了,那怎么解决呢?其实,说起来很简单,既然minor变量的值是nil,那咱就用正确的方法得到minor呗,这个方法是神马捏……?对,你答对了,就是“getMinor()”,所以说,只要用“getMinor()”分别替换这两处“minor”,就OK了。不信?有图为证:

具体MOD方法:
1、解包scripts.zpk.37,打开q07.lu a,将第2142行和2146行的两个单词“minor”均替换成“getMinor()”(都不带引号啦!),保存。(如果版本低于1.3.7,则请根据自己的版本选择替换1.1.6/1.0.4/1.0.3/1.0.1/1.0.0中的相应部分)。
2、在游戏的Data下建一个文件夹,名为“Scripts”,之后将上述修改后的q07.lu a复制到该文件夹中。
3、下载此处的MOD辅助补丁,按说明解压到游戏目录中(啦啦啦,广告时间~~~);或者,如果不愿意用此补丁的,可以参考此文制作完整的Scripts目录的MOD包。
4、进入游戏,读入相应剧情点的存档,进入长庚书院。嘿嘿,看到什么了吧?

评分

1

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-5-16 22:09 , Processed in 0.035592 second(s), 21 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表