qimeila123456 发表于 2018-3-29 20:01

请问在牧场版里面怎么修改生物的下蛋速度

请问在牧场版里面怎么修改生物的下蛋速度

psyduck197 发表于 2018-4-3 12:29

本帖最后由 psyduck197 于 2018-4-3 12:30 编辑

{} - > HappinessMonitor


   public override void InitializeStates(out StateMachine.BaseState default_state)
    {
      default_state = this.satisfied;
      this.satisfied.Transition(this.happy, (HappinessMonitor.Instance smi) => smi.happiness.value >= smi.def.happyThreshold, UpdateRate.SIM_1000ms);
      this.happy.Transition(this.satisfied, (HappinessMonitor.Instance smi) => smi.happiness.value < smi.def.happyThreshold, UpdateRate.SIM_1000ms).ToggleEffect((HappinessMonitor.Instance smi) => this.effect);
      float num = 15f; 多少周期生蛋
      this.effect = new Effect("Happy", CREATURES.MODIFIERS.HAPPY.NAME, CREATURES.MODIFIERS.HAPPY.TOOLTIP, 0f, true, false, false);
      this.effect.Add(new AttributeModifier(Db.Get().Amounts.Fertility.deltaAttribute.Id, 100f / num / 600f, CREATURES.MODIFIERS.HAPPY.NAME, false, false, true));
    }

dxfcwq 发表于 2018-5-5 08:11

psyduck197 发表于 2018-4-3 12:29
{} - > HappinessMonitor




又更新了..这个已经没用了...不知道新的怎么改呀

psyduck197 发表于 2018-5-5 19:38

本帖最后由 psyduck197 于 2018-5-5 22:50 编辑

{} - > EntityTemplates

public static GameObject ExtendEntityToWildCreature(GameObject prefab, int space_required_per_creature, float lifespan)
      {
                prefab.AddOrGetDef<AgeMonitor.Def>();
                prefab.AddOrGetDef<HappinessMonitor.Def>();
                Tag prefabTag = prefab.GetComponent<KPrefabID>().PrefabTag;
                float num = 100f / (lifespan * 600f * 0.6f); num每秒多少繁殖度
                float value = num * 10f;驯服对比野生的倍数
                WildnessMonitor.Def def = prefab.AddOrGetDef<WildnessMonitor.Def>();
                def.wildEffect = new Effect("Wild" + prefabTag.Name, STRINGS.CREATURES.MODIFIERS.WILD.NAME, STRINGS.CREATURES.MODIFIERS.WILD.TOOLTIP, 0f, true, true, false);
                def.wildEffect.Add(new AttributeModifier(Db.Get().Amounts.Wildness.deltaAttribute.Id, 0.008333334f, STRINGS.CREATURES.MODIFIERS.WILD.NAME, false, false, true));
                def.wildEffect.Add(new AttributeModifier(Db.Get().Amounts.Fertility.deltaAttribute.Id, num, STRINGS.CREATURES.MODIFIERS.WILD.NAME, false, false, true));
                def.wildEffect.Add(new AttributeModifier(Db.Get().CritterAttributes.Metabolism.Id, 25f, STRINGS.CREATURES.MODIFIERS.WILD.NAME, false, false, true));
                def.tameEffect = new Effect("Tame" + prefabTag.Name, STRINGS.CREATURES.MODIFIERS.TAME.NAME, STRINGS.CREATURES.MODIFIERS.TAME.TOOLTIP, 0f, true, true, false);
                def.tameEffect.Add(new AttributeModifier(Db.Get().CritterAttributes.Happiness.Id, -1f, STRINGS.CREATURES.MODIFIERS.TAME.NAME, false, false, true));
                def.tameEffect.Add(new AttributeModifier(Db.Get().Amounts.Fertility.deltaAttribute.Id, value, STRINGS.CREATURES.MODIFIERS.TAME.NAME, false, false, true));
                def.tameEffect.Add(new AttributeModifier(Db.Get().CritterAttributes.Metabolism.Id, 100f, STRINGS.CREATURES.MODIFIERS.TAME.NAME, false, false, true));
                prefab.AddOrGetDef<OvercrowdingMonitor.Def>().spaceRequiredPerCreature = space_required_per_creature;
                return prefab;
      }

可达鸭10086号 发表于 2018-5-5 22:02

psyduck197 发表于 2018-5-5 19:38
{} - > EntityTemplates

public static GameObject ExtendEntityToWildCreature(GameObject prefab, int s ...

还不是很懂 改大改小?

psyduck197 发表于 2018-5-5 22:47

可达鸭10086号 发表于 2018-5-5 22:02
还不是很懂 改大改小?

float num = 100f / (lifespan * 600f * 0.6f);
0.6改的越小生的越快

jikiol 发表于 2018-5-10 18:31

psyduck197 发表于 2018-5-5 19:38
{} - > EntityTemplates

public static GameObject ExtendEntityToWildCreature(GameObject prefab, int s ...

生存温度在哪里改,光虫养着养着就消失了

psyduck197 发表于 2018-5-11 12:39

jikiol 发表于 2018-5-10 18:31
生存温度在哪里改,光虫养着养着就消失了

光虫
{} ->BaseLightBugConfig




public static GameObject BaseLightBug(string id, string name, string desc, string anim_file, string traitId, Color lightColor, EffectorValues decor, bool is_baby, string symbolOverridePrefix = null)
    {
      float num = 50f;
      KAnimFile anim = Assets.GetAnim(anim_file);
      string initialAnim = "idle_loop";
      GameObject gameObject = EntityTemplates.CreatePlacedEntity(id, name, desc, num, anim, initialAnim, Grid.SceneLayer.Creatures, 1, 1, decor, default(EffectorValues), SimHashes.Creature, null, 293f);
      GameObject template = gameObject;
      FactionManager.FactionID faction = FactionManager.FactionID.Prey;
      string navGridName = "FlyerNavGrid1x1";
      NavType navType = NavType.Hover;
      num = 2f;
      string onDeathDropID = "Meat";
       int onDeathDropCount = 0;
      float freezing_ = CREATURES.TEMPERATURE.FREEZING_1;
       float hot_ = CREATURES.TEMPERATURE.HOT_1;
        float hot_2 = CREATURES.TEMPERATURE.HOT_2;
      EntityTemplates.ExtendEntityToBasicCreature(template, faction, traitId, navGridName, navType, 32, num, onDeathDropID, onDeathDropCount, true, true, 30f, freezing_, hot_, CREATURES.TEMPERATURE.FREEZING_2, hot_2);死亡掉落类型 死亡掉落数量 适温下限 适温上限
生存温度下限 生存温度上限      if (symbolOverridePrefix != null)
      {
            gameObject.AddOrGet<SymbolOverrideController>().ApplySymbolOverridesByPrefix(Assets.GetAnim(anim_file), symbolOverridePrefix, 0);
      }
      gameObject.GetComponent<KPrefabID>().AddPrefabTag(GameTags.Creatures.Flyer);
      gameObject.AddOrGet<NotCapturable>();
      gameObject.AddOrGet<LoopingSounds>();
      LureableMonitor.Def def = gameObject.AddOrGetDef<LureableMonitor.Def>();
      def.lures = new Tag[]
      {
            GameTags.Phosphorite
      };
      gameObject.AddOrGetDef<ThreatMonitor.Def>();
      if (is_baby)
      {
            KBatchedAnimController component = gameObject.GetComponent<KBatchedAnimController>();
            component.animWidth = 0.5f;
            component.animHeight = 0.5f;
      }
      if (lightColor != Color.black)
      {
            Light2D light2D = gameObject.AddOrGet<Light2D>();
            light2D.Color = lightColor;
            light2D.overlayColour = LIGHT2D.LIGHTBUG_OVERLAYCOLOR;
            light2D.Range = 5f;
            light2D.Angle = 0f;
            light2D.Direction = LIGHT2D.LIGHTBUG_DIRECTION;
            light2D.Offset = LIGHT2D.LIGHTBUG_OFFSET;
            light2D.shape = LightShape.Circle;
            light2D.drawOverlay = true;
      }
      ChoreTable.Builder chore_table = new ChoreTable.Builder().Add(new DeathStates.Def(), true).Add(new AnimInterruptStates.Def(), true).Add(new TrappedStates.Def(), true).Add(new StunnedStates.Def(), true).Add(new DebugGoToStates.Def(), true).Add(new DrowningStates.Def(), true).PushInterruptGroup().Add(new CreatureSleepStates.Def(), true).Add(new GrowUpStates.Def(), true).Add(new RanchedStates.Def(), true).Add(new LayEggStates.Def(), true).Add(new EatStates.Def(), true).Add(new MoveToLureStates.Def(), true).Add(new CallAdultStates.Def(), true).PopInterruptGroup().Add(new IdleStates.Def(), true);
      EntityTemplates.AddCreatureBrain(gameObject, chore_table, GameTags.Creatures.Species.LightBugSpecies, symbolOverridePrefix);
      return gameObject;
    }








光虫使用的公共参数
{} TUNING > CREATURES


public class TEMPERATURE
      {
            // Token: 0x04004FC5 RID: 20421
            public static float FREEZING_3 = 243f;

            // Token: 0x04004FC6 RID: 20422
            public static float FREEZING_2 = 253f;    生存温度下限

            // Token: 0x04004FC7 RID: 20423
          public static float FREEZING_1 = 263f;    适温下限

            // Token: 0x04004FC8 RID: 20424
            public static float FREEZING = 273f;

            // Token: 0x04004FC9 RID: 20425
            public static float COOL = 283f;

            // Token: 0x04004FCA RID: 20426
            public static float MODERATE = 293f;

            // Token: 0x04004FCB RID: 20427
            public static float HOT = 303f;

            // Token: 0x04004FCC RID: 20428
          public static float HOT_1 = 313f; 适温上限


            // Token: 0x04004FCD RID: 20429
          public static float HOT_2 = 323f; 生存温度上限

            // Token: 0x04004FCE RID: 20430
            public static float HOT_3 = 333f;
      }




罗德隆的森林 发表于 2018-8-31 18:00

psyduck197 发表于 2018-5-11 12:39
光虫
{} ->BaseLightBugConfig



请问怎么减轻“期待”debuff的影响啊,一个生了蛋,其他的都干瞪眼不生了。求教怎么改。

耕耘gareth 发表于 2018-9-9 23:08

psyduck197 发表于 2018-5-5 19:38
{} - > EntityTemplates

public static GameObject ExtendEntityToWildCreature(GameObject prefab, int s ...

下蛋的速度又更新了,求新的修改方法

Lo���� 发表于 2018-9-11 19:40

下蛋速度总是更新 为什么呢

psyduck197 发表于 2018-12-19 16:19

耕耘gareth 发表于 2018-9-9 23:08
下蛋的速度又更新了,求新的修改方法


{} - > FertilityMonitor


// Token: 0x0600227B RID: 8827 RVA: 0x000ACE44 File Offset: 0x000AB244
      public Instance(IStateMachineTarget master, FertilityMonitor.Def def) : base(master, def)
      {
            this.fertility = Db.Get().Amounts.Fertility.Lookup(base.gameObject);
            if (GenericGameSettings.instance.acceleratedLifecycle)
            {
                this.fertility.deltaAttribute.Add(new AttributeModifier(this.fertility.deltaAttribute.Id, 33.3333321f, null, false, false, true));
            }
            float value = 100f / (def.baseFertileCycles * 600f);   ; value 每秒多少繁殖度
            this.fertileEffect = new Effect("Fertile", CREATURES.MODIFIERS.BASE_FERTILITY.NAME, CREATURES.MODIFIERS.BASE_FERTILITY.TOOLTIP, 0f, false, false, false, null, 0f, null);
            this.fertileEffect.Add(new AttributeModifier(Db.Get().Amounts.Fertility.deltaAttribute.Id, value, CREATURES.MODIFIERS.BASE_FERTILITY.NAME, false, false, true));
            this.InitializeBreedingChances();
      }




我是摄影师 发表于 2019-9-2 13:59

请问这个数值修改600变成1是不是100倍速度?
页: [1]
查看完整版本: 请问在牧场版里面怎么修改生物的下蛋速度