qscgu135 发表于 2019-12-8 01:18

收集的大佬的修改攻略,大家一起来补充下!

本帖最后由 qscgu135 于 2019-12-9 14:17 编辑

收集的大佬的修改攻略,大家一起来补充下!
容器的容量
搜索:container
修改 LoadParams 的数值倍数


容器装汤的代码
搜索:container
修改 Update
图中整段删除或打上//注释掉


负重100
搜索:InventoryBackpack
自行在添加:this.m_MaxWeight = 100f;


搜索 BowSkillAXESkill   spearSkill,
如AXESkill斧头技能找到      return this.m_DamageMul.Evaluate(this.m_Value);
改成                                     return this.m_DamageMul.Evaluate(this.m_Value) * 10f;

采集动物尸体2倍
搜索GetItemsCountMul
直接改 return (int)this.m_ItemsCountMul.Evaluate(this.m_Value) * 2;

技能倍率搜索:OnSkillAction
修改:this.m_Value += this.m_Progress.Progress(this.m_Value) * 50f;


火把燃料搜索:TorchInfo
修改:this.m_BurningDurationInMinutes = 9600f;


叠加完整步骤
搜索stack
双击Awake
原本只有一条this.m_StackDummies.Add(base.transform.GetChild(i).gameObject);
在下面添加一条就是一倍叠加
5倍就再复制4条


采集倍率:
搜索ItemInfo.LoadParams
双击LoadParams
找到这一条this.m_HarvestingResultItems.Add((ItemID)Enum.Parse(typeof(ItemID), array[i]));
复制一条就是一倍




qscgu135 发表于 2019-12-8 05:04

https://bbs.3dmgame.com/thread-5951921-1-1.html
https://bbs.3dmgame.com/thread-5951921-1-1.html

这些个帖子里全是大佬,大家多看看。

bill783 发表于 2019-12-11 16:12

秒建筑搜ConstructionGhostManager.update

肥力火力等修改搜iteminfo.loadparams

火把雨天不灭搜torch.update

qscgu135 发表于 2019-12-12 13:54

bill783 发表于 2019-12-11 16:12
秒建筑搜ConstructionGhostManager.update

肥力火力等修改搜iteminfo.loadparams


谢谢补充。

zx289024645 发表于 2019-12-22 17:24

请问下 你们是用什么软件打开的文件

qscgu135 发表于 2019-12-25 20:47

zx289024645 发表于 2019-12-22 17:24
请问下 你们是用什么软件打开的文件

dnSpy

百度下就有学习版的这个了,我也是第一次用这个软件。

yoyo6060 发表于 2019-12-26 00:05

qscgu135 发表于 2019-12-25 20:47
dnSpy

百度下就有学习版的这个了,我也是第一次用这个软件。

弓箭不晃动怎么改?

qscgu135 发表于 2019-12-27 12:07

yoyo6060 发表于 2019-12-26 00:05
弓箭不晃动怎么改?

不知道啊,论坛里有这个的mod,但是没说是改什么。

我擦勒! 发表于 2019-12-27 13:20

我想知道打开的哪个文件

bill783 发表于 2019-12-27 13:30

yoyo6060 发表于 2019-12-26 00:05
弓箭不晃动怎么改?

搜skill.ArcherySkill


public float GetAimShakeMul()
    {
      return this.m_AimShakeMul.Evaluate(this.m_Value) * 0.001f;
    }

yoyo6060 发表于 2019-12-27 14:29

bill783 发表于 2019-12-27 13:30
搜skill.ArcherySkill




非常感谢,故事通关后心情很沉重,怎么都喜欢弄悲剧剧情。。。

bill783 发表于 2019-12-27 15:07

我擦勒! 发表于 2019-12-27 13:20
我想知道打开的哪个文件

X:\SteamLibrary\steamapps\common\Green Hell\GH_Data\Managed\Assembly-CSharp.dll

qscgu135 发表于 2019-12-28 16:04

bill783 发表于 2019-12-27 13:30
搜skill.ArcherySkill




膜拜大佬。。。。。。

xiaozhongkof 发表于 2019-12-28 22:34

哇~~~这个是真的厉害啊,感谢大佬们的努力

hevanysj 发表于 2019-12-28 23:57

用 dnspy 找到修改项后怎么修改? 按 Edit IL Instructions 修改保存后不生效啊?你们是选编译的吗?

qscgu135 发表于 2019-12-29 20:27

hevanysj 发表于 2019-12-28 23:57
用 dnspy 找到修改项后怎么修改? 按 Edit IL Instructions 修改保存后不生效啊?你们是选编译的吗? ...

网上有中文版啊

一只双眼皮 发表于 2019-12-30 14:44

https://bbs.3dmgame.com/thread-5985422-1-1.html
二楼有我的功能实现代码。 部分复杂功能没做讲解,只讲了怎么实现。
不懂的怎么讲也懂不了,对着改就完了。懂的看一看就明白啦:)

qscgu135 发表于 2019-12-30 23:22

一只双眼皮 发表于 2019-12-30 14:44
https://bbs.3dmgame.com/thread-5985422-1-1.html
二楼有我的功能实现代码。 部分复杂功能没做讲解,只讲 ...

大佬,怎么建2层的建筑?是自己弄代码还是游戏中可以解锁?

2243045ok 发表于 2019-12-31 05:00

qscgu135 发表于 2019-12-30 23:22
大佬,怎么建2层的建筑?是自己弄代码还是游戏中可以解锁?

1.3.0以上版本。

qscgu135 发表于 2020-1-1 09:37

2243045ok 发表于 2019-12-31 05:00
1.3.0以上版本。

论坛里没有1.3版本的{:3_91:}

小律635 发表于 2020-1-2 17:10

你好楼主请问下怎么改武器耐久度啊???

qscgu135 发表于 2020-1-2 19:27

小律635 发表于 2020-1-2 17:10
你好楼主请问下怎么改武器耐久度啊???

这个真不知道,我不是大佬,奥我也是收集真大佬的来分享一下。

qq066320 发表于 2020-1-15 14:03

本帖最后由 qq066320 于 2020-1-15 14:14 编辑

腐烂时间修改:
搜索 food.Update 然后在它的代码里添加一串:this.m_FInfo.m_SpoilTime = 9999f;
9999f就是腐烂小时时间 一天等于24 你改多少都可以
https://att.3dmgame.com/att/forum/201910/02/140812vhdz5er2r2oiowft.png

qscgu135 发表于 2020-1-21 16:04

qq066320 发表于 2020-1-15 14:03
腐烂时间修改:
搜索 food.Update 然后在它的代码里添加一串:this.m_FInfo.m_SpoilTime = 9999f;
9999f就 ...

大佬真多

mediar 发表于 2020-2-4 14:42

一只双眼皮 发表于 2019-12-30 14:44
https://bbs.3dmgame.com/thread-5985422-1-1.html
二楼有我的功能实现代码。 部分复杂功能没做讲解,只讲 ...

我就想知道营火怎么增加燃烧上限~~

一只双眼皮 发表于 2020-2-4 15:38

本帖最后由 一只双眼皮 于 2020-2-4 15:43 编辑

mediar 发表于 2020-2-4 14:42
我就想知道营火怎么增加燃烧上限~~
public void OnInsertItem(ItemSlot slot)
中有 this.m_BurningDuration -= slot.m_Item.m_Info.m_AddFirecamBurningTime;改这里 是增加单次填柴的燃料值(营火)。


燃烧上限(营火)
    public void UpdateBuriningDuration()
    {
      if (!this.m_Burning)//如果不在燃烧
      {
            return;//值不变
      }
      float num = MainLevel.Instance.m_TODSky.Cycle.GameTimeDelta;//取时间流逝为 num
      if (HUDSleeping.Get().GetState() == HUDSleepingState.Progress)//如果界面冻结(例如睡觉)
      {
            num = SleepController.Get().m_HoursDelta;// num = 睡觉流逝的时间
      }
      else if (ConsciousnessController.Get().IsUnconscious())// 大概理解为游戏进入,且不在睡觉时
      {
            num = ConsciousnessController.Get().m_HoursDelta;// 持续获取时间
      }
      this.m_BurningDuration += num;// 把流逝时间加入 m_BurningDuration
    }
//修改方法: num / 10f 则为10倍燃料时间;改 += 为 -= 则无限燃料(不推荐,因为需要炭渣)。
//柴窑CharcoalFurnace 、煅造炉Forge 同样有对应的 m_BurningDuration 对应修改

mediar 发表于 2020-2-5 01:34

一只双眼皮 发表于 2020-2-4 15:38
public void OnInsertItem(ItemSlot slot)
中有 this.m_BurningDuration -= slot.m_Item.m_Info.m_AddFire ...

就需要这个,属实不会C+,编译大神膜拜了

mediar 发表于 2020-2-5 01:39

一只双眼皮 发表于 2020-2-4 15:38
public void OnInsertItem(ItemSlot slot)
中有 this.m_BurningDuration -= slot.m_Item.m_Info.m_AddFire ...

两个方法都试了~~~~~底下会提示 X 代码CS1612...改不了

一只双眼皮 发表于 2020-2-5 13:43

本帖最后由 一只双眼皮 于 2020-2-5 13:51 编辑

mediar 发表于 2020-2-5 01:39
两个方法都试了~~~~~底下会提示 X 代码CS1612...改不了
对于报错的修改:对着要修改的代码那一行空白处,鼠标右键:编辑IL指令
如 this.m_BurningDuration += num;
IL指令为
23                ldarg.0
24                ldarg.0
25                ldfld      float32 Firecamp::m_BurningDuration
26                ldloc.0
27                add
28                stfld      float32 Firecamp::m_BurningDuration


如想变加为减(始终不熄,由改add 为sub ) 点击 add 出现下拉菜单,选择 sub
如想提高总燃料时间如 10倍则
在 27 行add 这里右键-在选区前添加指令,
先操作两次,增加两个新行 nop(空操作占位符)
然后改新的27行为 ldc.r4(下拉菜单中选择) 右边0改为0.1,再把28行改为 mul


23      ldarg.0//相当于this,作用于 ldfld(调用)
24      ldarg.0//相当于this,作用于 stfld(回写)
25      ldfld      float32 Firecamp::m_BurningDuration // 调用m_BurningDuration
26      ldloc.0//取num
27      ldc.r4      0.1      //乘数
28      mul//乘法操作符 26-28行联用表示num*0.1
29      add //原代码的 +
30      stfld      float32 Firecamp::m_BurningDuration //写回。

改好点确定。出来就变成了
this.m_BurningDuration += num * 0.1f;


https://www.cnblogs.com/zery/p/3368460.html      IL指令详解。
直接用IL修改容易导致语法错误-功能失效或灵异bug。
但在部分 函数 无法直接改 C#代码的情况下这是唯一解决办法。
(绿色地狱代码还好,多数还改。其他像TheLongDark、StrandedDeep、EscapeThePacific等我做mod的其他游戏,往往只能用IL来实现:curse:)
所以如果看我的教程贴,发现某个功能我做出来了,你们改不成,那多数要用IL来写:shutup:








mediar 发表于 2020-2-5 14:59

一只双眼皮 发表于 2020-2-5 13:43
对于报错的修改:对着要修改的代码那一行空白处,鼠标右键:编辑IL指令
如 this.m_BurningDuration += num ...

啊,原来如此,太复杂了,我放弃了,学学就好了~~~
页: [1] 2 3
查看完整版本: 收集的大佬的修改攻略,大家一起来补充下!