tym6587456 发表于 2019-6-14 08:35

求解!AlgaeHabitatConfig藻类培育合更改

本帖最后由 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    
    };

skybyte 发表于 2019-6-14 13:53

http://bbs.blacksheepgame.com/forum.php?mod=viewthread&tid=5891058&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline   下载这个参考下他的改法

此DLL 是产石油。。。。

天虎怒寒 发表于 2019-6-14 19:17

应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修改其他东西能解决的,建议还是把污染水改成其他液体

skybyte 发表于 2019-6-14 21:02

new ElementConverter.OutputElement(0.3f, SimHashes.Algae, 303.15f, true, 0f, 1f, false, 1f, 255, 0)   改这样试试

tym6587456 发表于 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)...

不行,,我改了,,也一样会卡死

tym6587456 发表于 2019-6-15 14:14

天虎怒寒 发表于 2019-6-14 19:17
应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修 ...

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

tym6587456 发表于 2019-6-15 14:34

天虎怒寒 发表于 2019-6-14 19:17
应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修 ...

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

天虎怒寒 发表于 2019-6-15 15:32

tym6587456 发表于 2019-6-15 14:34
我改成石油了,还是不行,,也只改了两个地方,应该还有其它地方要改吧?
...

AlgaeHabitat和AlgaeHabitatConfig

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

tym6587456 发表于 2019-6-15 17:03

天虎怒寒 发表于 2019-6-15 15:32
AlgaeHabitat和AlgaeHabitatConfig

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

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

tym6587456 发表于 2019-6-15 17:04

天虎怒寒 发表于 2019-6-15 15:32
AlgaeHabitat和AlgaeHabitatConfig

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

太感谢你了!:handshake
页: [1]
查看完整版本: 求解!AlgaeHabitatConfig藻类培育合更改