小白修改用户求助小电池C#代码修改,大佬来救场
本人修改了小电池的自动增加电量,但是由于有时候闲置以后电量都自动增加的老高老高,强迫症用户简直无法接受。所以特此求助大佬,我想加这么一句代码“如果电池电量当前电量达到最大,停止自动增加”,大佬,期待你的表演!以前有帖子,可以直接修改成充满电不论怎么连电线都不会耗电的,好像是直接加一个false,你可以去查查很适合你这样的强迫症
本帖最后由 duguyixuan123 于 2019-3-29 15:48 编辑
{帖子已被原作者屏蔽} 其实小电池用的很少,只在前期用一用,后面都用大电池。所以,增加仓鼠发电机的发电量更好。 天虎怒寒 发表于 2019-3-26 22:20
以前有帖子,可以直接修改成充满电不论怎么连电线都不会耗电的,好像是直接加一个false,你可以去查查很适 ...
经常看你的动态和回复,感谢! duguyixuan123 发表于 2019-3-27 09:11
谢谢大佬,简直治好了我多年的强迫症,哈哈~ duguyixuan123 发表于 2019-3-27 09:17
其实小电池用的很少,只在前期用一用,后面都用大电池。所以,增加仓鼠发电机的发电量更好。 ...
我自动增加电量的话就可以只放一个小电池就可以搞定了♬(ノ゜∇゜)ノ♩ lbxx916 发表于 2019-3-27 14:01
我自动增加电量的话就可以只放一个小电池就可以搞定了♬(ノ゜∇゜)ノ♩
真的很纠结这个点的话,可以曲线救国直接修改太阳能发电机,让他没有光就能发电,或者靠电灯泡发电,只要你的太阳能发电机功率足够大,这些电池就能一直保持满的状态。修改教程:https://www.bilibili.com/video/av40030557
天虎怒寒 发表于 2019-3-27 14:15
真的很纠结这个点的话,可以曲线救国直接修改太阳能发电机,让他没有光就能发电,或者靠电灯泡发电,只要 ...
有时候想在外面哪个地方抽气,可是太远拉线又太慢,所以就原地制造一个就会更加方便。
duguyixuan123 发表于 2019-3-27 09:11
刚才尝试了这段代码,可是电池还是会达到最大以后继续增加,可能是“电池的当前电量这个值”存在着一点点小问题。
本帖最后由 duguyixuan123 于 2019-3-29 15:49 编辑
{帖子已被原作者屏蔽} duguyixuan123 发表于 2019-3-27 15:13
[*]public override void DoPostConfigureComplete(GameObject go)
[*]{
[*] Battery battery = g ...
报错了,说了一句“无法对属性或索引器“battery.JoulesAvailable”赋值 - 它是只读的”
本帖最后由 duguyixuan123 于 2019-3-29 15:49 编辑
lbxx916 发表于 2019-3-27 15:47
报错了,说了一句“无法对属性或索引器“battery.JoulesAvailable”赋值 - 它是只读的”
...
{帖子已被原作者屏蔽}
duguyixuan123 发表于 2019-3-27 17:10
抱歉,没看仔细,确实是只能读,不能赋值,还需要先改Battary类下的JoulesAvailable这个成员,让它可以赋 ...
谢谢大佬的指点,可是我用“Edit Method(C#)”修改以后保存,好像代码并没有发生变化;用“Edit Class(C#)”修改会报错,报错地址是其他地方,大佬怎么破?
本帖最后由 duguyixuan123 于 2019-3-29 15:50 编辑
{帖子已被原作者屏蔽}
本帖最后由 duguyixuan123 于 2019-3-29 15:50 编辑
{帖子已被原作者屏蔽}
本帖最后由 duguyixuan123 于 2019-3-29 16:30 编辑
楼主,很抱歉,之前的修改方法经过测试还是有问题的。经过分析测试后,最终我还是找到了修改电池径流电力后,“自动充电电池”会超过电池自身容量的解决方法。现在告诉你正确的修改方法。
找到 Battery 类,打开 ConsumeEnergy 方法,注意是有 float 和 bool 两个变量参数的那个 ConsumeEnergy 方法,而不是只有 float 一个变量参数的那个方法。
在 this.joulesAvailable = Mathf.Max(0f, this.JoulesAvailable - joules); 这一句的下方新添入一句 this.joulesAvailable = Mathf.Min(this.capacity, this.JoulesAvailable); 编译保存。
这样电池在“自动充电”后可用电力不会超过电池总容量,这一修改适用于所有类型电池在修改其径流电力(joulesLostPerSecond)为负值后,所造成的电池电量无限增长的问题。代码修改后如下:
public void ConsumeEnergy(float joules, bool report = false)
{
if (report)
{
float num = Mathf.Min(this.JoulesAvailable, joules);
ReportManager.Instance.ReportValue(ReportManager.ReportType.EnergyWasted, -num, StringFormatter.Replace(BUILDINGS.PREFABS.BATTERY.CHARGE_LOSS, "{Battery}", this.GetProperName()), null);
}
this.joulesAvailable = Mathf.Max(0f, this.JoulesAvailable - joules);
this.joulesAvailable = Mathf.Min(this.capacity, this.JoulesAvailable);
}
本帖最后由 lbxx916 于 2019-3-29 21:44 编辑
duguyixuan123 发表于 2019-3-29 16:13
楼主,很抱歉,之前的修改方法经过测试还是有问题的。经过分析测试后,最终我还是找到了修改电池径流电力后 ...
感谢这个用心回答我的问题,可是我在修改的时候还是报错了,报错内容是:类型“Bettery”已保留了一个名为“set_JoulesAvailable”的具有相同参数类型的成员。但是我看“JoulesAvailable”,并没有添加set,如图。
duguyixuan123 发表于 2019-3-29 16:13
楼主,很抱歉,之前的修改方法经过测试还是有问题的。经过分析测试后,最终我还是找到了修改电池径流电力后 ...
刚才我搜索了“ set_JoulesAvailable”删除了它,应该是之前改了后面没有删掉,谢谢大佬,解决了我的问题,感谢感谢! 前来学习前来学习前来学习前来学习前来学习前来学习前来学习 学习一下,留痕备查 17楼方法厉害啊{:3_94:}
页:
[1]