游戏狂人
 
- 贡献度
- 136
- 金元
- 8024
- 积分
- 1346
- 精华
- 0
- 注册时间
- 2014-5-24

|
最近很多萌新下了论坛的NOD发现进游戏就报错,1,可能版本不匹配 2,可能提供的NOD只有resources.assets文件 3,自己修改的就是错误方法
言归正传,如何正确修改游戏数据:首先你要准备两个工具
一,AssetsBundleExtractor中文汉化版2.2 ,论坛有你自己去下载,怎么修改论坛也有(只要无视utf-8格式,其他都是对的步骤)
二,DNSPY 俗称--- 反编译修改器,我的存盘有地址:链接:https://pan.baidu.com/s/1V3fsYBUtIlX3wZo0lEKEZw
提取码:4vxc
第一个工具我不多说,论坛有说明使用,注意最后一步保存你修改的文本,例如:terrain-resources.assets-4172 文本,修改完后直接保存,不要以utf-8格式储存,然后就是将生成的resources.assets,单独放一个空文件夹里。替换游戏目录文件时,不能直接复制替换
,要先把游戏目录的删除掉,把修改的文件放进游戏根目录,这样才有效·····是不是醍醐灌顶呢!!(红色字都是重点,仔细看!!)
第二个工具,我重点说DNSPY,(我是缺氧玩家,这个修改已经不要不要的了),首先点击DNSPY,选择--打开 --目录 DawnOfMan\DawnOfMan_Data\Managed 下的Assembly-CSharp.dll 文件,出现如下:
我重点说几个论坛没有的改法:(以下只能用DNSPY修改,第一个工具修改进游戏就报错!!)
(一)所有储存的格子上限和堆叠上限 (包括木头堆,干草堆,石头堆,建筑等等格子的上限,这里不是修改大小,而是修改变量限制)
搜索 updateVisibleStorage,如图
出现的数据如下: 红色的部分为我添加的部分
// Token: 0x06000603 RID: 1539 RVA: 0x0002D548 File Offset: 0x0002B748
private void updateVisibleStorage()
{
if (base.isBuilt() && base.hasAnyFlag(EntityFlags.VisibleStorage))
{
MadrugaShared.RandomGenerator randomGenerator = new MadrugaShared.RandomGenerator(base.getId());
int num = 0;
int num2 = 0;
UnityEngine.Object.Destroy(this.mStorageProps);
this.mStorageProps = new GameObject();
this.mStorageProps.name = "Storage props";
this.mStorageProps.transform.SetParent(this.mObject.transform, false);
int slotCount = base.getSlotCount();
for (int i = 0; i < slotCount; i++)
{
Slot slot = base.getSlot(i);
int amount = slot.getAmount();
for (int j = 0; j < amount; j++)
{
if (num % Structure.StorageLayerSkip[num2 == 0)
{
GameObject expr_BC = UnityEngine.Object.Instantiate<GameObject>((slot.getEntityType() as ResourceType).getModelStorage());
expr_BC.transform.SetParent(this.mStorageProps.transform, false);
Vector3 vector = MadrugaShared.Constants.Vector3Zero;
if (num > 0)
{
float num3 = Structure.StorageLayerRadius[num2 * this.getStructureType().getStorageRadius();
vector = randomGenerator.rangeFlatVector(num3 * 0.5f);
if (vector.sqrMagnitude > 0.05f)
{
vector += vector.normalized * 0.5f;
}
}
expr_BC.transform.position = base.getPosition() + vector + (float)num2 * MadrugaShared.Constants.Vector3Up * 0.333f;
expr_BC.transform.rotation = Quaternion.Euler(0f, randomGenerator.range(-20f, 20f), 0f);
}
num++;
if (num2 < Structure.StorageLayers.Length && num > Structure.StorageLayers[num2])
{
num2++;
} (如何添加:右键鼠标点这行,选择Edit Medthod(C#)反编译,按照下面的格式添加数据,完成后点击右下角的Compile,然后保存点DNSPY上的保存模块或者全部保存)
if (num2 > 3) (注意是这里的红色数据,就是我添加的)
{
num2 = 3;
}
}
}
MadrugaShared.Util.setLayerRecursive(this.mStorageProps, GameConstants.StructurePropsLayerIndex);
}
}
(二)修改树木的生长时间(求人不如求自己),摸索了一个小时自己改出来了
搜索 TreeRegrowthData 翻倒数据如下位置:
// Token: 0x06001769 RID: 5993 RVA: 0x0001246B File Offset: 0x0001066B
public void resetGrowthData()
{
this.mState.Timer = 14400f; (这个是数据重置时间,不用管)
this.mState.YoungTreeRef = null;
}
// Token: 0x0600176A RID: 5994 RVA: 0x00012489 File Offset: 0x00010689
public bool update(float timeStep)
{
timeStep *= 5f; (这是我添加的数据,即5倍成长时间)
this.mState.Timer -= timeStep; (其实还有一种改法,直接改成{我试过,效果都一样}: this.mState.Timer -=timeStep* 5f; 意思就是乘以5倍)
return this.mState.Timer <= 0f;
}
(三)鱼塘和泥土的刷新时间
搜索 BankManager 翻倒数据位置 如下:
// Token: 0x06000BE1 RID: 3041 RVA: 0x00040CAC File Offset: 0x0003EEAC
public void tick(float timeStep)
{
int count = this.mBanks.Count;
for (int i = 0; i < count; i++)
{
Bank bank = this.mBanks[i];
bank.increaseFishAmount(timeStep / 7400f); (将7400改为150,等于1秒刷新1%鱼儿进度,这样修改很变了,基本还没改完,就100%满了)
bank.increaseMudAmount(timeStep / 2400f); (将2400改为150,等于1秒刷新3%泥土进度)
继续往下翻倒:如下数据
// Token: 0x06000BE9 RID: 3049 RVA: 0x0000AFA4 File Offset: 0x000091A4
private bool bankHasFish(Bank bank)
{
return bank.getFishAmount() > 0.332f; (这个是指一次弄一条鱼就离开的数据,我改为 return bank.getFishAmount() > 0.996f; 意思就是钓完3条鱼就离开,当然只有两个空间的小人,满了也会离开)
}
// Token: 0x06000BEA RID: 3050 RVA: 0x0000AFB3 File Offset: 0x000091B3
private bool bankHasMud(Bank bank)
{
return bank.getMudAmount() > 0.332f; (这个是指一次弄一泥土就离开的数据)
}
}
}
四,贸易商人交易数量和停留时间搜索 trader
// Token: 0x06000841 RID: 2113 RVA: 0x00036008 File Offset: 0x00034208
public override void tick(float timeStep)
{
base.tick(timeStep);
if (base.isIdle())
{
this.mTraderSaveState.IdleTime += timeStep;
if (this.mTraderSaveState.IdleTime > 240f) (这是贸易商人停留时间,改为2倍=480f)
{
this.done();
}
}
}
继续往下翻到,看我的标注,就是修改的地方(这里是修改贸易商人携带东西的数量)
// Token: 0x06000848 RID: 2120 RVA: 0x00036218 File Offset: 0x00034418
private void addResourceProducts(EntityAmounts amounts)
{
MadrugaShared.RandomGenerator instance = MadrugaShared.Singleton<MadrugaShared.RandomGenerator>.Instance;
Era era = MadrugaShared.TransientSingleton<KnowledgeManager>.CurrentInstance.getEra();
List<EntityType> typeEntities = MadrugaShared.TransientSingleton<EntityTypeManager>.CurrentInstance.getTypeEntities<ResourceType>();
List<ResourceType> list = new List<ResourceType>();
for (int i = 0; i < typeEntities.Count; i++)
{
ResourceType resourceType = (ResourceType)typeEntities[i];
if (this.canTrade(resourceType))
{
list.Add(resourceType);
}
}
int num = instance.range(5, 10); (随机携带(5,10) 个种类物品 修改为range(10, 20);这个数值比较适中,亲测)
for (int j = 0; j < num; j++)
{
ResourceType entityType = list[instance.range(0, list.Count)];
amounts.add(entityType, this.getRandomResourceAmount());
}
for (int k = 0; k < typeEntities.Count; k++)
{
ResourceType resourceType2 = (ResourceType)typeEntities[k];
if (resourceType2.getForceTraderEra() == era)
{
amounts.add(resourceType2, this.getRandomResourceAmount());
}
}
}
// Token: 0x06000849 RID: 2121 RVA: 0x00036314 File Offset: 0x00034514
private int getRandomResourceAmount()
{
MadrugaShared.RandomGenerator instance = MadrugaShared.Singleton<MadrugaShared.RandomGenerator>.Instance;
return instance.range(1, (int)(6 + MadrugaShared.TransientSingleton<KnowledgeManager>.CurrentInstance.getEra())); (将这句话中的数值(1,6)改为(10,60)即是10倍和60倍最小和最大值,亲测基本在10--100多个不等物品,接着改最下面的数值)
}
{
list.Add(domesticatedVariant);
}
}
}
if (list.Count > 0)
{
int index = instance.range(0, list.Count);
amounts.add(list[index], instance.range(1, 6)); (如上对应数值,将1和6改为10和60,也就是对应数值,你上面改多少,下面就是多少,你要是改99999数值,电脑炸了,别找我)
}
}
另外附上我自己修改的数据,不变态的修改,主要修改内容如下: (对应游戏版本是,3DM内未加密版本1.11,其他版本无效)
1.石头堆8格X10=80,干草堆8格X10=80,木头堆 8格X10=80 (三种建筑储存东西的耐久增加2倍)
2.野外树果树成长速度5倍,贸易商人携带物品数量增加10倍
3.鱼塘刷新材料速度增加
4.野外生物掉落肉,骨头,皮 增加2倍
5.制作面粉(小火炉:1小麦=1面粉--产出1稻草,水磨坊:3小麦=3面粉--产出3稻草)
6.制作亚麻布(1亚麻=2亚麻布--产出1稻草)
7.制作啤酒(2啤酒=1小麦--产出1稻草)
8.牛产奶2个,羊产毛2个,山羊产奶2个
9.各种材料,衣服,食物,例如干皮,干肉,干鱼,干草等等腐败时间增加2倍
10.人物移动速度改为2.5,血量改为300(成年人)
11.成年狗的血量增加为300,攻击增加为200,索敌范围增加为2500
12,4种矿场(铜矿,火石矿,锡矿,铁矿)的上限改为150(总值是165,如果你觉得少,自己用第一个工具修改,感觉矿石用不完)
其余没改,什么1肉变9肉,1皮变9皮,那样改就没法玩下去了!!(题外话,不喜勿喷)
下载地址:https://pan.baidu.com/s/1vbPu46zQuz0mRwdKv9B-_A 提取码:
使用方法:解压缩文件 Assembly-CSharp中的文件 放在 \DawnOfMan\DawnOfMan_Data\Managed下 ,注意备份你自己的文件,防止版本不对
解压缩文件 resources 中的文件放在DawnOfMan\DawnOfMan_Data 下,注意不要直接替换,先备份你的游戏文件,然后删除掉根目录中的resources.assets文件,然后将下载的resources.assets丢进去,不按步骤则无效!!!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
1
查看全部评分
-
|