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

注册 登录

QQ登录

只需一步,快速开始

查看: 72040|回复: 2187
打印 上一主题 下一主题

[MOD] 【2019.12.30】《绿色地狱Green Hell》v1.3.0本体-1.3.2升级包-圣火令mod-v6-摩天大楼(基于1.3.0兼容1.3.2)

  [复制链接]

62

主题

584

帖子

4311

积分

游戏精英

Rank: 8Rank: 8

贡献度
706
金元
14368
积分
4311
精华
5
注册时间
2012-10-6
跳转到指定楼层
主题
发表于 2019-12-30 13:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 一只双眼皮 于 2020-2-9 19:08 编辑


v1.3.0开始,GreenHell允许起楼了!圣火令再出山。
看到GreenHell发展的这么好,很多人公开代码段,这非常好,不要重复发明轮子
-------------------------
先上说明:
《GreenHell》v1.3.0 圣火令mod-建筑大师
快键控制:
小键盘+ 时间前进
小键盘- 时间倒退
小键盘9 随时存档
F8 直接放建筑,白光ghost框体补满材料;
左Ctrl+U 开启所有图纸
左Ctrl+小键盘0 无敌模式:除原版无敌功能外,添加无敌模式下秒拆建筑
左Ctrl+小键盘1 刷1个水壶
左Ctrl+小键盘2 刷1口锅
左Ctrl+小键盘3 刷1把铁斧
左Ctrl+小键盘7 建筑大师:砍树、砍植物、砍建筑均不会产生垃圾,允许砍掉柱子、地基等盖无隔间大屋;
其他功能-默认生效无控制键:
技能升级秒满;
水壶、椰子壶允许装汤;
超重能力(正常显示物品重量,但允许10倍超重时奔跑);
取消部分建筑碰撞的红光,现多数时候放建筑时白光。可逢山造楼,遇水搭桥。
火炬10倍燃料时间、抗雨、允许水下携带、4倍照亮范围;
营火抗雨、燃烧时间略增、4倍照亮范围、2倍亮度;
添柴火力10倍;
------------------------
2020.01.03更新耐久控制
远程、近战、投掷物、火炬 耐久均不降低。

-v4-2020.01.04更新刷所有物品
按住左Ctrl+左Alt 游戏暂停出现一个菜单,可在这个菜单左下角的输入栏输入名称以查找物品、或直接拖动滚动条找到物品;
点击要刷的物品名称(选中),按右下角的OK按钮,(这个菜单消失)
按 左Ctrl+ i 键,会在你鼠标指向的位置刷出刚才你选择的物品。
(因为什么都能刷,且有些东西刷出来无法破坏,因此找个没人的地方实验先。)
(再提示:因为物品名称列表是英文的,且暂时没有汉化的打算,原刷物品的 Ctrl+ 0 1 2 3 这些快键仍保留)
(圣火令实测了一部分道具名称,网盘地址下面有一个excel文件,可以下载回去对照着用)

-v5-2020.01.17更新
堆叠(加了几倍忘记了反正肯定加了)
采收限制(一只乌龟一只壳):一只犰狳、乌龟采出来好几个壳我一直不理解,也觉得不科学,就加了个限制。
现在采收乌龟、犰狳,只出一只壳。而且降低了肉、皮、杂物等的采收数量。
-v5.5-2020.02.06
//炉煅炭:
取消营火2倍亮度、
取消营火4倍照亮范围,
增加营火不熄、
增加快填炭炉、
增加快速出炭、
增加煅炉不熄。

-V6-2020.02.09 更新摩天大楼允许盖超过3层的大楼-

链接: https://pan.baidu.com/s/1X8n-DQwoEzImaXVsHs6Dwg 提取码:
游客,如果您要查看本帖隐藏内容请回复

代码占二楼,慢慢编辑。有兴趣的下楼去
















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

2

查看全部评分

回复

使用道具 举报

62

主题

584

帖子

4311

积分

游戏精英

Rank: 8Rank: 8

贡献度
706
金元
14368
积分
4311
精华
5
注册时间
2012-10-6
舒服的沙发
 楼主| 发表于 2019-12-30 13:44 | 只看该作者
本帖最后由 一只双眼皮 于 2020-4-24 23:26 编辑

小键盘+ 时间前进
小键盘- 时间倒退
小键盘9 随时存档
左Ctrl+小键盘0 无敌模式
左Ctrl+小键盘1 刷1个水壶
左Ctrl+小键盘2 刷1口锅
左Ctrl+小键盘3 刷1把铁斧
左Ctrl+小键盘7 建筑大师

以上内容的控制,在MainLevel.UpdateInputsDebug
void UpdateInputsDebug()
    {
        if (Input.GetKey(KeyCode.LeftControl))
        {
            if (Input.GetKeyDown(KeyCode.Keypad0))
            {
                Cheats.m_GodMode = !Cheats.m_GodMode;
            }
            else if (Input.GetKeyUp(KeyCode.Keypad7))
            {
                Cheats.m_NoSpawn = !Cheats.m_NoSpawn;
            }
            else if (Input.GetKeyUp(KeyCode.Keypad3))
            {
                this.AddItemToInventory("Axe_professional");
//勘误:因为我是直接编译的IL 所以显示了 this.Add ,实际应该为  Player.Get().AddItemToInventory("   ");
//这里的正确代码改为:Player.Get().AddItemToInventory("Axe_professional"); //其他以此类推
            }
            else if (Input.GetKeyUp(KeyCode.Keypad1))
            {
                this.AddItemToInventory("Bidon");
            }
            else if (Input.GetKeyUp(KeyCode.Keypad2))
            {
                this.AddItemToInventory("Pot");
            }
        }
        if (Input.GetKeyDown(KeyCode.KeypadPlus))
        {
            this.m_TODTime.AddHoursDebug(1f);
            ReflectionProbeUpdater[] array = UnityEngine.Object.FindObjectsOfType<ReflectionProbeUpdater>();
            for (int i = 0; i < array.Length; i++)
            {
                array[i.RenderProbe();
            }
        }
        else if (Input.GetKeyDown(KeyCode.KeypadMinus))
        {
            this.m_TODTime.AddHoursDebug(-1f);
            ReflectionProbeUpdater[] array2 = UnityEngine.Object.FindObjectsOfType<ReflectionProbeUpdater>();
            for (int j = 0; j < array2.Length; j++)
            {
                array2[j.RenderProbe();
            }
        }
        else if (Input.GetKeyDown(KeyCode.Keypad9))
        {
            SaveGame.Save();
        }
    }
除了+ - 9 是借用的原版代码,其他是圣火令自己改的。大家可以利用这个格式,来修改实现 《给与物品》、修改控制段以达到更多目的。为什么要用 if - elseif :因为这样占用资源少。
毕竟 Update是始终在运行的检测。如果用多个 if 来实现,游戏会变卡,某些内存释放不掉容易出现灵异bug。

m_GodMode原版自带,m_NoSpawn是我另外加的一个“静态字段”,用以实现精细控制。
ItemsManager.UpdateDebug            左Ctrl+U 开启所有图纸
ConstructionGhostManager.Update   F8直接放建筑
这两项功能有其他人发布过修改方法,我就不再赘述。 一般我比较喜欢用IL指令加 br  这样保留原版代码,万一有问题会容易修复。
OnSkillAction  技能秒满
关键段 this.m_Value = Mathf.Clamp(this.m_Value, Skill.s_MaxValue, Skill.s_MaxValue); 这样改的好处是避免溢出,直接让它 MaxValue;
TorchInfo 火炬燃料时间100倍
Torch.Update 火炬雨中不熄
Torch.UpdateLightNoise 火炬照亮范围4倍
这些都非常容易改,大概就是删除些代码,*4 等等。
Firecamp.ConstantUpdate 营火雨中不熄
Firecamp.UpdateBuriningDuration 营火燃料时间提高
Firecamp.UpdateLightNoise 营火4倍照亮范围
Firecamp.UpdateLightIntensity 营火2倍亮度
营火类同上,因为太容易改,就不放代码了。

UpdateProhibitionType 部分碰撞物红光改白光(允许临山建房、遇水搭桥)
这部分代码因为太长,也不放了。可以对照着原版和我的改版来看。
大概就是:不能让鱼笼一类的物品红光变白光,否则抓鱼啥的不容易生效。但因为soft hard 地上植被等总是红光也难受,所以就把部分 Hard改为了None

10倍超重,我改的比较麻烦。是改的下面三个方法
InventoryBackpack.IsCriticalOverload
InventoryBackpack.IsMaxOverload
InventoryBackpack.IsOverload
把验证时的 m_CurrentWeight *0.1来实现。这样的好处是 50kg负重上限不用动它(因为我不确定会不会有连带影响),只修改超重的验证过程。


ItemInfo.LoadParams 其中字段 AddForgeBurningTime 和其上一项,增加*10  添柴火力10倍 这个也有其实人实现,就不多讲了。简单的一个 *10

Liquidcontainer.UpdateSlotsActivity  水壶椰子壶允许装汤,修改原理为去掉验证水类。在1.3的代码中为原 br.s 47 改为 br  69 绕过这些验证。

建筑大师:
m_NoSpawm 新建字段于 Cheats.下,用于控制杀死物品不出现材料。控制它的开关在最上面 和 刷物品等快键放在一起。
Construction.TakeDamage 秒拆建筑与拆建筑不出垃圾

        if (this.m_CurrentHitsCount > this.m_ConstructionInfo.m_HitsCountToDestroy || Cheats.m_GodMode)
        
{
            
if (Cheats.m_NoSpawn)
            
{
               
UnityEngine.Object.Destroy(base.gameObject);
            
}
            
else
            
{
               
this.DestroyMe(true);
            
}
        
}
原版的if 没有 || god(加上这个就实现秒拆)、也没有下一行的 if  NoSpawn(直接Destroy不再调用DestroyMe以避免产生材料垃圾)至于为什么这么改后允许砍掉部分地基实现大屋,懂代码的琢磨一下就明白了

DestroyableObject.DestroyMe 实现砍草不出现小草叶
if (!Cheats.m_NoSpawn)
        
{
            
for (int i = 0; i < this.m_Item.m_Info.m_ItemsToBackpackOnDestroy.Count; i++)
在for 循环前,原版没有NoSpawn验证。
if (text.Length > 0 && !Cheats.m_NoSpawn)
原版只有text.Length>0 没有NoSpawn

DestroyablePlant.OnDestroyPlant 删除棕榈树等大叶子垃圾
if (!Cheats.m_NoSpawn)
        
{
            
new Dictionary<ItemReplacer, ItemReplacer>();
原版生成字典这一行前,加入NoSpawn验证。另外:弓箭、等很多不晃是搜索GetProportionalClamp
然后分析这个方法的被调用。就可以实现很多很多很多功能。(我没改)
仅弓箭瞄准时不晃 搜索 GetAimShakeMul 把返回值改小。如
return this.m_AimShakeMul.Evaluate(this.m_Value) * 0.01f;
控制抛射物和近战武器耐久的是Item.TakeDamage

                   this.m_Info.m_Health -= damage_info.m_Damage;  改为
if (!this.Equals(Player.Get().GetCurrentItem(Hand.Right)) && !this.Equals(Player.Get().GetCurrentItem(Hand.Left)) && !this.Equals(Player.Get().GetCurrentItem(Hand.Count)))
        
{
            
this.m_Info.m_Health -= damage_info.m_Damage;
        
}
也可以连用 else if 或 else 但不建议这个位置锁定耐久(可能牵扯到其他物品)。
BowController.Shot                 改-为+ 控制弓耐久
WeaponSpearController.Shot   同上改,控制飞矛耐久
火炬耐久改 Torch.UpdateBurning
this.m_Info.m_Health -= ((TorchInfo)this.m_Info).m_DamageWhenBurning; 改-为+
或直接锁定
this.m_Info.m_Health =100f;


关于刷所有物品

ItemsManager.UpdateDebug  也就是解锁图纸那个 方法 的前半段。
首先需要在ItemsManager. 下新建一个 字段 类型为 UIList,然后把代码复制进去
//注释:
if (Input.GetKeyDown(KeyCode.LeftAlt) && Input.GetKey(KeyCode.LeftControl))//注释:按住左CTRL 和 左Alt
        
{
            
MenuInGameManager.Get().ShowScreen(typeof(MenuDebugItem));//注释:显示菜单
            
string selectedElementText = this.m_List.GetSelectedElementText();//注释:等待用户选择物品名称(点击列表和OK按钮 )
            
if (selectedElementText != string.Empty)
            
{
               
ItemsManager.Get().m_DebugSpawnID = (ItemID)Enum.Parse(typeof(ItemID), selectedElementText);
            
}
        
}
        
if (this.m_DebugSpawnID != ItemID.None && Input.GetKeyDown(KeyCode.I) && Input.GetKey(KeyCode.LeftControl)) //注释:按住左CTRL 和 I 刷物品到鼠标指向的位置(以下为原版代码)
        
{
            
Vector3 forward = Player.Get().GetHeadTransform().forward;
            
Vector3 vector = Player.Get().GetHeadTransform().position + 0.5f * forward;
            
RaycastHit raycastHit;
            
vector = (Physics.Raycast(vector, forward, out raycastHit, 3f) ? raycastHit.point : (vector + forward * 2f));
            
this.CreateItem(this.m_DebugSpawnID, true, vector - forward * 0.2f, Player.Get().transform.rotation        }

关于采收的限制-因为圣火令觉得一只乌龟采3个壳实在不科学,所以尝试了限制采收数量的方法。(这与论坛上普遍增加采收量正好相反)DeadBody.Harvest

                for (int i = 0; i < (int)Math.Ceiling((double)Skill.Get<HarvestingAnimalsSkill>().GetItemsCountMul() / 3.0); i++)
                {
                        Item item = ItemsManager.Get().CreateItem(itemID, false, base.transform);
                        item.Take();
                }
可以直接限制for的中值达到目的。
摩天大楼:
删除 ConstructionGhost.UpdateAttachingToSlot 中的

                if (construction != null && construction.m_Level >= 2 && constructionSlot.m_UpperLevelSlot)
                {
                        return false;
                }

这几行,重新编译即可。
1.5.3版因某些代码消失,F8实现起来变得比较麻烦
需要在 ConstructionGhost 这个类中修改 UpdateState 为下面的格式

    public void UpdateState()
    {
        if (this.IsReady() || Input.GetKeyDown(KeyCode.F8))
        {
            this.SetState(ConstructionGhost.GhostState.Ready);
        }
        ConstructionGhost.GhostState state = this.m_State;
        if (state == ConstructionGhost.GhostState.Dragging)
        {
            this.UpdateRotation();
            this.UpdateTransform();
            this.UpdateColor();
            this.UpdateShaderProps();
            return;
        }
        if (state != ConstructionGhost.GhostState.Building)
        {
            return;
        }
        this.UpdateShaderProps();
    }





























评分

1

查看全部评分

回复 支持 反对

使用道具 举报

2

主题

96

帖子

156

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1560
积分
156
精华
0
注册时间
2013-7-16
硬硬的板凳
发表于 2019-12-30 14:37 | 只看该作者
goooooooooooooooooooooooooooooooood
回复 支持 反对

使用道具 举报

2741

主题

1万

帖子

5万

积分

3DMGAME资讯组

Rank: 12Rank: 12Rank: 12

贡献度
3422
金元
386014
积分
52289
精华
0
注册时间
2010-3-17

花好月圆3DM小黄鸡

冰凉的地板
发表于 2019-12-30 18:42 | 只看该作者
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

新手玩家

Rank: 1

贡献度
0
金元
32
积分
3
精华
0
注册时间
2019-12-2
5#
发表于 2019-12-30 19:36 来自手机 | 只看该作者
插眼。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

0

主题

216

帖子

322

积分

高级玩家

Rank: 4

贡献度
0
金元
3216
积分
322
精华
0
注册时间
2018-3-25
6#
发表于 2019-12-30 20:37 | 只看该作者
感谢分享,试试
回复 支持 反对

使用道具 举报

0

主题

372

帖子

450

积分

高级玩家

Rank: 4

贡献度
0
金元
4499
积分
450
精华
0
注册时间
2019-5-8
7#
发表于 2019-12-30 20:41 | 只看该作者
谢谢谢谢谢谢谢分享
回复 支持 反对

使用道具 举报

0

主题

640

帖子

694

积分

超级玩家

Rank: 5Rank: 5

贡献度
0
金元
6939
积分
694
精华
0
注册时间
2018-1-28
8#
发表于 2019-12-30 21:02 | 只看该作者
6666666666666666666
回复 支持 反对

使用道具 举报

0

主题

311

帖子

484

积分

高级玩家

Rank: 4

贡献度
0
金元
4843
积分
484
精华
0
注册时间
2009-9-2
9#
发表于 2019-12-30 21:29 | 只看该作者

回复 支持 反对

使用道具 举报

0

主题

190

帖子

365

积分

高级玩家

Rank: 4

贡献度
0
金元
3645
积分
365
精华
0
注册时间
2014-7-15
10#
发表于 2019-12-30 21:40 | 只看该作者
你这么优秀,你家里人知道吗???
就因为你这么优秀,很少回贴的我忍不住来回复支持一下。
回复 支持 反对

使用道具 举报

0

主题

306

帖子

440

积分

高级玩家

Rank: 4

贡献度
0
金元
4402
积分
440
精华
0
注册时间
2016-7-9
11#
发表于 2019-12-30 21:51 | 只看该作者
soiujdnvijdnfjvindfojbndfokjnboidsdfsnbvjdfnob
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

新手玩家

Rank: 1

贡献度
0
金元
30
积分
3
精华
0
注册时间
2019-1-15
12#
发表于 2019-12-30 22:49 | 只看该作者
54564dfgdfgdfgdfgdfg
回复 支持 反对

使用道具 举报

1

主题

19

帖子

19

积分

新手玩家

Rank: 1

贡献度
0
金元
190
积分
19
精华
0
注册时间
2019-10-23
13#
发表于 2019-12-30 23:19 | 只看该作者
666666666666666666666
回复 支持 反对

使用道具 举报

54

主题

2830

帖子

3533

积分

游戏精英

Rank: 8Rank: 8

贡献度
74
金元
32368
积分
3533
精华
0
注册时间
2012-6-26
14#
发表于 2019-12-30 23:35 | 只看该作者
怎么建二层建筑啊?游戏解锁的吗?
回复 支持 反对

使用道具 举报

1

主题

126

帖子

221

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
2212
积分
221
精华
0
注册时间
2016-9-11
15#
发表于 2019-12-31 01:03 | 只看该作者
感谢3大妈
回复 支持 反对

使用道具 举报

0

主题

8

帖子

68

积分

初级玩家

Rank: 2

贡献度
0
金元
680
积分
68
精华
0
注册时间
2015-2-16
16#
发表于 2019-12-31 09:52 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

0

主题

103

帖子

173

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1727
积分
173
精华
0
注册时间
2015-3-2
17#
发表于 2019-12-31 14:10 | 只看该作者
大师大师,厉害啊~
回复 支持 反对

使用道具 举报

4

主题

544

帖子

590

积分

高级玩家

Rank: 4

贡献度
1
金元
5862
积分
590
精华
0
注册时间
2012-7-22
18#
发表于 2019-12-31 14:59 | 只看该作者
哥一如既往的牛批,从漫漫长夜就用圣火令了。
回复 支持 反对

使用道具 举报

62

主题

584

帖子

4311

积分

游戏精英

Rank: 8Rank: 8

贡献度
706
金元
14368
积分
4311
精华
5
注册时间
2012-10-6
19#
 楼主| 发表于 2019-12-31 16:39 | 只看该作者
qscgu135 发表于 2019-12-30 23:35
怎么建二层建筑啊?游戏解锁的吗?

游戏更新1.3.0版本以上,就可以盖高层建筑
回复 支持 反对

使用道具 举报

0

主题

284

帖子

422

积分

高级玩家

Rank: 4

贡献度
0
金元
4217
积分
422
精华
0
注册时间
2010-5-20
20#
发表于 2019-12-31 17:25 | 只看该作者
goooooooooooooooooooooooooooooooood
回复 支持 反对

使用道具 举报

0

主题

55

帖子

124

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1238
积分
124
精华
0
注册时间
2017-1-27
21#
发表于 2019-12-31 18:11 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

0

主题

251

帖子

276

积分

高级玩家

Rank: 4

贡献度
0
金元
2756
积分
276
精华
0
注册时间
2009-3-14
22#
发表于 2019-12-31 19:41 | 只看该作者
看看!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

0

主题

63

帖子

116

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1162
积分
116
精华
0
注册时间
2009-4-4
23#
发表于 2019-12-31 20:37 | 只看该作者
Thanksforshare
回复 支持 反对

使用道具 举报

1

主题

39

帖子

42

积分

初级玩家

Rank: 2

贡献度
0
金元
418
积分
42
精华
0
注册时间
2018-6-22
24#
发表于 2019-12-31 22:10 | 只看该作者
看看有没有效果
回复 支持 反对

使用道具 举报

4

主题

412

帖子

483

积分

高级玩家

Rank: 4

贡献度
0
金元
4828
积分
483
精华
0
注册时间
2013-4-9
25#
发表于 2019-12-31 23:28 | 只看该作者
现在非常的舒服
回复 支持 反对

使用道具 举报

1

主题

1298

帖子

1465

积分

游戏狂人

Rank: 6Rank: 6

贡献度
1
金元
14605
积分
1465
精华
0
注册时间
2016-11-27
26#
发表于 2020-1-1 00:25 | 只看该作者
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

15

帖子

75

积分

初级玩家

Rank: 2

贡献度
0
金元
748
积分
75
精华
0
注册时间
2015-11-29
27#
发表于 2020-1-1 01:30 | 只看该作者
大佬辛苦了。。。
回复 支持 反对

使用道具 举报

8

主题

401

帖子

532

积分

高级玩家

Rank: 4

贡献度
2
金元
5239
积分
532
精华
0
注册时间
2014-11-20
28#
发表于 2020-1-1 06:36 | 只看该作者
撒旦撒大大上升
回复 支持 反对

使用道具 举报

5

主题

540

帖子

574

积分

高级玩家

Rank: 4

贡献度
7
金元
5456
积分
574
精华
0
注册时间
2008-10-23
29#
发表于 2020-1-1 11:43 | 只看该作者
11111111111111111111
回复 支持 反对

使用道具 举报

0

主题

216

帖子

298

积分

高级玩家

Rank: 4

贡献度
0
金元
2982
积分
298
精华
0
注册时间
2017-6-17
30#
发表于 2020-1-1 12:52 | 只看该作者
1111111111111
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-12 15:23 , Processed in 0.163624 second(s), 16 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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