不注册个乐园论坛账号能玩??
您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 JJJY 于 2026-4-6 14:13 编辑
首先要感谢一下影子哟在论坛发布的爪子刀替换蓝晶匕首的教程,我也是受其启发,在想要写一个替换默认刀的教程。本教程也同样是对资源文件包内scripts/weapons.vdata文件进行修改,我看了一下论坛其他人发的帖子,虽然有替换默认匕首的爪子刀mod,但是没有写明自己具体是怎么对weapons.vdata进行修改从而使得刀动作匹配其模型的,所以开一个帖子写一下教程。
注意事项:已经有人对如何替换刀模的基本操作做了非常详细与易懂的教程,所以不再赘述基本操作,阅读本教程前,请务必先看一遍影子哟的帖子
站内网址:https://bbs.zombieden.cn/thread-100045-1-1.html
本教程所用工具:
1、Source Box
https://bbs.zombieden.cn/thread-97552-1-1.html
2、Source 2 Viewer
https://s2v.app/
正文:
1、模型安放位置
1、首先对于要替换的刀的模型的安放位置,影子哟的教程已经写得非常详细了,我与其不同的部分在于,如果要替换默认警匪匕首,模型文件放的地方与名字略有不同
此为Source box内的文件结构
上图为替换警匪默认刀MOD内部的文件结构
2、要修改的代码位置
这里先引入一个概念,CS2社区服的每一个武器皮肤,实际上都是一个独立的新武器,可以独立修改其各种数据,而这些数据都存放在weapon.vdata中,其中每一个大括号{}就是一个独立的武器,如果不改动其基础数据,只改动其模型文件以及骨骼文件,那就可以达到换肤的效果。
比如我在Source 2 Viewer内打开weapon.vdata截的这3个图,"60"代表着M4A1,这里存放着M4A1大部分的数据,如伤害、弹匣容量、地速、开火扩散等(别想着改这些了,服务器会实时校验,改了也没效果),当然也有其应用模型文件和骨骼文件的位置。
不同于影子哟修改蓝晶匕首模型是要修改约16000行位置的代码,警匪默认刀模的修改需要修改名字为"42"(CT默认匕首、用Source box打开weapon.vdata文件大约第8500行)以及"59"(T默认匕首、用Source box打开weapon.vdata文件大约第9900行)的武器,修改方法同样是修改其应用的骨骼(m_szAnimSkeleton)以及名字(m_szName),为修改后模型所应用的刀动作的名字。
上图为骨骼以及名字参数,比如你要换过去的刀是爪子刀,只需要把两个参数分别改为"animation/skeletons/weapons/knife_karambit.vnmskel"以及"weapon_knife_karambit"
3、如何修改武器开火粒子(曳光弹)
每一种武器都会有一个对应的曳光弹参数,如果要修改武器曳光弹,只需修改曳光弹使用的粒子文件路径(参数为m_szTracerParticle = resource_name:),即可使其拥有对应的曳光弹效果 上图为每个武器内规定开火粒子所用文件的路径,理论上你可以让所有枪都拥有春节活动时M4A4或AK皮肤的同款开火曳光弹
但要先在CS官方设置中打开曳光弹的显示,否则是无论怎么改都没有曳光弹的
而消音武器(USP装上消音器的状态、M4A1装上消音器的状态、MP5SD)这三个武器默认状态下是打不打开曳光弹都没有曳光弹的,此时可以通过修改其weapon.vdata中控制是否有曳光弹的参数而使其拥有曳光弹,即m_nTracerFrequency参数,将其改为3即可。 上图为M4A1默认的曳光弹参数
[3,0]意味着卸下消音器为3(有曳光弹),安装上消音器为0(无曳光弹),只需将其数值改为3即可(无论有无消音器均有曳光弹)
4、武器编号对照表
这里给出所有武器的对照表,以便修改任意武器的开火粒子 默认无开火粒子的武器: 23: mp5sd
60: m4a1
61: usp
全武器对照表: 1: deagle
2: elite
3: fiveseven
4: glock18
7: ak47
8: aug
9: awp
10: famas
11: g3sg1
13: galil
14: m249
16: m4a4
17: mac10
19: p90
23: mp5sd
24: ump45
25: xm1014
26: bizon
27: mag7
28: negev
29: sawedoff
30: tec9
32: p2000
33: mp7
34: mp9
35: nova
36: p250
38: scar20
39: sg552
40: ssg08
42: ct匕首
57: healthshot (血针)
59: t匕首
60: m4a1
61: usp
63: cz75a
64: revolver
建议将以上文本复制并保存为txt,一并添加进制作的mod中以便随时查阅。
5、Source Box新功能
source box在2026年4月5日的更新中,加入了patch功能,也就是可以使用patch文件对weapons.vdata进行单独且互不冲突的修改,而不是像以前那样要把所有的改动都写在一个文件一个mod内,现在可以把对weapons.vdata的不同改动写在不同的patch以及mod里,大大增加了便利性。
附上我写的两个patch代码的源文件,供大家实操时对照,或者你不想看那么多复杂的图文教程,也不想学怎么自己写代码,你刚好需要的就是这个功能,那直接放进mod里用就行了
以下是教程正文:
首先,patch文件要放在和源文件一样的目录下,名字除了.patch的后缀,也要和源文件完全保持一致,这样Source Box才能识别到是对哪个文件进行的修改。
作者给的模板
乍一看是不是很复杂?其实我们作为普通用户用得到的地方比较少,我接下来将从创建补丁以后的默认文件开始,一步一步教你写成可用的patch文件 创建patch以后的默认文件首先是这样的,其中我没有框选的"1"以及"DATA"部分,对应了我们要修改的核心数据,而我框选的"2"以及"FLCI"部分,其实是对应了文件里另一个数据块的数据,我们不需要对其进行修改,因此直接把我框选部分删掉即可
然后我们就要在operations = []的中括号中开始写代码了,这里就代表着我们要对[1]DATA数据块进行的操作 我们首先在中括号内写下来一对大括号,一对大括号代表着一个操作
然后我们再在大括号内写具体操作内容,其中"//CT匕首"是注释不参与代码运行,仅仅是方便自己看代码,然后写入path参数,path参数代表着你要修改weapons.vdata里哪一个武器,CT匕首对应的武器就是"42",然后再写operations = []。这里新写的代码就代表着要对CT匕首这个武器进行操作,然后具体操作写在最里面的operations = []
我们上面要在operations = []里写下一对大括号,这里我们同样要写一对大括号
接下来在最内层的大括号内写入具体操作,如下 op = "Add"代表着操作是增加/修改,还有一个op是"Remove",代表着删除操作,我们做mod的基本用不到,所以就写"Add"即可 path = "m_szAnimSkeleton"意味着我们要修改的参数是m_szAnimSkeleton,也就是武器对应骨骼 value = resource_name:"animation/skeletons/weapons/knife_butterfly.vnmskel"意味着我们把path里面的参数要修改成的数值 这三行代码的意思就是,把m_szAnimSkeleton参数的值修改为resource_name:"animation/skeletons/weapons/knife_butterfly.vnmskel"
那我们上文讲到,要改武器,还需要改一个名为m_szName的参数,这时候我们可以再新增一个大括号并用逗号隔开,表明我们要同时进行2个操作 也就是在我选中的地方,新增一个英文逗号以及一对大括号
这时候我们只要在这个新的大括号中复制一下上面的三行代码的操作即可 这样patch文件就已经初步形成了,这个文件的作用就是把weapons.vdata中,名字为"42"的武器(CT默认匕首)中m_szAnimSkeleton参数以及m_szName参数的修改
那匪的默认匕首怎么改呢?也是同理,新增一个英文逗号以及一对大括号,但是这次是在外层的operations 然后再进行完全一样的操作 这时patch文件就已经完成了对CT匕首以及T匕首的骨骼修改(修改为蝴蝶刀骨骼)
|