3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 2176|回复: 9
打印 上一主题 下一主题

[求助] 求解!AlgaeHabitatConfig藻类培育合更改

[复制链接]

2

主题

11

帖子

71

积分

初级玩家

Rank: 2

贡献度
0
金元
707
积分
71
精华
0
注册时间
2014-10-20
跳转到指定楼层
主题
发表于 2019-6-14 08:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tym6587456 于 2019-6-14 08:41 编辑

      求大神看看,我只想改绿藻培育合把产生污水改成产生绿藻,只改了这两个地方,进游戏后先正常,一但造了培育合播种,浇水后就卡死。求解。 还有地方没改到,还是我根本就改错了?理解错了?从没接触过这类东西,以前在学校只是接触过程序。

using System;
using System.Collections.Generic;
using TUNING;
using UnityEngine;

// Token: 0x020014BA RID: 5306
public class AlgaeHabitatConfig : IBuildingConfig
{
    // Token: 0x06005381 RID: 21377 RVA: 0x00182D88 File Offset: 0x00180F88
    public override BuildingDef CreateBuildingDef()
    {
        string id = "AlgaeHabitat";
        int width = 1;
        int height = 2;
        string anim = "algaefarm_kanim";
        int hitpoints = 30;
        float construction_time = 30f;
        float[] tier = BUILDINGS.CONSTRUCTION_MASS_KG.TIER4;
        string[] farmable = MATERIALS.FARMABLE;
        float melting_point = 1600f;
        BuildLocationRule build_location_rule = BuildLocationRule.OnFloor;
        EffectorValues tier2 = NOISE_POLLUTION.NOISY.TIER0;
        BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tier, farmable, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER1, tier2, 0.2f);
        buildingDef.Floodable = false;
        buildingDef.ViewMode = OverlayModes.Oxygen.ID;
        buildingDef.AudioCategory = "HollowMetal";
        buildingDef.UtilityInputOffset = new CellOffset(0, 0);
        buildingDef.UtilityOutputOffset = new CellOffset(0, 0);
        SoundEventVolumeCache.instance.AddVolume("algaefarm_kanim", "AlgaeHabitat_bubbles", NOISE_POLLUTION.NOISY.TIER0);
        SoundEventVolumeCache.instance.AddVolume("algaefarm_kanim", "AlgaeHabitat_algae_in", NOISE_POLLUTION.NOISY.TIER0);
        SoundEventVolumeCache.instance.AddVolume("algaefarm_kanim", "AlgaeHabitat_algae_out", NOISE_POLLUTION.NOISY.TIER0);
        return buildingDef;
    }

    // Token: 0x06005382 RID: 21378 RVA: 0x00182E78 File Offset: 0x00181078
    public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        Storage storage = go.AddOrGet<Storage>();
        storage.showInUI = true;
        Storage storage2 = go.AddComponent<Storage>();
        storage2.capacityKg = 360f;
        storage2.showInUI = true;
        storage2.SetDefaultStoredItemModifiers(AlgaeHabitatConfig.PollutedWaterStorageModifiers);
        storage2.allowItemRemoval = false;
        storage2.storageFilters = AlgaeHabitatConfig.pollutedWaterFilter;
        ManualDeliveryKG manualDeliveryKG = go.AddOrGet<ManualDeliveryKG>();
        manualDeliveryKG.SetStorage(storage);
        manualDeliveryKG.requestedItemTag = new Tag("Algae");
        manualDeliveryKG.capacity = 90f;
        manualDeliveryKG.refillMass = 18f;
        manualDeliveryKG.choreTypeIDHash = Db.Get().ChoreTypes.FetchCritical.IdHash;
        ManualDeliveryKG manualDeliveryKG2 = go.AddComponent<ManualDeliveryKG>();
        manualDeliveryKG2.SetStorage(storage);
        manualDeliveryKG2.requestedItemTag = new Tag("Water");
        manualDeliveryKG2.capacity = 360f;
        manualDeliveryKG2.refillMass = 72f;
        manualDeliveryKG2.allowPause = true;
        manualDeliveryKG2.choreTypeIDHash = Db.Get().ChoreTypes.FetchCritical.IdHash;
        KAnimFile[] overrideAnims = new KAnimFile[]
        {
            Assets.GetAnim("anim_interacts_algae_terarrium_kanim")
        };
        AlgaeHabitatEmpty algaeHabitatEmpty = go.AddOrGet<AlgaeHabitatEmpty>();
        algaeHabitatEmpty.workTime = 5f;
        algaeHabitatEmpty.overrideAnims = overrideAnims;
        algaeHabitatEmpty.workLayer = Grid.SceneLayer.BuildingFront;
        AlgaeHabitat algaeHabitat = go.AddOrGet<AlgaeHabitat>();
        algaeHabitat.lightBonusMultiplier = 1.1f;
        algaeHabitat.pressureSampleOffset = new CellOffset(0, 1);
        ElementConverter elementConverter = go.AddComponent<ElementConverter>();
        elementConverter.consumedElements = new ElementConverter.ConsumedElement[]
        {
            new ElementConverter.ConsumedElement(new Tag("Algae"), 0.030000001f),
            new ElementConverter.ConsumedElement(new Tag("Water"), 0.3f)
        };
        elementConverter.outputElements = new ElementConverter.OutputElement[]
        {
            new ElementConverter.OutputElement(0.040000003f, SimHashes.Oxygen, 303.15f, false, 0f, 1f, false, 1f, byte.MaxValue, 0)
        };
        go.AddComponent<ElementConverter>().outputElements = new ElementConverter.OutputElement[]
        {
            new ElementConverter.OutputElement(0.3f, SimHashes.Algae, 303.15f, true, 0f, 1f, false, 1f, byte.MaxValue, 0)   //只改了这两个地方,这是1处,红色部分以前是SimHashes.dirtywate   好像这是产生污水。
        };
        ElementConsumer elementConsumer = go.AddOrGet<ElementConsumer>();
        elementConsumer.elementToConsume = SimHashes.CarbonDioxide;
        elementConsumer.consumptionRate = 0.0003333333f;
        elementConsumer.consumptionRadius = 3;
        elementConsumer.showInStatusPanel = true;
        elementConsumer.sampleCellOffset = new Vector3(0f, 1f, 0f);
        elementConsumer.isRequired = false;
        PassiveElementConsumer passiveElementConsumer = go.AddComponent<PassiveElementConsumer>();
        passiveElementConsumer.elementToConsume = SimHashes.Water;
        passiveElementConsumer.consumptionRate = 1.2f;
        passiveElementConsumer.consumptionRadius = 1;
        passiveElementConsumer.showDescriptor = false;
        passiveElementConsumer.storeOnConsume = true;
        passiveElementConsumer.capacityKG = 360f;
        passiveElementConsumer.showInStatusPanel = false;
        go.AddOrGet<KBatchedAnimController>().randomiseLoopedOffset = true;
        go.AddOrGet<AnimTileable>();
        Prioritizable.AddRef(go);
    }

    // Token: 0x06005383 RID: 21379 RVA: 0x00003793 File Offset: 0x00001993
    public override void DoPostConfigureComplete(GameObject go)
    {
    }

    // Token: 0x04005923 RID: 22819
    public const string ID = "AlgaeHabitat";

    // Token: 0x04005924 RID: 22820
    private const float ALGAE_RATE = 0.030000001f;

    // Token: 0x04005925 RID: 22821
    private const float WATER_RATE = 0.3f;

    // Token: 0x04005926 RID: 22822
    private const float OXYGEN_RATE = 0.040000003f;

    // Token: 0x04005927 RID: 22823
    private const float CO2_RATE = 0.0003333333f;

    // Token: 0x04005928 RID: 22824
    private const float ALGAE_CAPACITY = 90f;

    // Token: 0x04005929 RID: 22825
    private const float WATER_CAPACITY = 360f;

    // Token: 0x0400592A RID: 22826
    private static readonly List<Storage.StoredItemModifier> PollutedWaterStorageModifiers = new List<Storage.StoredItemModifier>
    {
        Storage.StoredItemModifier.Hide,
        Storage.StoredItemModifier.Seal
    };

    // Token: 0x0400592B RID: 22827
    public static List<Tag> pollutedWaterFilter = new List<Tag>
    {
        ElementLoader.FindElementByHash(SimHashes.Algae).tag      //这是2处,以前是:ElementLoader.FindElementByHash(SimHashes.dirtywate).tag    
    };
回复

使用道具 举报

7

主题

647

帖子

831

积分

超级玩家

Rank: 5Rank: 5

贡献度
15
金元
7708
积分
831
精华
0
注册时间
2007-2-14
舒服的沙发
发表于 2019-6-14 13:53 | 只看该作者
http://bbs.blacksheepgame.com/forum.php ... 6orderby%3Ddateline   下载这个参考下他的改法

此DLL 是产石油。。。。
回复 支持 反对

使用道具 举报

36

主题

202

帖子

472

积分

高级玩家

Rank: 4

贡献度
54
金元
2555
积分
472
精华
0
注册时间
2017-11-16
硬硬的板凳
发表于 2019-6-14 19:17 | 只看该作者
应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修改其他东西能解决的,建议还是把污染水改成其他液体
回复 支持 反对

使用道具 举报

7

主题

647

帖子

831

积分

超级玩家

Rank: 5Rank: 5

贡献度
15
金元
7708
积分
831
精华
0
注册时间
2007-2-14
冰凉的地板
发表于 2019-6-14 21:02 | 只看该作者
new ElementConverter.OutputElement(0.3f, SimHashes.Algae, 303.15f, true, 0f, 1f, false, 1f, 255, 0)   改这样试试
回复 支持 反对

使用道具 举报

2

主题

11

帖子

71

积分

初级玩家

Rank: 2

贡献度
0
金元
707
积分
71
精华
0
注册时间
2014-10-20
5#
 楼主| 发表于 2019-6-15 14:12 | 只看该作者
skybyte 发表于 2019-6-14 21:02
new ElementConverter.OutputElement(0.3f, SimHashes.Algae, 303.15f, true, 0f, 1f, false, 1f, 255, 0)  ...

不行,,我改了,,也一样会卡死
回复 支持 反对

使用道具 举报

2

主题

11

帖子

71

积分

初级玩家

Rank: 2

贡献度
0
金元
707
积分
71
精华
0
注册时间
2014-10-20
6#
 楼主| 发表于 2019-6-15 14:14 | 只看该作者
天虎怒寒 发表于 2019-6-14 19:17
应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修 ...

我这有个DLL,但他改的东西多,,其中就有生产绿藻能正常,我看了,好像也只改了这两地方,,像我照着改过来,就是会卡死,
回复 支持 反对

使用道具 举报

2

主题

11

帖子

71

积分

初级玩家

Rank: 2

贡献度
0
金元
707
积分
71
精华
0
注册时间
2014-10-20
7#
 楼主| 发表于 2019-6-15 14:34 | 只看该作者
天虎怒寒 发表于 2019-6-14 19:17
应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修 ...

我改成石油了,还是不行,,也只改了两个地方,应该还有其它地方要改吧?
回复 支持 反对

使用道具 举报

36

主题

202

帖子

472

积分

高级玩家

Rank: 4

贡献度
54
金元
2555
积分
472
精华
0
注册时间
2017-11-16
8#
发表于 2019-6-15 15:32 | 只看该作者
tym6587456 发表于 2019-6-15 14:34
我改成石油了,还是不行,,也只改了两个地方,应该还有其它地方要改吧?
...

AlgaeHabitatAlgaeHabitatConfig

这两个里面的dirtwater,同时修改

回复 支持 反对

使用道具 举报

2

主题

11

帖子

71

积分

初级玩家

Rank: 2

贡献度
0
金元
707
积分
71
精华
0
注册时间
2014-10-20
9#
 楼主| 发表于 2019-6-15 17:03 | 只看该作者
天虎怒寒 发表于 2019-6-15 15:32
AlgaeHabitat和AlgaeHabitatConfig

这两个里面的dirtwater,同时修改

多谢,,终于成功了,不卡死,,正常,改成生产绿藻了,,结果要改两个文件不是液体,固体的问题。,感谢感谢。
回复 支持 反对

使用道具 举报

2

主题

11

帖子

71

积分

初级玩家

Rank: 2

贡献度
0
金元
707
积分
71
精华
0
注册时间
2014-10-20
10#
 楼主| 发表于 2019-6-15 17:04 | 只看该作者
天虎怒寒 发表于 2019-6-15 15:32
AlgaeHabitat和AlgaeHabitatConfig

这两个里面的dirtwater,同时修改

太感谢你了!
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-2-26 06:25 , Processed in 0.102015 second(s), 15 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表