找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问移动社区

快捷导航
发帖
首页收藏任务勋章改名|变性卡加入我们新手指南
全站
1小时前
全站
2小时前
全站
3小时前
全站
4小时前
全站
4小时前
全站
4小时前
全站
9小时前
全站
11小时前
全站
11小时前
全站
22小时前
系统
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
2天前
查看: 60|回复: 2
收起左侧

[M4求助] 【modding】求助UI修改binary文件修改

[复制链接]

发表于 2023-11-8 16:39:46 | 显示全部楼层 |阅读模式

快快登录说出你的故事吧~!

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

x
各位大佬亲亲,我在试图修改ui的路途中遇到了问题,我愿意有偿咨询!

起因:众所周知,吸血鬼成长到青年之后年龄就不会增长,因此在模拟市民学的UI中,会和老人一样,显示“已生活天数”,而不是“还有多少天”进入下一阶段。
经过:我想让我的拥有不死特质药水的小人同样显示“已生活天数”,而不是卡在进入成年人的路上。

结果:失败

我安装好了FFdec(JPEXS),在instance:DA7597EAEB9BA388 中,找到了相应的脚本:
  1. protected function HandleSimAgeProgressTooltipData(param1:AgeProgressTooltipData) : void
  2.       {
  3.          var _loc2_:LocKey = null;
  4.          if(this.mbAgeProgressTooltipDisabled)
  5.          {
  6.             (this.mcAgeBar.GetExtension(TooltipExtension) as TooltipExtension).Data = null;
  7.             return;
  8.          }
  9.          var _loc3_:uint = GameplayStateData.SimAge.age;
  10. <u><b>         if(SimAgeTypes.CanSimAge(_loc3_))
  11.          {
  12.             _loc2_ = KeysGP.SUMMARY_PANEL_DAYS_LEFT.Clone([param1.ready_to_age_day - param1.current_day]);
  13.          }
  14.          else
  15.          {
  16.             _loc2_ = KeysGP.SUMMARY_PANEL_DAYS_LIVED.Clone([param1.days_alive]);
  17.          }</b></u>
  18.          (this.mcAgeBar.GetExtension(TooltipExtension) as TooltipExtension).Data = {
  19.             "type":Tooltip.TYPE_DESCRIPTION_ONLY,
  20.             "text":_loc2_
  21.          };
  22.       }
复制代码
如图,判定if函数的条件是 CanSimAge代码,于是我找到了CanSimAge的代码:
  1. public static function CanSimAge(param1:uint) : Boolean
  2.       {
  3.          if(IsElder(param1))
  4.          {
  5.             return false;
  6.          }
  7. if(GameplayStateData.SimOccultType.Type == OccultTypes.OCCULT_VAMPIRE && IsYoungAdultOrOlder(param1))
  8.          {
  9.             return false;
  10.          }
  11.          var _loc2_:* = GameplayStateData.GetTraitInfoByType(SimTraitsInfo.TRAIT_ROBOT).length > 0;
  12.          if(_loc2_)
  13.          {
  14.             return false;
  15.          }
  16.          return true;
  17.       }
复制代码
可以看到,判断条件sim是否可以增龄有三:1. 老人;2. 青年以上的吸血鬼;3. 机器人。
于是我照抄了吸血鬼的代码,把VAMPIRE改成了WITCH(这是正规的occult type名),但是没有效果,改成了SPELLCASTER,依然没有效果。
我甚至把吸血鬼的代码删掉了,但是进游戏后吸血鬼依然是青年后显示“已生活天数”。

我不知道是哪里出错了,是反编译代码出错了嘛?我确定我的package生效了,我在MOD里面找到了我自建的mod。

求大佬求教!!!

本帖寻求最佳方案

回复被采纳后将获得奖励 辣条 5 ,目前已有 2 个回复 我要奖励
楼主热帖

共收到 0 菊花
打赏榜
4
暂无
--
5
暂无
--
6
暂无
--
7
暂无
--
版权声明
本站积极遵守中华人民共和国各项法律法规,促进良好是社会公共道德,鼓励劳动者劳有所得。
为保护作者和平台的共同利益,在本站发布的原创内容所包含模型、图片、代码等版权归作者和平台共有,平台承诺不将此权利行使于法律行为以外用途。
本站原创作品仅供购买或下载者本人使用,任何平台或个人擅自转载、售卖本站原创作品,本站均保留诉讼权利。
此条款自作品发布起即时生效。

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

 楼主| 发表于 2023-11-10 04:17:14 手机端访问 | 显示全部楼层

没有大佬指点一下吗
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-13 21:50:54 | 显示全部楼层

经过长时间大量的测试,我终于发现了原因。不能直接在标有public static function进行改动,因为这个是全局设定,只改这一个地方没有。要么把所有含有该function的scale form GFX files改了,要么只改直接影响游戏的protected function.

特意回来回复一下,以免以后有人遇到类似问题。
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

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

本版积分规则

声明:

本站官方淘宝店只有【三宫六院论坛】这一个,店址:sgly.taobao.com,除此之外都是假冒的!!
本站不支持任何形式的线下交易,不论谁以任何形式要求您打款给任何第三方人士或平台,请勿上当!
如有站内用户发表的内容侵犯了您的合法权益,请通过投诉区或在线客服反馈处理。

亦或发送电子邮件至:Service@Sglynp.Com

下载客户端
安卓客户端 苹果客户端

快来加入我们吧!!

官方微信公众号

三宫六院吧

(豫ICP备2021003909号-2 | 豫公网安备 41010302002732号)

© 2016 - 2024 Zhengzhou Luoma Network Technology Co., Ltd.

公众号| 手机版| 小黑屋| 三宫六院

GMT+8, 2024-11-13 20:01