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

注册 登录

QQ登录

只需一步,快速开始

查看: 4018|回复: 11
打印 上一主题 下一主题

[原创] 【盐和避难所】一些细微提升游戏体验的修改❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤

[复制链接]

332

主题

3213

帖子

8131

积分

创意工坊 原创组

Rank: 12Rank: 12Rank: 12

贡献度
984
金元
41549
积分
8131
精华
4
注册时间
2009-7-13
跳转到指定楼层
主题
发表于 2022-8-28 16:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tempa 于 2026-8-16 08:56 编辑

最近重玩这个游戏,简单看了下源码,版里修改器不少就不发修改好的了,说说dnSpy里改的函数和位置,感兴趣的可以自己动手改改。


本贴只提供了直接修改方法,有经验的可以自己实现按需开关对应功能,比如去掉Bloom黑边,自己加个变量判断,实现原版画面和去黑边版画面一键切换,其他功能同理,只提供最简思路。

游戏版本 v1.0.0.8


1.跳过开头Logo,加快菜单显示速度
2.击杀Boss后无全屏Vanquish Logo
3.Boss过场时间变快
4.占据圣所速度变快
5.玩家攻击速度变快
6.使用Buf道具速度变快
7.铁匠升级速度变快
8.存档时重置Boss
9.伤害数值弹起高度
10.禁止添加重名钥匙
11.去除Bloom黑边特效
12.手动刷新怪物
13.显示鼠标,设置窗口坐标
14.暂停游戏

================================================================================
1.跳过开头Logo,加快菜单显示速度

Loader.cs
ProjectTower.gamestate.Loader

private static int loadScreen = 0;
改成
private static int loadScreen = 4;




MenuMgr.cs
ProjectTower.menu.MenuMgr.Init

transMode = 2;
改成
transMode = 0;





ProjectTower.menu.MenuMgr.Update

函数最开始加入
transFrame = 2;
================================================================================
2.击杀Boss后无全屏Vanquish Logo

CharUpdate.cs
ProjectTower.gamestate.GameStateManager.Vanquish

GameStateManager.vanquishedFrame = 2f;
改成
GameStateManager.vanquishedFrame = 0;
================================================================================
3.Boss过场时间变快

BossToast.cs
ProjectTower.gamestate.BossToast.Update

frame -= Game1.frameTime * 0.615f;
改成
frame -= Game1.frameTime * 3;
================================================================================
4.占据圣所速度变快

CharAnim.cs
ProjectTower.character.CharAnim.Update

if (key < 0 || key >= animation.keyFrame.Length)
{
        key = 0;
}

这句下面写入
if (c.playerIdx > -1)
{
        if (animation.name == "icon" || animation.name == "candle" || animation.name == "shrine")
        {
                animation.keyFrame[key].duration = 1;
        }
}

================================================================================
5.攻击速度变快

和上面相同的位置

if (c.playerIdx > -1)
{
        if(GetAttackingAnim())
        {
                animation.keyFrame[key].duration = 1;
        }
        else if(animName.Contains("attack") || animName.Contains("strong"))
        {
                animation.keyFrame[key].duration = 1;
        }
}


如果2个都用的话,可以写到一起
if (c.playerIdx > -1)
{
        if (animation.name == "icon" || animation.name == "candle" || animation.name == "shrine")
        {
                animation.keyFrame[key].duration = 1;
        }

        if(GetAttackingAnim())
        {
                animation.keyFrame[key].duration = 1;
        }
        else if(animName.Contains("attack") || animName.Contains("strong"))
        {
                animation.keyFrame[key].duration = 1;
        }
}


================================================================================
6.使用Buf道具速度变快

和上面相同的位置

3个分别是
buff(祝福书页等),药水,裹布


if (c.playerIdx > -1)
{
        if (animation.name == "buff" || animation.name == "potion" || animation.name == "rub")
        {
                animation.keyFrame[key].duration = 1;
        }
}


如果3个都用的话,可以写到一起

if (c.playerIdx > -1)
{
        if (animation.name == "icon" || animation.name == "candle" || animation.name == "shrine")
        {
                animation.keyFrame[key].duration = 1;
        }

        if(GetAttackingAnim())
        {
                animation.keyFrame[key].duration = 1;
        }
        else if(animName.Contains("attack") || animName.Contains("strong"))
        {
                animation.keyFrame[key].duration = 1;
        }
        
        if (animation.name == "buff" || animation.name == "potion" || animation.name == "rub")
        {
                animation.keyFrame[key].duration = 1;
        }
}

================================================================================
7.铁匠升级速度变快

PlayerDraw.cs
ProjectTower.player.PlayerDraw.InitUpgradeGlow


upgradeFrame = 6f;
改成
upgradeFrame = 1;
================================================================================
8.存档时重置Boss

TriggerMgr.cs
ProjectTower.map.triggers.TriggerMgr.VanquishBoss

删除或注释以下代码

PlayerMgr.SetMainPlayerFlag(arena[j].bossFlag[k]);



注意,此修改需要在打过序章Boss无言深渊,上岸后存档,再修改,读档,否则会导致打完Boss重复剧情字幕问题
另外此修改似乎也影响NPC位置判断,只适合自娱自乐使用

================================================================================
9.伤害数值弹起高度

HitNumber.cs
ProjectTower.particles.particles.hit.HitNumber.Init


p.traj = Rand.GetRandomVec2(-10f, 10f, -100f, -80f);
改成
p.traj = new Vector2(0, -1000);
================================================================================
10.禁止添加重名钥匙

Pickup.cs
ProjectTower.map.pickups.Pickup.AddToInv


if (p.pickup == null)
{
        p.pickupFrame = 3f;
        p.pickup = new List<Player.PlayerPickup>();
}

这句下面加入
bool bIgnorSameKey = false;
if (loot[j].name != null)
{
        if (loot[j].category == 6)
        {
                for (int j = 0; j < p.playerInv.inventory.Length; j++)
                {
                        if (p.playerInv.inventory[j] != null && p.playerInv.inventory[j].category == 6 && p.playerInv.inventory[j].name != null)
                        {
                                if (p.playerInv.inventory[j].name == loot[j].name)
                                {
                                        bIgnorSameKey = true;
                                        break;
                                }
                        }

                }
        }
}
if (bIgnorSameKey)
{
        continue;
}



================================================================================
11.去除Bloom黑边特效

GameDraw.cs
ProjectTower.game.GameDraw.DrawGame


BloomComponent.Draw(goalTarg, GameDraw.sceneTarg, GameDraw.lightTarg);
改成
BloomComponent.Draw(goalTarg, GameDraw.mainTarg, GameDraw.lightTarg);




ProjectTower.director.bloom.BloomComponent.Draw


parameters["BloomIntensity"].SetValue(BloomComponent.bloomIntensity);

这句上面加入

bloomIntensity = 0;
darkBlur = 0;

防止暴风城堡地面太亮过曝





原版图 对 修改后效果图

















================================================================================
12.手动刷新怪物

MapMgr.SanctuaryRefresh();


可以自己设个快捷键

if (GetKeyDown(Keys.OemTilde))
{
        MapMgr.SanctuaryRefresh();
}

配合 6.存档时重置Boss

可以刷 Boss Rush
================================================================================
13.显示鼠标,设置窗口坐标

Game1.cs
ProjectTower.Game1.Initialize

函数末尾加入

IsMouseVisible = true;
System.Windows.Forms.Form form = (System.Windows.Forms.Form)System.Windows.Forms.Control.FromHandle(Window.Handle);
form.SetDesktopLocation(0, 0);

================================================================================
14.暂停游戏

紧急事件发生,接电话,上厕所等,不用傻傻的放弃游戏挨揍

Character.cs
ProjectTower.character.Character.Update

函数最开始写入

if (PauseGame)
{
        return;
}


自己写个控制键

if (GetKeyDown(Keys.P))
{
        PauseGame = !PauseGame;
}


评分

1

查看全部评分

回复

使用道具 举报

326

主题

5787

帖子

6140

积分

游戏精英

Rank: 8Rank: 8

贡献度
336
金元
47959
积分
6140
精华
0
注册时间
2008-1-22
舒服的沙发
发表于 2022-11-30 18:37 | 只看该作者
完全不懂,怎么弄。。。
回复 支持 反对

使用道具 举报

6

主题

1163

帖子

1446

积分

游戏狂人

Rank: 6Rank: 6

贡献度
12
金元
13979
积分
1446
精华
0
注册时间
2016-5-23

赛博朋克2077

硬硬的板凳
发表于 2022-12-17 11:42 | 只看该作者
谢谢分享
回复 支持 反对

使用道具 举报

332

主题

3213

帖子

8131

积分

创意工坊 原创组

Rank: 12Rank: 12Rank: 12

贡献度
984
金元
41549
积分
8131
精华
4
注册时间
2009-7-13
冰凉的地板
 楼主| 发表于 2023-2-8 20:56 | 只看该作者
居然有人回复啊,我以为没人看,贴子发很久都没人回过。

这是纯代码片断,需要有一定C#编程经验才能看懂,主要是给一些有修改或者Mod制作的人提供一个思路。
回复 支持 反对

使用道具 举报

0

主题

339

帖子

265

积分

高级玩家

Rank: 4

贡献度
0
金元
2645
积分
265
精华
0
注册时间
2021-2-8
5#
发表于 2023-5-2 20:55 | 只看该作者
虽然不太懂,但是谢谢你
回复 支持 反对

使用道具 举报

0

主题

75

帖子

116

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1155
积分
116
精华
0
注册时间
2018-3-3
6#
发表于 2023-11-26 13:09 | 只看该作者
有点意思
回复 支持 反对

使用道具 举报

212

主题

1575

帖子

2047

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
29
金元
19313
积分
2047
精华
0
注册时间
2012-1-2
7#
发表于 2023-11-29 23:58 | 只看该作者
ZXCBXCBZXCBZXCBDGVASDG
回复 支持 反对

使用道具 举报

0

主题

192

帖子

312

积分

高级玩家

Rank: 4

贡献度
0
金元
3117
积分
312
精华
0
注册时间
2008-4-17
8#
发表于 2024-6-1 17:06 | 只看该作者
这个是要怎么用的嘛
回复 支持 反对

使用道具 举报

0

主题

864

帖子

992

积分

超级玩家

Rank: 5Rank: 5

贡献度
0
金元
9920
积分
992
精华
0
注册时间
2013-7-17
9#
发表于 2024-9-14 22:30 | 只看该作者
66666666666666666666
回复 支持 反对

使用道具 举报

1

主题

14

帖子

17

积分

新手玩家

Rank: 1

贡献度
0
金元
165
积分
17
精华
0
注册时间
2021-6-23
10#
发表于 2024-11-3 19:14 | 只看该作者
老师,请问一下怎么添加新法术,或者修改原本法术
回复 支持 反对

使用道具 举报

118

主题

1203

帖子

1691

积分

游戏狂人

Rank: 6Rank: 6

贡献度
9
金元
16553
积分
1691
精华
0
注册时间
2006-3-9
11#
发表于 2026-5-27 19:24 | 只看该作者
改哪个文件啊,发这么多不如发个文件更实际
回复 支持 反对

使用道具 举报

332

主题

3213

帖子

8131

积分

创意工坊 原创组

Rank: 12Rank: 12Rank: 12

贡献度
984
金元
41549
积分
8131
精华
4
注册时间
2009-7-13
12#
 楼主| 发表于 2026-8-16 08:28 | 只看该作者
惊了,2026年还有人回复,没发文件,因为自定义的改的东西太多了,不一定所有人用得上。
再就是3DM论坛升级把写的内容都混乱了,我重新编辑一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-27 22:14 , Processed in 0.041483 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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