收集的大佬的修改攻略,大家一起来补充下!
本帖最后由 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]));
复制一条就是一倍
https://bbs.3dmgame.com/thread-5951921-1-1.html
https://bbs.3dmgame.com/thread-5951921-1-1.html
这些个帖子里全是大佬,大家多看看。
秒建筑搜ConstructionGhostManager.update
肥力火力等修改搜iteminfo.loadparams
火把雨天不灭搜torch.update
bill783 发表于 2019-12-11 16:12
秒建筑搜ConstructionGhostManager.update
肥力火力等修改搜iteminfo.loadparams
谢谢补充。
请问下 你们是用什么软件打开的文件 zx289024645 发表于 2019-12-22 17:24
请问下 你们是用什么软件打开的文件
dnSpy
百度下就有学习版的这个了,我也是第一次用这个软件。
qscgu135 发表于 2019-12-25 20:47
dnSpy
百度下就有学习版的这个了,我也是第一次用这个软件。
弓箭不晃动怎么改?
yoyo6060 发表于 2019-12-26 00:05
弓箭不晃动怎么改?
不知道啊,论坛里有这个的mod,但是没说是改什么。
我想知道打开的哪个文件 yoyo6060 发表于 2019-12-26 00:05
弓箭不晃动怎么改?
搜skill.ArcherySkill
public float GetAimShakeMul()
{
return this.m_AimShakeMul.Evaluate(this.m_Value) * 0.001f;
}
bill783 发表于 2019-12-27 13:30
搜skill.ArcherySkill
非常感谢,故事通关后心情很沉重,怎么都喜欢弄悲剧剧情。。。 我擦勒! 发表于 2019-12-27 13:20
我想知道打开的哪个文件
X:\SteamLibrary\steamapps\common\Green Hell\GH_Data\Managed\Assembly-CSharp.dll
bill783 发表于 2019-12-27 13:30
搜skill.ArcherySkill
膜拜大佬。。。。。。 哇~~~这个是真的厉害啊,感谢大佬们的努力 用 dnspy 找到修改项后怎么修改? 按 Edit IL Instructions 修改保存后不生效啊?你们是选编译的吗? hevanysj 发表于 2019-12-28 23:57
用 dnspy 找到修改项后怎么修改? 按 Edit IL Instructions 修改保存后不生效啊?你们是选编译的吗? ...
网上有中文版啊
https://bbs.3dmgame.com/thread-5985422-1-1.html
二楼有我的功能实现代码。 部分复杂功能没做讲解,只讲了怎么实现。
不懂的怎么讲也懂不了,对着改就完了。懂的看一看就明白啦:) 一只双眼皮 发表于 2019-12-30 14:44
https://bbs.3dmgame.com/thread-5985422-1-1.html
二楼有我的功能实现代码。 部分复杂功能没做讲解,只讲 ...
大佬,怎么建2层的建筑?是自己弄代码还是游戏中可以解锁?
qscgu135 发表于 2019-12-30 23:22
大佬,怎么建2层的建筑?是自己弄代码还是游戏中可以解锁?
1.3.0以上版本。
2243045ok 发表于 2019-12-31 05:00
1.3.0以上版本。
论坛里没有1.3版本的{:3_91:}
你好楼主请问下怎么改武器耐久度啊??? 小律635 发表于 2020-1-2 17:10
你好楼主请问下怎么改武器耐久度啊???
这个真不知道,我不是大佬,奥我也是收集真大佬的来分享一下。
本帖最后由 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
qq066320 发表于 2020-1-15 14:03
腐烂时间修改:
搜索 food.Update 然后在它的代码里添加一串:this.m_FInfo.m_SpoilTime = 9999f;
9999f就 ...
大佬真多
一只双眼皮 发表于 2019-12-30 14:44
https://bbs.3dmgame.com/thread-5985422-1-1.html
二楼有我的功能实现代码。 部分复杂功能没做讲解,只讲 ...
我就想知道营火怎么增加燃烧上限~~
本帖最后由 一只双眼皮 于 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 对应修改
一只双眼皮 发表于 2020-2-4 15:38
public void OnInsertItem(ItemSlot slot)
中有 this.m_BurningDuration -= slot.m_Item.m_Info.m_AddFire ...
就需要这个,属实不会C+,编译大神膜拜了 一只双眼皮 发表于 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: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:
一只双眼皮 发表于 2020-2-5 13:43
对于报错的修改:对着要修改的代码那一行空白处,鼠标右键:编辑IL指令
如 this.m_BurningDuration += num ...
啊,原来如此,太复杂了,我放弃了,学学就好了~~~