mj911o2 发表于 2018-9-13 19:46

修改--非全局,仅员工移速,包括 staff 的一些修改

本帖最后由 mj911o2 于 2018-9-13 21:33 编辑

staff -----GetMaxMovementSpeed
Token: 0x06000FD1 RID: 4049 RVA: 0x00071130 File Offset: 0x0006F330
if判断里有一句
num *= this.RankDefinition.WalkSpeedMultiplier;
这段函数控制员工在该等级下的移动速度,这里的速度并非全局,仅仅是员工的速度
所以病人移速,时间流逝速度都不变
再不改变原函数的情况下,在下方添加一句
num *= speedvalues; 这种形式

num *= 2f; 这就是员工速度 *2
当然也可以在原先函数后直接 *2

GetTrainingLearningSpeed
员工学习速度
不管整段的判断,直接改return的返回值
float speedvalues;
speedvalues = this.RankDefinition.TraineeLearningSpeed * Mathf.Max(this._getTrainingLearningSpeedParam.Multiplier, 0f);
return speedvalues* 100f;
也可以直接
return this.RankDefinition.TrainingMultiplier * Mathf.Max(this._getTrainingTeachingSpeedParam.Multiplier, 0f) * 100f;
下方GetTrainingTeachingSpeed 教学速度一样
这一段我没有实际改着验证过,不过应该是这样的


关于工资,有两处,get和set,虽然并不确定,但两处应该都会参与运算,所以都改了

还有一段,临时看到的

这个是员工体力耗尽后会转到休息状态,
我在上放试着重新给该员工赋值
this.Energy.SetValue(10000f, true);
还没有具体测试,待会到游戏看看吧

TimeRemainingOnBreak
这个应该就是休息时间的计算
float num = this.GetBreakLength() - (GameTime.time - this._timeBreakStarted) / 2;
这个应该是事件缩短一半,

float num = this.GetBreakLength() - (GameTime.time - this._timeBreakStarted);
num /=num;
还可以尝试修改这段函数
GetBreakLength()
return的值根据函数中引用的方法返回值修改,或直接改为0
那么上面的num为0,效果估计就是不休息了

UpdateEnergy(float)
这个是刷新员工体力的
this.Energy.Modify(staffEnergyModifier * deltaTime, base.GetAttributeMultiplier(CharacterAttributes.Type.Energy));
可以更改第二个参数,base.GetAttributeMultiplier(CharacterAttributes.Type.Energy) + 2,这样应该是回复速度增加一倍具体可以到 this.Energy.Modify() 这个方法里看看
是 参数1 *=参数2

链接:https://pan.baidu.com/s/1C_H-4FhxPwepBOI5iDll6Q 密码:sexs

插件中包含:基于 1.3.210000
1.疫苗初始9999
2.针头随意扎人必定会被治愈并计入升星记录中
3.药柜 100%效果
4.员工训练学习、教学满速
5.员工2倍移速(在慢速模式下,效果并不明显)

k26451864 发表于 2018-9-13 19:57

请问,员工休息时间可以改的稍短一些吗,还有就是体力下降速度怎么修改,我改完后掉的慢了,回的也慢了,能不能改成快速恢复,慢速下降呢
或者咖啡机与糖果机这俩的恢复量是多少,能加大恢复量吗

mj911o2 发表于 2018-9-13 21:06

k26451864 发表于 2018-9-13 19:57
请问,员工休息时间可以改的稍短一些吗,还有就是体力下降速度怎么修改,我改完后掉的慢了,回的也慢了,能 ...

看看上面,更新了下员工休息

k26451864 发表于 2018-9-13 22:45

mj911o2 发表于 2018-9-13 21:06
看看上面,更新了下员工休息

太感谢了,这样员工休息的问题就解决了。
:lol我要做个黑心院长,多干活少休息

touch 发表于 2018-9-14 09:59

这样改移速,如果把倍数改大后,还是会出现小人导航不准和小人刹不住车的问题。。

希望楼主能解决这个问题,10倍速小人四处乱患的医院才是好医院。。

lishibingz 发表于 2018-9-14 12:21

楼主这个没开启控制台???

mj911o2 发表于 2018-9-14 14:20

本帖最后由 mj911o2 于 2018-9-14 14:21 编辑

touch 发表于 2018-9-14 09:59
这样改移速,如果把倍数改大后,还是会出现小人导航不准和小人刹不住车的问题。。

希望楼主能解决这个问题 ...
员工move状态下应该有个类似于物理系统的减速函数猜测可能是
while
movespeedvalues - rank*speedvalues
这样的循环函数,知道movespeedvalues= 0
如果是这样的形式
那么加大speedvalues的值会缩短员工到达某地时惯性向前的距离而且10倍速,改这么高干嘛,4倍速下,小人已经是急速游走的状态了


mj911o2 发表于 2018-9-14 14:20

lishibingz 发表于 2018-9-14 12:21
楼主这个没开启控制台???

感觉控制台并没什么用,所以没开如果想开,改改就好了

42422315 发表于 2018-9-15 00:42

找不到工作速度的函数很头疼

mj911o2 发表于 2018-9-15 00:48

42422315 发表于 2018-9-15 00:42
找不到工作速度的函数很头疼

看看staff 方法
或者找技能,好像是工作激情吧,+10 工作效率,看看调用情况

wmy0524 发表于 2018-9-18 22:57

感谢大佬分享

karsh 发表于 2018-9-23 18:49

怎样添加啊?

42422315 发表于 2018-9-23 22:04

mj911o2 发表于 2018-9-15 00:48
看看staff 方法
或者找技能,好像是工作激情吧,+10 工作效率,看看调用情况
...

找不到

mj911o2 发表于 2018-9-24 17:07

42422315 发表于 2018-9-23 22:04
找不到

善用分析,看方法调用情况

42422315 发表于 2018-9-24 18:52

mj911o2 发表于 2018-9-24 17:07
善用分析,看方法调用情况

根本没找到调用这个参数的函数....
就没找到设置相关

s81511 发表于 2018-10-1 18:29

本帖最后由 s81511 于 2018-10-1 18:33 编辑

42422315 发表于 2018-9-24 18:52
根本没找到调用这个参数的函数....
就没找到设置相关
staff下有一個這樣的敘述

public List<CharacterModifier> JobBoostModifiers
      {
            get
            {
                return this._jobBoostModifiers;
            }
      }
job是工作,boost是增強,但就算分析他也只有得到
// Token: 0x06000FAE RID: 4014 RVA: 0x000710D4 File Offset: 0x0006F2D4
      private void CacheJobBoostModifiers()
      {
            if (this.JobBoostModifiers == null)
            {
                this._jobBoostModifiers = new List<CharacterModifier>();
            }
            this._jobBoostModifiers.Clear();
            if (base.ModifiersComponent != null)
            {
                foreach (CharacterModifier characterModifier in base.ModifiersComponent.Modifiers)
                {
                  if (characterModifier is QualificationJobRoomScoreBoost || characterModifier is QualificationJobMaintenanceScoreBoost)
                  {
                        this._jobBoostModifiers.Add(characterModifier);
                  }
                }
            }
      }
編程苦手的我實在不知從何改起,希望大家一起研究一下


qwe011111 发表于 2018-10-5 17:31

替换之后发现营销和培训的按钮都不能点了~

mj911o2 发表于 2018-10-5 22:41

qwe011111 发表于 2018-10-5 17:31
替换之后发现营销和培训的按钮都不能点了~

版本对的上吗?这个比较老了
新版本的自己改改吧

mj911o2 发表于 2018-10-5 22:45

s81511 发表于 2018-10-1 18:29
staff下有一個這樣的敘述

public List JobBoostModifiers


第一个if
是没工作 安排工作
第二个是有工作 进行循环 具体的空 调用情况,分析看看确定一下
你看看add 的参数,如果是float 或 int 的话可以试着调大一点

s81511 发表于 2018-10-8 16:08

mj911o2 发表于 2018-10-5 22:45
第一个if
是没工作 安排工作
第二个是有工作 进行循环 具体的空 调用情况,分析看看确定一下


以下看起來都不怎麼像可以調數值


不過 仍謝謝您給予的方向

mj911o2 发表于 2018-10-9 02:29

s81511 发表于 2018-10-8 16:08
以下看起來都不怎麼像可以調數值




            get
            {
                return this._jobBoostModifiers;
            }
这个应该是取工作效率倍数的方法
你可以试试改下返回值看看效果
或者看看有没有set 方法
比如
            set
            {
                this._jobBoostModifiers = XXXXXXXXXXXXXX;
                //this._jobBoostModifiers = 999f;
            }
或者看看最开始定义的值
比如
public float _jobBoostModifiers = 1f;
如果没有 set 重新被赋值的话这里可以尝试改改


s81511 发表于 2018-10-9 14:45

mj911o2 发表于 2018-10-9 02:29
get
            {
                return this._jobBoostModifiers;


以上修改都會報錯,不過卻意外找到
GameAlgorithmsConfig下好像有很多關於維護速率或拜訪設定的初始值


類似這種


public readonly float JobPriorityScoreBoost = 1000f;

      // Token: 0x04001013 RID: 4115
      public readonly float JobSameRoomAsJobScoreBoost = 2f;

      // Token: 0x04001014 RID: 4116
      [InspectorTooltip("At the sq root of this distance the job priority is halved."
      public readonly float JobDistanceMagicNumber = 1600f;

      // Token: 0x04001015 RID: 4117
      public readonly float JobFireScore = 10000f;

      // Token: 0x04001016 RID: 4118
      public readonly float JobFireHasExtinguisherBoost = 10f;

      // Token: 0x04001017 RID: 4119
      public readonly float JobMaintenanceBaseJobScore = 10f;

      // Token: 0x04001018 RID: 4120
      public readonly float JobMaintenanceCurrentJobBoost = 2f;

      // Token: 0x04001019 RID: 4121
      public readonly float JobUpgradeScore = 100f;

      // Token: 0x0400101A RID: 4122
      public readonly float JobGhostScore = 200f;

      // Token: 0x0400101B RID: 4123
      public readonly float JobResearchScore = 2f;

      // Token: 0x0400101C RID: 4124
      public readonly float JobServiceScore = 100f;

      // Token: 0x0400101D RID: 4125
      public readonly float JobMarketingScore = 100f;


不能確定是否有影響,但謝謝您提供的思路





浮华一生、淡忘 发表于 2018-10-13 20:42

感谢分享!!!!!!!!!!!!!文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟感发生出一种无以名之的悲痛感――啊,这么好的帖子,如果将来我再也看不到了,那我该怎么办?那我该怎么办?直到我毫不忧郁的把楼主的这个帖子收藏了。我内心的那种激动才逐渐平复下来。可是我立刻想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个帖子一直往上顶,往上顶!顶到所有人都看到为止! 2018年10月13日20时42分50秒

123213662 发表于 2019-6-26 21:14

您好,针头随意扎人必定会被治愈并计入升星记录中,
请问最新版本这个怎么修改呢?

mj911o2 发表于 2019-6-26 22:43

123213662 发表于 2019-6-26 21:14
您好,针头随意扎人必定会被治愈并计入升星记录中,
请问最新版本这个怎么修改呢? ...

记不太清了
你从疫苗减少的那段函数里追吧
只有真正有效的 才会 cure++
你把判断去掉,或者始终赋值 true 就行
类似curenum之类的也++
或者直接改成999
这样只要治愈一个就能直接过

123213662 发表于 2019-6-26 23:58

mj911o2 发表于 2019-6-26 22:43
记不太清了
你从疫苗减少的那段函数里追吧
只有真正有效的 才会 cure++


好的我试试,感谢!

zra1997 发表于 2020-6-7 07:51

似乎改了之后无法晋升 不清楚是不是学习速率修改的原因

★雙星物語★ 发表于 2022-4-8 11:52

为什么staff的文件 在不改的情况之下 直接编译都会提示错误

恋上六弦琴 发表于 2022-5-20 09:07

staff类不能编译,会出错,不管是编译里面的方法还是类都是出错
页: [1]
查看完整版本: 修改--非全局,仅员工移速,包括 staff 的一些修改