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

注册 登录

QQ登录

只需一步,快速开始

查看: 28675|回复: 92
打印 上一主题 下一主题

[原创] 【04.28更新】直接读取外部文件的方法,附杂项魔改插件(难度锁定,解锁视角,战斗经验,去除随机,半即时制,自定开局)

  [复制链接]

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

跳转到指定楼层
主题
发表于 2020-5-14 12:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 c4sunyx 于 2021-4-28 19:32 编辑

使用方法:将dll改名为Assembly-CSharp.dll,放在steam\steamapp\common\PathOfWuxia\PathOfWuxia_Data\Managed\下面替换官方版本(原版记得备份)
然后手动修改游戏文件路径下的Config.json文件,将ExternalDirectory设为你要玩的Mod路径即可
例如"ExternalDirectory":"Mods/<你的Mod名>/",建议路径用英文
然后你的Mod文件夹里面的路径要和AssetBundle里的对应
比如主题曲替换是audio/music/In_theme_01.wav,文本替换是config/textfiles/stringTable.txt,等等
这样这个文件夹下的对应文件就会优先于本体AssetBundle文件读取,如果没有再去找本体

还可以下载多个不同Mod后,用修改Mod路径的方式进行更换
插件更新后,支持方式变更为多个Mod可同时加载,可自行增删

附Harmony插件形式的功能mod,功能不定期添加中,目前除了加载外部文件效果外,还包括如下杂项效果
1.可随时更改难度

2.自定义加速自由场景和战斗(默认F2)
3.视角解锁,包括战斗和自由活动,以及战斗视角跟随方式等
4.可在战斗中使用招式时获得招式经验,并可突破10级上限(只限战斗经验)
5.随机事件设定(可选择贴吧水友zhzzdhd的小概率必发生方式,以及自设随机数的方式

6.血条直接显示角色的五行、姓名;修炼时显示需要多少点数可一次练满到10级
7.添加半即时制战斗模式,类似金庸群侠传系列,灵巧排序
8.新建角色时可自定属性和特性点数,并可自定义模型和头像
9.装备锻造重铸功能(锻造菜单中按对应键切换)
10.可装备多个饰品
11.可自行配置语音,包括战斗语音和剧情语音
12.自定义调整队伍人数
13.战斗中切换姿势
14.可开启自动战斗
链接1 http://pathofwuxia.ys168.com/  
链接2 https://github.com/Binarizer/Plugin-Pow/releases
* 所有功能均可开关可调节,以增强且不影响原版游戏体验为原则
* 所有功能均可开关可调节,以增强且不影响原版游戏体验为原则
* 所有功能均可开关可调节,以增强且不影响原版游戏体验为原则

游戏中按F1设置


下面是思路和修改方法
Unity游戏加载是实现DataProvider来弄的,引擎推荐用的都是打包好的AssetBundle,但很多游戏也有读外部(External)媒体文件的需求
河洛做了4个Provider,其中在AssetBundle之前还有2个,其中有一个就叫ExternalResourceProvider,并且已经写好了不少逻辑
但是其发布版路径设为空了,这样我们只要将其设定为你的Mod路径,就可以正常工作了。
找到类Heluo.GameConfig,添加成员变量
[JsonProperty]
public static string ExternalDirectory = string.Empty;

为避免每次覆盖设置,找到类Heluo.UI.ConfigData,添加成员变量
public string ExternalDirectory;
然后找到CtrlOption.StoreSetting()函数,在写设置之前加入
                        configData.ExternalDirectory = GameConfig.ExternalDirectory;
                        string text = JsonUtility.ToJson(configData);
                        File.WriteAllText(GameConfig.ConfigName, text);
最后找到Heluo.Resource.ExternalResourceProvider
改掉构造函数
        public ExternalResourceProvider(ICoroutineRunner runner, IModManager mod) : base(runner)
        
{
            
this.modManager = mod;
            
this.ExternalDirectory = ((mod != null) ? mod.GetCurrentModInfo().FolderPath : null);
            this.ExternalDirectory = ((GameConfig.Mod.ExternalDirectory != string.Empty) ? GameConfig.Mod.ExternalDirectory : this.ExternalDirectory);
            
string text = this.ExternalDirectory + "/Config.zip";
            
if (File.Exists(text))
            
{
               
this.zip = ZipFile.Read(text);
               
this.allEntry = this.zip.ToDictionary((ZipEntry x) => x.FileName.ToLower(), (ZipEntry x) => x);
            
}
        
}
*实际上直接将此路径硬编码为你的Mod相对/绝对路径也是可以的,但是我还是希望游戏能通过配置文件来修改不同Mod路径来支持多个Mod。按以上这样修改可以放很多mod互不冲突,在Config.json中改Mod路径就可以随时换Mod了,有心者还能在游戏里弄个菜单来换
我们可以看到这个类本身已经写好了对外部文本和图片的读取逻辑,但是其他类型都不支持直接返回Default<T>了,所以要支持其他种类需要自己写加载逻辑
看到贴吧很多老哥喜欢换战斗音乐,所以我就去网上搜了下怎么加载音乐,如下所示加上就好了,代码很糙但是It Just Works就好,毕竟我也不是专业搞Unity的
找到Load()函数添加如下红色部分
                                else if (typeFromHandle == typeof(Texture2D) || typeFromHandle == typeof(Sprite))
                                {
                                        byte[] data = File.ReadAllBytes(path2);
                                        Texture2D texture2D = new Texture2D(2, 2);
                                        texture2D.LoadImage(data);
                                        if (typeFromHandle == typeof(Sprite))
                                        {
                                                result = (Sprite.Create(texture2D, new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height), new Vector2((float)(texture2D.width / 2), (float)(texture2D.height / 2))) as T);
                                        }
                                        else
                                        {
                                                result = (texture2D as T);
                                        }
                                }
                                else if (typeFromHandle == typeof(AudioClip))
                                {
                                        string path3 = Path.GetFullPath(path2);
                                        WWW www = new WWW(path3);
                                        if (www.error != null)
                                        {
                                                Debug.LogError("www " + www.error);
                                                return default(T);
                                        }
                                        while (!www.isDone)
                                        {
                                        }
                                        AudioClip audioClip = www.GetAudioClip();
                                        if (audioClip == null)
                                        {
                                                Debug.LogError("Failed!! file://" + path3);
                                                return default(T);
                                        }
                                        audioClip.LoadAudioData();
                                        return audioClip as T;
                                }

                                else
                                {
                                        result = default(T);
                                }





本帖子中包含更多资源

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

x

评分

4

查看全部评分

回复

使用道具 举报

4

主题

823

帖子

1071

积分

游戏狂人

Rank: 6Rank: 6

贡献度
19
金元
9950
积分
1071
精华
0
注册时间
2011-10-11
舒服的沙发
发表于 2020-5-14 14:50 | 只看该作者
支持一下!!
回复 支持 反对

使用道具 举报

17

主题

290

帖子

848

积分

超级玩家

Rank: 5Rank: 5

贡献度
94
金元
4718
积分
848
精华
0
注册时间
2010-12-21

3DM MOD站(白银)

硬硬的板凳
发表于 2020-5-14 16:00 | 只看该作者
受人以鱼不如授人以渔,又学到了,感谢大佬
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
冰凉的地板
发表于 2020-5-14 16:22 | 只看该作者
大佬牛逼,感谢感谢
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
5#
发表于 2020-5-14 16:38 | 只看该作者
开始找不到贴吧里问的就是我吧
回复 支持 反对

使用道具 举报

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

6#
 楼主| 发表于 2020-5-14 16:54 | 只看该作者
lys292 发表于 2020-5-14 16:38
开始找不到贴吧里问的就是我吧

不止你
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
7#
发表于 2020-5-14 17:48 | 只看该作者

那可能是私信你的,贴吧楼层里没看到问你的
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
8#
发表于 2020-5-14 22:20 | 只看该作者
大佬更新的时候标题可以括号备注下,不然不知道你更新了
回复 支持 反对

使用道具 举报

1

主题

108

帖子

169

积分

中级玩家

Rank: 3Rank: 3

贡献度
1
金元
1646
积分
169
精华
0
注册时间
2011-7-10
9#
发表于 2020-5-14 22:43 来自手机 | 只看该作者
支持虫大,也太牛逼效率了
回复 支持 反对

使用道具 举报

4

主题

823

帖子

1071

积分

游戏狂人

Rank: 6Rank: 6

贡献度
19
金元
9950
积分
1071
精华
0
注册时间
2011-10-11
10#
发表于 2020-5-14 23:16 | 只看该作者
强烈支持!!!!!!!!
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
11#
发表于 2020-5-15 01:03 | 只看该作者
大佬知道主角的脚步声文件在哪么,那个audio里面的walk.wav好像不是啊。
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
12#
发表于 2020-5-16 15:00 | 只看该作者
没解锁非战斗视角吗
回复 支持 反对

使用道具 举报

1

主题

744

帖子

1490

积分

游戏狂人

Rank: 6Rank: 6

贡献度
0
金元
14900
积分
1490
精华
0
注册时间
2015-10-12
13#
发表于 2020-5-16 20:47 | 只看该作者
大佬问下,这个视角解锁加到Assembly-CSharp的哪里
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
14#
发表于 2020-5-17 00:41 | 只看该作者
大佬,你的这个dll非战斗视角不能转哦,switch那里多了default吧
回复 支持 反对

使用道具 举报

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

15#
 楼主| 发表于 2020-5-17 13:18 | 只看该作者
lys292 发表于 2020-5-17 00:41
大佬,你的这个dll非战斗视角不能转哦,switch那里多了default吧

我就纯复制的吧主代码,并没看他怎么弄的
刚测了下最终场景可以转Yaw,但不能转Pitch
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
16#
发表于 2020-5-17 13:33 | 只看该作者
c4sunyx 发表于 2020-5-17 13:18
我就纯复制的吧主代码,并没看他怎么弄的
刚测了下最终场景可以转Yaw,但不能转Pitch
...

我对比了你的和吧主的代码,不仅switch那里后面多了default,开始的if那里也不一样,你的是if(flag),括号里面少了个感叹号!,应该是if(!flag)
回复 支持 反对

使用道具 举报

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

17#
 楼主| 发表于 2020-5-17 13:43 | 只看该作者
lys292 发表于 2020-5-17 13:33
我对比了你的和吧主的代码,不仅switch那里后面多了default,开始的if那里也不一样,你的是if(flag),括 ...

那是编译器的锅别赖我 我的的确确复制粘贴的 效果应该完全一样的
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
18#
发表于 2020-5-17 13:43 | 只看该作者
顺便反馈一下,吧主的非战斗转视角是锁定y轴的,左右旋转的速度比较合适,但是人物走到某些可交互的物体边(比如水井)时会自动转动y轴一定角度,而且是视角几乎对齐地板的那种,体验有点差。不知道能不能优化下,或者不要锁定Y轴?
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
19#
发表于 2020-5-17 13:45 | 只看该作者
c4sunyx 发表于 2020-5-17 13:43
那是编译器的锅别赖我 我的的确确复制粘贴的 效果应该完全一样的

我没赖你啊大佬,我只是反馈一下
回复 支持 反对

使用道具 举报

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

20#
 楼主| 发表于 2020-5-17 17:32 | 只看该作者
lys292 发表于 2020-5-17 13:45
我没赖你啊大佬,我只是反馈一下

具体哪里有问题 最好给个档我要有空可以测一下
回复 支持 反对

使用道具 举报

107

主题

1730

帖子

2205

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
108
金元
17526
积分
2205
精华
2
注册时间
2008-5-17
21#
发表于 2020-5-18 12:12 | 只看该作者
本帖最后由 lys292 于 2020-5-18 12:13 编辑

战斗中右键旋转和右键人物显示人物信息老是冲突,旋转中不小心就点出了人物信息。可不可以设置成双击左键显示人物信息,这样就不会冲突了
回复 支持 反对

使用道具 举报

6

主题

1073

帖子

1510

积分

游戏狂人

Rank: 6Rank: 6

贡献度
47
金元
13221
积分
1510
精华
0
注册时间
2010-7-10
22#
发表于 2020-5-19 17:25 | 只看该作者
更新的真勤,感谢楼主分享
回复 支持 反对

使用道具 举报

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

23#
 楼主| 发表于 2020-5-19 17:37 | 只看该作者
六道轮回0101 发表于 2020-5-19 17:25
更新的真勤,感谢楼主分享

有时间and有兴趣就勤,没时间or没兴趣就咕
回复 支持 反对

使用道具 举报

0

主题

55

帖子

121

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1210
积分
121
精华
0
注册时间
2012-8-23
24#
发表于 2020-5-19 17:48 | 只看该作者
大佬发现一个,不知道算不算bug。你默认那个好像默认4%的战斗招式经验加成。然后我用了凤点头由一阶升到二阶,照理来说,体魄加1但是结果是体魄+2
回复 支持 反对

使用道具 举报

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

25#
 楼主| 发表于 2020-5-19 18:59 | 只看该作者
走近你 发表于 2020-5-19 17:48
大佬发现一个,不知道算不算bug。你默认那个好像默认4%的战斗招式经验加成。然后我用了凤点头由一阶升到二 ...

已修复,多谢测试!
回复 支持 反对

使用道具 举报

34

主题

955

帖子

1372

积分

游戏狂人

Rank: 6Rank: 6

贡献度
49
金元
11757
积分
1372
精华
0
注册时间
2012-11-21
26#
发表于 2020-5-19 19:02 | 只看该作者
大佬你好,问下,经验倍率改成0.00是否就等于关闭不使用?
战斗和动画加速设置1是不是等于原速?
战斗难度1是不是原始难度?
回复 支持 反对

使用道具 举报

6

主题

1073

帖子

1510

积分

游戏狂人

Rank: 6Rank: 6

贡献度
47
金元
13221
积分
1510
精华
0
注册时间
2010-7-10
27#
发表于 2020-5-19 20:31 | 只看该作者
反馈一个bug,战斗胜利没有奖励
回复 支持 反对

使用道具 举报

9

主题

339

帖子

920

积分

超级玩家

Rank: 5Rank: 5

贡献度
97
金元
5218
积分
920
精华
1
注册时间
2010-3-23

3DM MOD站(白银)

28#
 楼主| 发表于 2020-5-19 21:08 | 只看该作者
六道轮回0101 发表于 2020-5-19 20:31
反馈一个bug,战斗胜利没有奖励

多谢!已修复,修改时疏忽了填掉率默认值了,之前都是0
回复 支持 反对

使用道具 举报

0

主题

5

帖子

8

积分

新手玩家

Rank: 1

贡献度
0
金元
75
积分
8
精华
0
注册时间
2020-5-19
29#
发表于 2020-5-19 21:29 | 只看该作者
感谢大佬
回复 支持 反对

使用道具 举报

34

主题

955

帖子

1372

积分

游戏狂人

Rank: 6Rank: 6

贡献度
49
金元
11757
积分
1372
精华
0
注册时间
2012-11-21
30#
发表于 2020-5-20 01:46 | 只看该作者
问下大佬,不同的MOD,复数的Assembly-CSharp.dll该如何共存呢?
想使用魔改MOD和替换立绘/建模MOD,奈何Assembly-CSharp.dll这个不懂怎么共存。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-7 18:13 , Processed in 0.155156 second(s), 16 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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