|
本帖最后由 mj911o2 于 2018-9-17 23:28 编辑
之前一直有人在说改了工资导致幸福度不高而辞职
这里给出一个修改幸福度的方法
staff --- UpdateEnergy
此方法为刷新体力,应该是游戏内,员工无论是休息,工作等,都在这里进行赋值调整体力
由此可知,该方法在游戏运行时,一直在被调用当然,也可以在Updata里添加该方法引用,因为Updata函数就是循环刷新体力等的
我这么写只是在改体力的时候图个方便
if (this.Energy != null)
在上面if 语句块里添加下面一段(最好是在if块里添加,这句就是在判断单位的体力是否为空,加到外面可能会造成不可知的BUG)
base.Happiness.SetValue(99999f, true);
这一句就是调整员工幸福度为99999 之后true是回调,不了解的话就改成true就行
另外,说说修改体力以下两句是刷新体力
float staffEnergyModifier = roomUsing.Definition.GetStaffEnergyModifier(this, roomUsing);
this.Energy.Modify(staffEnergyModifier * deltaTime, base.GetAttributeMultiplier(CharacterAttributes.Type.Energy));
这一段为共用函数段,增加和减少体力都是用的这个,所以如果直接在第一句或第二句的最后 *10 的话,那么就会造成增加快,减少也快的情况
当staffEnergyModifier * deltaTime为正时增加,负时减少,所以如果不想无脑满体力的话,需要事先判断该值
所以做如下修改
if (base.RoomUsing != null)
{
float num = base.RoomUsing.Definition.GetStaffEnergyModifier(this, base.RoomUsing) * deltaTime;
if (num > 0f)
{
num *= 100f; //百倍回复
}
else
{
num /= 10f; //十分之一倍减少
}
this.Energy.Modify(num, base.GetAttributeMultiplier(CharacterAttributes.Type.Energy));
return;
}
上方修改意思为,休息时百倍回复,工作时体力十分之一倍下降 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
2
查看全部评分
-
|