快快登录说出你的故事吧~!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位大佬亲亲,我在试图修改ui的路途中遇到了问题,我愿意有偿咨询!
起因:众所周知,吸血鬼成长到青年之后年龄就不会增长,因此在模拟市民学的UI中,会和老人一样,显示“已生活天数”,而不是“还有多少天”进入下一阶段。
经过:我想让我的拥有不死特质药水的小人同样显示“已生活天数”,而不是卡在进入成年人的路上。
结果:失败
我安装好了FFdec(JPEXS),在instance:DA7597EAEB9BA388 中,找到了相应的脚本:
- protected function HandleSimAgeProgressTooltipData(param1:AgeProgressTooltipData) : void
- {
- var _loc2_:LocKey = null;
- if(this.mbAgeProgressTooltipDisabled)
- {
- (this.mcAgeBar.GetExtension(TooltipExtension) as TooltipExtension).Data = null;
- return;
- }
- var _loc3_:uint = GameplayStateData.SimAge.age;
- <u><b> if(SimAgeTypes.CanSimAge(_loc3_))
- {
- _loc2_ = KeysGP.SUMMARY_PANEL_DAYS_LEFT.Clone([param1.ready_to_age_day - param1.current_day]);
- }
- else
- {
- _loc2_ = KeysGP.SUMMARY_PANEL_DAYS_LIVED.Clone([param1.days_alive]);
- }</b></u>
- (this.mcAgeBar.GetExtension(TooltipExtension) as TooltipExtension).Data = {
- "type":Tooltip.TYPE_DESCRIPTION_ONLY,
- "text":_loc2_
- };
- }
复制代码 如图,判定if函数的条件是 CanSimAge代码,于是我找到了CanSimAge的代码:
- public static function CanSimAge(param1:uint) : Boolean
- {
- if(IsElder(param1))
- {
- return false;
- }
- if(GameplayStateData.SimOccultType.Type == OccultTypes.OCCULT_VAMPIRE && IsYoungAdultOrOlder(param1))
- {
- return false;
- }
- var _loc2_:* = GameplayStateData.GetTraitInfoByType(SimTraitsInfo.TRAIT_ROBOT).length > 0;
- if(_loc2_)
- {
- return false;
- }
- return true;
- }
复制代码 可以看到,判断条件sim是否可以增龄有三:1. 老人;2. 青年以上的吸血鬼;3. 机器人。
于是我照抄了吸血鬼的代码,把VAMPIRE改成了WITCH(这是正规的occult type名),但是没有效果,改成了SPELLCASTER,依然没有效果。
我甚至把吸血鬼的代码删掉了,但是进游戏后吸血鬼依然是青年后显示“已生活天数”。
我不知道是哪里出错了,是反编译代码出错了嘛?我确定我的package生效了,我在MOD里面找到了我自建的mod。
求大佬求教!!!
本帖寻求最佳方案
回复被采纳后将获得奖励 辣条 5
,目前已有 2 个回复
我要奖励
|