注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Lavender Lily

a noob

 
 
 

日志

 
 

【原创】用PKHeX的Event Flags修改事件是否完成;教你还原王冠极限特训效果  

2017-04-18 23:42:59|  分类: 发表の帖子 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 转载请注明作者及原帖地址:http://www.pmcenter.cn/forum.php ... &extra=page%3D1

 前言:虽然我潜水那么多年了,国内PM圈大环境还是日常关注下的,不想宝可梦走到第七世代因为机子的破解正版氛围是反不如六代时了,所以PKHeX(最牛的宝可梦正统作全世代记录修改器,原地址:https://projectpokemon.org/forum ... -1-7-savpkm-editor/)的使用者也变多了,昨天入睡前突然想写点什么,就决定讲讲怎么用PKHeX修改某个事件是否完成吧。当然我说这个前言的初衷么,还是希望,破解机都打通了PKHeX可以修改正版卡记录了,那游戏你总搞个正版卡带比较好你说是吧?!

好了,言归正传,我们来看看,这是Event Flags功能读取日/月记录时的界面,当然你不要问我Event Flags在哪点出来,选择中文时叫做“事件旗标”,这个翻译怎么说呢,我想“立Flag”这个网络用语大家都懂吧,所以这翻的…我还是习惯性的用英文界面来讲好了 
【原创】用PKHeX的Event Flags修改事件是否完成;教你还原王冠极限特训效果 - 搞七捻三 - Lavender Lily


先简单粗暴的解释下,Flag是啥意思。抛开计算机专用的词汇性质,你理解为旗帜也可以啊。我打个简单的比方,古代打仗,我占领了你的营地,我会做啥呢?把我的旗帜竖起来,宣告这里我占领了。所以旗帜起到的是一个“标识”的作用,旗帜竖起来,就是1,表示事情做好了,反之则是0,表示这个事情未完成。

我现在想做这么一件事,我的月版里在月轮湖已经把小星云领掉了,但是日版还没有触碰这个剧情过,所以我能不能通过观察剧情完成前后的Flag情况对比来还原月版里日月神“交合”留下个小星云让你带走的剧情呢?这当然可以。
上图的记录就是我的日版带着索尔迦雷欧保存在触发剧情的地理坐标前。我们要尽可能的得到有效的信息,那就得尽量减少操作及不同项。游戏里这个剧情是走到某个坐标满足条件则自动触发的,所以我选择在前一格保存,提取记录,触发后一等操作权回到玩家手上,马上保存,再提取记录,通过这两个记录的比对去得到我们想要的Flag变化情况。

细心的盆友可能发现了,你这不是多此一举吗,你看图中不是Received Gift Cosmog有的直接选择是否打钩吗?如果你玩过这个功能,你会发现,我本来小星云已经领了,现在把打钩去掉了,到了日/月轮湖,不是重新触发日月神“交合”的动画留下小星云让你带走,而是直接省略了这一步,只是小星云站在原地等你来带走它,这是什么道理?咦?你可仔细看好了,我的记录是在触碰这个剧情前,Received Gift Cosmog可是打着勾的,这和字面意思根本就是违背的啊!其实原因很简单,比如说地上有个道具,我捡了,这个道具就没了,这样的事件只有两个状态,我捡走了或我还没捡走,因此往往只需要一个Flag就能表达了。但这个剧情并不是,我至少得先用一个Flag标记,我是否激活了小星云,再用一个Flag去标记我是否领取了小星云。因为一个Flag只能是1或0,不能表达两个以上的状态,所以这个剧情中,我们至少要用到两个Flag,那么该剧情软件直接提供的这个单选框能起到完美还原的作用吗?明显是不能的。我也不卖关子了吧,Received Gift Cosmog这个单选框,本质就是Status为1216号的Flag,见图中右下角区域。我把这个勾去掉,Received Gift Cosmog的勾也会一同去掉,他们等效,因为指向的是同一个存储地址啊。所以左上角的Event Flags区域内的功能,就是包含在右下角Status中的5个罢了,只是明确了意义,又比较用得到,作者才单独给他们做了功能区域。

接下来我们来比对下前文说的两个记录的不同,用左下角的FlagDiff Researcher的功能,Load Old打开触发前的记录,Load New打开触发后的记录,软件会把不同之处给你检索出来,请看下图(先跳了个消息弹窗“No Event Constant diff found.“,这很好,右下角区域的Constant就不用管啦)
【原创】用PKHeX的Event Flags修改事件是否完成;教你还原王冠极限特训效果 - 搞七捻三 - Lavender Lily


看到没,IsSet 1217,UnSet 1216.
这是啥意思呢,说明触发以后的记录(用Load New打开的)产生了两个变化,即Status为1217号的Flag由0变成了1,Status为1216号的Flag由1变成了0.如果我们打开对应记录观察这两个Flag,得到的结果会是一致的。
这时候可能有人就想啊,我打开我已经完成小星云领取的记录文件,把1217和1216号Flag的情况改成和触发前的存档中一样,即1217为0,1216为1,是不是就能把该剧情还原到触碰前了呢?于是试了下发现,哎,奇怪,剧情没有再触发啊,小星云也不在那,怎么没看到任何变化呢?
这个问题,只要仔细想想就能明白疏忽在哪了。我的记录是小星云领完了,这个剧情是分解成”①剧情未触发②小星云诞生,你可以去领了③我领好了,剧情完成“三个步骤,你用①和②比对,不能得出②到③剧情继续的Flag变化,这是比较容易脑抽犯错的地方。于是我把②和③的两个提取的记录比较下,②是Old,③是New,得出”IsSet 0503,1216,“。再用①作Old和③作New对比下,得出”IsSet 0503,1217,“。
通过上述信息,我们可以整理出来
                  Flag    0503    1216    1217
整个触发剧情前      0          1          0
小星云可以领了      0          0          1
小星云领取完成      1          1          1

这时你明白该怎么把这个剧情彻底还原到触发前了吧,也明白为什么仅仅修改Received Gift Cosmog(作者便捷提供的单选框,即1216号Flag)只能使得小星云站在那让你领了吧~

事例讲解就到这吧,有兴趣的盆友可以自己挖一些Flag的含义,不要忘记分享,我先抛砖引玉一下好了~

①还原对战树门口的赤红(这是道风景啊~)
0500置0,0981置0

②之前说了道具一般就一个Flag控制么,那就来个欧哈纳牧场地上的护符金币再现吧~
1837置0

上文中我们讲的软件是PKHeX,忽然想到PKheX我没有找到可以还原个体值王冠判定的地方(该项个体值存在王冠判定的话框的背景色是绿的,没找到可以更改的地方,或许以后会有吧……也可能我没发现么?),于是接着上文,我再讲讲怎么还原王冠判定(不要问我王冠有啥用…)

案例:把不久前配信的闪光卡噗·鸣鸣练好了,我忽然觉得为了我换配招使用时可能会用到的急速折返多蹭点血,物攻个体值(在数值表象上)也有必要极限,于是我对这只卡噗·鸣鸣的物攻使用了一发银色王冠。
使用银色王冠前后的卡噗·鸣鸣的第七世代精灵数据文件(可以用PKHeX导入导出,文件后缀名.pk7)的数据不同之处,通过16进制比对软件,如下图所示
【原创】用PKHeX的Event Flags修改事件是否完成;教你还原王冠极限特训效果 - 搞七捻三 - Lavender Lily


不同之处有两处,一处是偏移量0x06,一处是0xDE(0x表示数值是16进制表示)。
和第六世代一样,0x06-0x07是Checksum的值,至于Checksum是啥,简单的来说,字面意思校验和,知道校验二字的意思就可以了,说明该值是会随着其他内容的改变而改变的。那么很明显,剩下的0xDE就是王冠判定的数据存储字节所在了,0x06是由于0xDE的变动跟着改变的。
王冠判定也就两可能,是或否,所以每个个体值的王冠判定只需要一位就可以存储,我们把0xDE的字节展开为二进制
0x04 = 0000 0100
0x06 = 0000 0110

可知控制物攻个体值王冠判定的位了(咦,你问我为什么这块内容比上文写的简单很多,因为晚了我要去睡觉了啊~ 

于是给个结果示意图,懂了吧(按顺序存储在0xDE的低6位)~
王冠判定(0xDE):
00000000(无)
00000001(HP)
00000010(物攻)
00000100(防御)
00001000(特攻)
00010000(特防)
00100000(速度)


二进制和十六进制的转换用电脑自带的计算器就可以了。
接着只要用16进制编辑软件如WinHex改一下偏移量0x06和0xDE的值就可以了(你问我0x06怎么改?F6 - F4 = 06 - 04 = 02,民不民白?)。
顺便给一下图中所用的16进制比对软件↓
 HexComparison_3.0_XiaZaiBa.zip
  评论这张
 
阅读(49)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017