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

注册 登录

QQ登录

只需一步,快速开始

查看: 4356|回复: 10
打印 上一主题 下一主题

[求助] 求大神解答为什么改了植物自动掉落速率没效果.

[复制链接]

8

主题

138

帖子

637

积分

超级玩家

Rank: 5Rank: 5

贡献度
100
金元
2273
积分
637
精华
1
注册时间
2018-6-1
跳转到指定楼层
主题
发表于 2018-7-29 15:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
using System;
using System.Collections.Generic;

namespace TUNING
{
   
// Token: 0x0200123A RID: 4666
   
public class CROPS
   
{
        
// Token: 0x0600480B RID: 18443 RVA: 0x00002C07 File Offset: 0x00000E07
        
public CROPS()
        
{
        
}

        
// Token: 0x0600480C RID: 18444 RVA: 0x0014CE10 File Offset: 0x0014B010
        
// Note: this type is marked as 'beforefieldinit'.
        
static CROPS()
        
{
        
}

        
// Token: 0x04004C13 RID: 19475
        
public const float GROWTH_RATE = 0.00166666671f;

        
// Token: 0x04004C14 RID: 19476
        
public const float WILD_GROWTH_RATE = 0.000416666677f;

        
// Token: 0x04004C15 RID: 19477
        
public const float PLANTERPLOT_GROWTH_PENTALY = -0.5f;

        
// Token: 0x04004C16 RID: 19478
        
public const float BASE_BONUS_SEED_PROBABILITY = 0.1f;

        
// Token: 0x04004C17 RID: 19479
        
public const float SELF_HARVEST_TIME = 2400f;

        
// Token: 0x04004C18 RID: 19480
        
public const float SELF_PLANT_TIME = 2400f;

        
// Token: 0x04004C19 RID: 19481
        
public const float FERTILIZATION_GAIN_RATE = 1.66666663f;

        
// Token: 0x04004C1A RID: 19482
        
public const float FERTILIZATION_LOSS_RATE = -0.166666672f;

        
// Token: 0x04004C1B RID: 19483
        
public static List<Crop.CropVal> CROP_TYPES = new List<Crop.CropVal>
        
{
            
new Crop.CropVal("BasicPlantFood", 1800f, 1, true),
            
new Crop.CropVal(PrickleFruitConfig.ID, 3600f, 1, true),
            
new Crop.CropVal(MushroomConfig.ID, 4500f, 1, true),
            
new Crop.CropVal("ColdWheatSeed", 10800f, 18, true),
            
new Crop.CropVal(SpiceNutConfig.ID, 4800f, 4, true),
            
new Crop.CropVal(BasicFabricConfig.ID, 1200f, 1, true),
            
new Crop.CropVal(SwampLilyFlowerConfig.ID, 7200f, 2, true)
        
};
   
}
}






第一个是2400f是掉落速率但是没效果


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

1

主题

29

帖子

91

积分

初级玩家

Rank: 2

贡献度
0
金元
905
积分
91
精华
0
注册时间
2012-2-14
舒服的沙发
发表于 2018-7-30 09:18 | 只看该作者
你发的都是些啥玩意  你自己看得懂不  实在不行咱可以上图啊
回复 支持 反对

使用道具 举报

0

主题

25

帖子

86

积分

初级玩家

Rank: 2

贡献度
0
金元
855
积分
86
精华
0
注册时间
2016-2-13
硬硬的板凳
发表于 2018-8-8 20:42 | 只看该作者
CROPS 里边一堆常量属性,当然不会变化了。 const就是常量的意思。
回复 支持 反对

使用道具 举报

8

主题

138

帖子

637

积分

超级玩家

Rank: 5Rank: 5

贡献度
100
金元
2273
积分
637
精华
1
注册时间
2018-6-1
冰凉的地板
 楼主| 发表于 2018-8-9 22:10 | 只看该作者
cfb291 发表于 2018-8-8 20:42
CROPS 里边一堆常量属性,当然不会变化了。 const就是常量的意思。

请问怎么修改植物成熟掉落的时间

回复 支持 反对

使用道具 举报

1

主题

390

帖子

457

积分

高级玩家

Rank: 4

贡献度
0
金元
4565
积分
457
精华
0
注册时间
2013-3-12
5#
发表于 2018-8-10 20:04 | 只看该作者
本帖最后由 hughhp 于 2018-8-10 20:09 编辑

修改你复制的最下面那几个

new Crop.CropVal("BasicPlantFood", 1800f, 1, true),

BasicPlantFood是膳食树(最常用的那个)1800f就是三个周期成熟(600f等于一个周期) 1掉落食物个数

比如ColdWheatSeed冰原小麦,生长周期就是18周,掉落18个冰原小麦
血的教训:不要修改的太夸张,周期太短的话,小人就都去收食物不干活了,掉落食物太多,小人吃不完,就都烂在地上了,更麻烦


回复 支持 反对

使用道具 举报

8

主题

138

帖子

637

积分

超级玩家

Rank: 5Rank: 5

贡献度
100
金元
2273
积分
637
精华
1
注册时间
2018-6-1
6#
 楼主| 发表于 2018-8-11 14:23 | 只看该作者
hughhp 发表于 2018-8-10 20:04
修改你复制的最下面那几个

new Crop.CropVal("BasicPlantFood", 1800f, 1, true),

这个我知道我是想改植物成熟自动掉落的时间
回复 支持 反对

使用道具 举报

0

主题

73

帖子

198

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1978
积分
198
精华
0
注册时间
2008-3-29
7#
发表于 2019-8-20 17:05 | 只看该作者
同问一下
回复 支持 反对

使用道具 举报

2

主题

41

帖子

46

积分

初级玩家

Rank: 2

贡献度
0
金元
455
积分
46
精华
0
注册时间
2017-12-25
8#
发表于 2019-8-29 11:43 | 只看该作者
453333333333333333333333333333333333333333333333
回复 支持 反对

使用道具 举报

0

主题

17

帖子

17

积分

新手玩家

Rank: 1

贡献度
0
金元
171
积分
17
精华
0
注册时间
2018-10-11
9#
发表于 2019-10-8 18:20 | 只看该作者
楼上找的代码都不对,我的亲测有效
方法:
使用dnspy打开Assembly-CSharp.dll文件
查找ExtendEntityToBasicPlant
在搜索结果中找到同名结果,点击进入在其中找到此行
growing.maxAge = max_age;
max_age默认是2400f,将max_age替换成想要修改的时间即可
例子:growing.maxAge=1f

当前版本代码,完整:
using System;
using System.Collections.Generic;
using TUNING;
using UnityEngine;

// Token: 0x020017DB RID: 6107
public partial class EntityTemplates
{
        // Token: 0x06005D4D RID: 23885 RVA: 0x001BF65C File Offset: 0x001BD85C
        public static GameObject ExtendEntityToBasicPlant(GameObject template, float temperature_lethal_low = 218.15f, float temperature_warning_low = 283.15f, float temperature_warning_high = 303.15f, float temperature_lethal_high = 398.15f, SimHashes[] safe_elements = null, bool pressure_sensitive = true, float pressure_lethal_low = 0f, float pressure_warning_low = 0.15f, string crop_id = null, bool can_drown = true, bool can_tinker = true, bool require_solid_tile = true, bool should_grow_old = true, float max_age = 2400f)
        {
                template.AddOrGet<EntombVulnerable>();
                PressureVulnerable pressureVulnerable = template.AddOrGet<PressureVulnerable>();
                if (pressure_sensitive)
                {
                        PressureVulnerable pressureVulnerable2 = pressureVulnerable;
                        SimHashes[] safe_elements2 = safe_elements;
                        pressureVulnerable2.Configure(pressure_warning_low, pressure_lethal_low, 10f, 30f, safe_elements2);
                }
                else
                {
                        pressureVulnerable.Configure(safe_elements);
                }
                template.AddOrGet<WiltCondition>();
                template.AddOrGet<Prioritizable>();
                template.AddOrGet<Uprootable>();
                if (require_solid_tile)
                {
                        template.AddOrGet<UprootedMonitor>();
                }
                template.AddOrGet<ReceptacleMonitor>();
                template.AddOrGet<Notifier>();
                if (can_drown)
                {
                        template.AddOrGet<DrowningMonitor>();
                }
                template.AddOrGet<TemperatureVulnerable>().Configure(temperature_warning_low, temperature_lethal_low, temperature_warning_high, temperature_lethal_high);
                template.AddOrGet<OccupyArea>().objectLayers = new ObjectLayer[]
                {
                        ObjectLayer.Building
                };
                KPrefabID component = template.GetComponent<KPrefabID>();
                if (crop_id != null)
                {
                        GeneratedBuildings.RegisterWithOverlay(OverlayScreen.HarvestableIDs, component.PrefabID().ToString());
                        Crop.CropVal cropVal = CROPS.CROP_TYPES.Find((Crop.CropVal m) => m.cropId == crop_id);
                        template.AddOrGet<Crop>().Configure(cropVal);
                        Growing growing = template.AddOrGet<Growing>();
                        growing.growthTime = cropVal.cropDuration;
                        growing.shouldGrowOld = should_grow_old;
                        growing.maxAge = max_age;
                        template.AddOrGet<Harvestable>();
                        template.AddOrGet<HarvestDesignatable>();
                }
                component.prefabInitFn += delegate(GameObject inst)
                {
                        PressureVulnerable component2 = inst.GetComponent<PressureVulnerable>();
                        if (safe_elements != null)
                        {
                                foreach (SimHashes hash in safe_elements)
                                {
                                        component2.safe_atmospheres.Add(ElementLoader.FindElementByHash(hash));
                                }
                        }
                };
                if (can_tinker)
                {
                        Tinkerable.MakeFarmTinkerable(template);
                }
                return template;
        }
}

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

13

主题

351

帖子

1089

积分

游戏狂人

Rank: 6Rank: 6

贡献度
97
金元
7007
积分
1089
精华
0
注册时间
2016-12-1
10#
发表于 2019-10-8 22:10 | 只看该作者
哈哈哈哈哈哈哈9 发表于 2019-10-8 18:20
楼上找的代码都不对,我的亲测有效
方法:
使用dnspy打开Assembly-CSharp.dll文件

感谢,最好用编辑IL指令来改,115 0143 ldarg.s  max_age (14) 换成 115 0143 ldc.r4 1 (后面的数字可以随便填)
我之前在growing 里面的函数中乱改,结果各种出问题,比如植物能立即自动收获但没有果实掉落之类的
回复 支持 反对

使用道具 举报

2

主题

44

帖子

75

积分

初级玩家

Rank: 2

贡献度
6
金元
511
积分
75
精华
0
注册时间
2018-3-22
11#
发表于 2019-11-7 12:30 | 只看该作者
耕耘gareth 发表于 2019-10-8 22:10
感谢,最好用编辑IL指令来改,115 0143 ldarg.s  max_age (14) 换成 115 0143 ldc.r4 1 (后面的数字可以 ...

膜拜大佬
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 23:07 , Processed in 0.114733 second(s), 29 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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