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

注册 登录

QQ登录

只需一步,快速开始

查看: 2585|回复: 5
打印 上一主题 下一主题

[玩家心得] 关于巫师3次世代mod如何制作的教程与经验分享

[复制链接]

3

主题

669

帖子

840

积分

超级玩家

Rank: 5Rank: 5

贡献度
12
金元
7918
积分
840
精华
0
注册时间
2014-6-30
跳转到指定楼层
主题
发表于 2022-12-19 11:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文只适应于有一定修改经验的老玩家,时间有限没法做成保姆式的101教程
首先感谢sailiy https://bbs.3dmgame.com/thread-4808237-1-1.html 关于如何自己动手修改这个游戏的一些参数...... 的经验分享,游戏mod都是在前人的经验上总结研究创新1 新次世代版本直接修改替换content内xml或scripts的文件的方法无效,必须采用mod方式加载


2 一类是xml文件修改,去N网下载官方witcher 3 modkit, 和Modkitchen 两个文件https://www.nexusmods.com/witcher3/mods/389
modkit是本体,但需要用cmd敲命令,modkitchen是一个GUI文件,方便替换指令输入。请严格阅读N网上的说明,严格建立解包和打包工作文件夹,名称都需要做到一致
另外无需全部解包,用quickbms可以解包所需要的,绝大多数可修改的内容都在3个bundle文件内
content/content0/bundles/xml.bundle  内包含本体的ability item
DLC bob 和ep1内两个blob.bundle 包含两个大型DLC的ability


修改后采用modkitchen打包,会在工作文件夹内产生packed文件夹,内应有 blob0.bundle和metadata.store两个文件,将自己命名的mod文件夹放入根目录MODs内
xml修改不会检测,打包不用考虑源文件大小问题,可以任意加减词条


3 scripts 修改,N网上大部分修改都是修改.ws 文件,自己制作起来非常容易,直接从游戏本体源文件中拷贝出,修改好后按文件结构放好后放入根目录MODs
举例子:
(1)gameParams.ws 文件,查找default ITEMS_REQUIRED_FOR_MINOR_SET_BONUS 这是套装效果所需装备数量,原本3-6,可以改2-4 甚至1-2
(2)gameParams.ws 文件,查找var stat : SAbilityAttributeValue; 可以看到下面是盔甲武器的最低数值和升级数值
随便取个mod名字,比如modGearset,按gameParams.ws在游戏文件中结构放好,modGearset/content/scripts/game/gameParams.ws,在放入根目录MODs即可生效。由于其他mod可能也会修改gameParams.ws,所以需要 Script Merger整合


比较有意思的修改:
rangedWeapon.ws 中 default shotCountLimit=1 原始十字弓装填数量,if(ownerPlayerWitcher.CanUseSkill(S_Perk_17) && shotCount >= (1 + shotCountLimit) ),升级技能后增加一发,两个数值可任意改成自己想要的
无限十字弓有些破坏平衡,改成初始3发,升级6发 default shotCountLimit=3 if(ownerPlayerWitcher.CanUseSkill(S_Perk_17) && shotCount >= (3 + shotCountLimit) )


combat.ws 中搜索if(data.attackName == 'attack_heavy_special')
原文:
if(parent.HasAbility('Runeword 2 _Stats', true))    武器附魔断裂
                {
                        if(data.attackName == 'attack_heavy_special') 拜年重攻击
                        {
                                data.rangeName = 'runeword2_heavy';        攻击距离1.9       
                                weaponEntity = thePlayer.inv.GetItemEntityUnsafe(thePlayer.inv.GetItemFromSlot(data.weaponSlot));
                                weaponEntity.PlayEffectSingle('heavy_trail_extended_fx'); 攻击效果测试下来和距离是搭配用的
                        }
                        else if(data.attackName == 'attack_light_special') 大风车转圈
                        {
                                data.rangeName = 'runeword2_light'; 攻击距离1.1                       
                                weaponEntity = thePlayer.inv.GetItemEntityUnsafe(thePlayer.inv.GetItemFromSlot(data.weaponSlot));
                                weaponEntity.PlayEffectSingle('light_trail_extended_fx');
                        }
                }

修改
if((W3PlayerWitcher)parent)
                {
                        if(data.attackName == 'attack_heavy_special')
                        {
                                data.rangeName = 'runeword2_heavy';               
                                weaponEntity = thePlayer.inv.GetItemEntityUnsafe(thePlayer.inv.GetItemFromSlot(data.weaponSlot));
                                weaponEntity.PlayEffectSingle('heavy_trail_extended_fx');
                        }
                        else if(data.attackName == 'attack_light_special')
                        {
                                data.rangeName = 'runeword2_light';                       
                                weaponEntity = thePlayer.inv.GetItemEntityUnsafe(thePlayer.inv.GetItemFromSlot(data.weaponSlot));
                                weaponEntity.PlayEffectSingle('light_trail_extended_fx');
                        }
                        else if(data.attackName == 'attack_light')
                        {
                                data.rangeName = 'runeword2_light';       
                                weaponEntity = thePlayer.inv.GetItemEntityUnsafe(thePlayer.inv.GetItemFromSlot(data.weaponSlot));
                                weaponEntity.PlayEffectSingle('light_trail_extended_fx');
                        }
                        else if(data.attackName == 'attack_heavy')
                        {
                                data.rangeName = 'runeword2_light';                               
                                weaponEntity = thePlayer.inv.GetItemEntityUnsafe(thePlayer.inv.GetItemFromSlot(data.weaponSlot));
                                weaponEntity.PlayEffectSingle('light_trail_extended_fx');       
                        }
                }

无需断裂附魔,两个特殊攻击和普通轻重攻击都具有断裂效果


最后的小技巧,许多mod作者不愿意说明改了文件什么地方,将mod文件和原文件内容放在两个word文件内,使用word的审阅-比较功能就能查出修改了哪里,然后在自己慢慢研究

改游戏是很有乐趣的,全战类改的时间超过玩的时间,祝大家改的愉快


评分

1

查看全部评分

回复

使用道具 举报

22

主题

398

帖子

1575

积分

游戏狂人

Rank: 6Rank: 6

贡献度
216
金元
7109
积分
1575
精华
0
注册时间
2017-5-8
舒服的沙发
发表于 2022-12-19 14:40 | 只看该作者
本帖最后由 bishan178 于 2022-12-19 14:41 编辑

打包解包之类的 你也说得一知半解,会的人不需要,
不会的看了还是不会
回复 支持 0 反对 1

使用道具 举报

0

主题

319

帖子

389

积分

高级玩家

Rank: 4

贡献度
0
金元
3887
积分
389
精华
0
注册时间
2019-10-18
硬硬的板凳
发表于 2023-1-10 23:08 | 只看该作者
请求楼主再详细说明解包和打包的内容吗?不会用modkitchen打包啊
回复 支持 反对

使用道具 举报

3

主题

669

帖子

840

积分

超级玩家

Rank: 5Rank: 5

贡献度
12
金元
7918
积分
840
精华
0
注册时间
2014-6-30
冰凉的地板
 楼主| 发表于 2023-1-13 23:08 | 只看该作者
DHHSFSEFWER 发表于 2023-1-10 23:08
请求楼主再详细说明解包和打包的内容吗?不会用modkitchen打包啊

Export files to C:\MyNewMod\Modded\
Program will save files with their relative depot path, so you should get something like C:\MyNewMod\Modded\characters\models\main_npc\dandelion\model\t_01_ma__dandelion.fbx
Mod the files.
In the Build tab write a name for the mod. For example "DandelionTheGuitarHero". Spaces will be eaten automatically, so there's no point in typing them.
Select C:\MyNewMod\ as the working directory.
Hit Build.
Pray to Melitele that it works.
Go to C:\MyNewMod\Packed\ and zip the "modDandelionTheGuitarHero" folder and share it on Nexus Or just copy it to your game's mod folder and enjoy.

1 自建 C:\Games\witcher3uncooked\,将解包的原始文件放入其中
2 自建 C:\MyNewMod\Modded\文件夹,将改好的文件按原始文件结构放入Modded内,最终结构是像是 C:\MyNewMod\Modded\gameplay\abilities\geralt_stats.xml。DLC 文件C:\MyNewMod\Modded\dlc\bob\gameplay\abilities\geralt_mutations.xml 这样
3 打开modkitchen, 点击build mod, 上面两个地址一定要填写 wcc_lite location就是 wcc_lite.exe所在位置,uncooked file就是解包原始文件位置
4 Name your mod: 自己取个mod名称,mod working diectory: 选择MyNewMod文件夹
我文件建在D,界面供大家参考




5 点击build按钮,然后会跳出cmd黑框开始运作,这时候不要动,直到跳出




然后在packed里会有一个打包好的mod,里面应包含.bundle和.store 两个文件

后放入MODs文件即可生效



回复 支持 反对

使用道具 举报

3

主题

669

帖子

840

积分

超级玩家

Rank: 5Rank: 5

贡献度
12
金元
7918
积分
840
精华
0
注册时间
2014-6-30
5#
 楼主| 发表于 2023-1-13 23:11 | 只看该作者
解包可参考https://bbs.3dmgame.com/thread-4808237-1-1.html,用quickbms更快,而且一般仅修改一些ability, item之类的文件,打包我会详细回复
回复 支持 反对

使用道具 举报

0

主题

71

帖子

74

积分

初级玩家

Rank: 2

贡献度
0
金元
739
积分
74
精华
0
注册时间
2021-1-31
6#
发表于 2023-1-17 19:50 | 只看该作者
感谢分享,春节试着自己做一下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-8 04:28 , Processed in 0.176263 second(s), 16 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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